Я работаю над системой рекомендаций, которая рекомендует популярных пользователей Twitter (PTU) «нормальным» пользователям Twitter (NTU). Является ли пользователь популярным или нет, определяется количеством упоминаний, полученных им в период сбора данных. Система пытается предсказать 10 лучших PTU, которым NTU может следовать, основываясь на a) PTU, за которыми уже следует NTU, и b) сходстве Jaccard между всеми PTU.
Обзор данных:
- Коллекция NTU и PTU, за которыми они следуют
- Оценка сходства по Jaccard всех пар PTU
До сих пор я пробовал два метода, которые я описал ниже. Однако я не очень доволен их результатами, и мне любопытно, как бы вы подошли к такому вопросу. Их точность основана на золотом стандарте; если 10 лучших PTU, рекомендованных моей системой, содержат пользователя в золотом стандарте, это считается как рекомендовано правильно.
Метод 1 (~ 12% правильно)
- Для данного NTU, извлеките все PTU, за которыми он / она следует
- Для каждого PTU, за которым следует NTU, суммируйте оценки сходства (Jaccard) между этим PTU и каждым другим PTU в наборе данных и вычислите среднее .
- Из всех PTU, за которыми следует NTU, выберите PTU с наибольшим средним сходством.
- Сравните сходства этого PTU со всеми другими PTU в наборе данных и ранжируйте их по высокому сходству. до низкого сходства
- Выберите 10 лучших PTU с наибольшим сходством и порекомендуйте их для NTU.
Метод 2 (~ 23% правильно)
- Для данного NTU извлеките все PTU, за которыми он / она следует, и все PTU, за которыми он / она не следует
- Для каждого непроверенного PTU суммируйте сходства с каждым последующим PTU
- Позиция не-фол понизили PTU на основании их сходства с последующими PTU и рекомендуют лучшие 10 NTU.