Введение 4
Постановка задачи 6
Глава 1. Обзор литературы 7
1.1. Рекомендательная система 7
1.2. Классификация 8
Глава 2. Обзор решений 9
2.1. OneVsRestClassifier 9
2.2. BinaryRelevance 9
2.3. Label Powerset 9
2.4. ClassifierChains 10
2.5. Нейронные сети 10
Глава 3. Сбор данных 12
3.1. Сбор статей 12
Глава 4. Выбор меток для классификации 14
4.1. Анализ часто используемых тегов 14
Глава 5. Предобработка текста 17
5.1. Преобразование текста в числовой вектор 17
Глава 6. Обучение 19
6.1. OneVsRestClassifier 19
6.2. BinaryRelevance 19
6.3. Label Powerset 19
6.4. ClassifierChains 19
6.5. BiGRU 20
6.6. DistilBERT 20
Глава 7. Анализ полученных данных 21
7.1. Метрики оценки качества классификации 21
7.1.1 Accuracy 21
7.1.2 Precision 21
7.1.3 Recall 21
7.1.4 Fl-score 22
7.2. Время обучения 22
7.3. Результаты 22
Программная реализация 24
Заключение 25
Список литературы 27
При публикации контента в интернете пользователь имеет возможность указать набор тегов - релевантных ключевых слов для аннотирования ресурсов [1]. Как правило, автору приходится вручную искать подходящие по смыслу слова. Ускорить процесс публикации возможно с помощью рекомендательной системы тегов, которая, проанализировав введенную информацию и публикации на портале, предложит пользователю список тегов.
Построение рекомендательных систем является важной темой исследования в сферах поиска информации, розничной торговле, электронной коммерции и др. Задача заключается в предсказании объектов, которые вызывают наибольший интерес у пользователя [2].
Один из способов создания рекомендательной системы - классификация пользовательских текстов. Модель классификации пользовательских текстовых документов может использоваться для распределения данных по категориям, которые позволяют строить рекомендательные системы. Крупные сайты также используют результаты классификации подбирая персональную рекламу для каждого пользователя, основываясь на его группе интересов.
Разработки в данной области позволяют обрабатывать и систематизировать большие объемы текстовых данных. Несмотря на то, что существует множество алгоритмов классификации, таких как “Метод опорных векторов”, “Метод k-ближайших соседей”и “Байесовский подход”[3], вопросы о том, как повысить точность классификации и подобрать алгоритм для конкретной задачи, являются актуальными.
В настоящее время пользовательские сообщества и форумы, такие как Reddit 1, Хабр2 и Пикабу3, ежедневно публикуют миллионы пользовательских текстов. С постоянным развитием информационных технологий количество таких данных увеличивается [3], поэтому появляется возможность производить анализ данных, классификацию, кластеризацию и другие методы для поиска схожих объектов в выборке [4].
Текстовые документы описанных ресурсов возможно использовать для обучения модели классификации пользовательских текстов, для построения рекомендательной системы.
В рамках данной работы была построена рекомендательная система тегов, основанная на мультилейбл классификации текстов. Предложенную реализацию возможно использовать при написании поста на портале Пикабу, для ускорения времени работы автора над публикацией.
Поскольку Пикабу не позволяет скачать все статьи с портала автоматически, в ходе работы описан способ сбора данных, представляющий собой последовательное скачивание html-страниц, парсинг, предобработку полученных текстовых данных. Кроме того, произведено сравнение популярных способов преобразования текста в числовой вектор.
В ходе работы была решена задача мультилейбл классификации пользовательских постов по тегам. Сравнив классические подходы классификации, сводящиеся к бинарной, можно сделать вывод, что точность предсказания достаточно высока, при небольшом количестве времени выполнения. Однако такие подходы нуждаются в предобработке текста.
Подходы для классификации с использованием нейросетевых предо- бученных моделей, предсказали метки несколько хуже, чем классические подходы. Преимущества таких подходов в работе с языковыми моделями, которые учитывают семантическое сходство на уровне слов, предложений и текстов.
В качестве эксперимента произведено сравнение: качества предсказания по основным метрикам точности и времени обучения нескольких подходов. При этом, высокие значения, наиболее значимых оценок для решаемой задачи - recall и accuracy, достигаются классификацией с помощью подходов One-Vs-Rest и Label Powerset. Можно сделать вывод, что для рекомендательной системы тегов, необходимо использовать результаты именно этих классификаторов.
В дальнейшем при работе с этими данными следует провести дополнительные эксперименты, включающие в себя как уменьшение, так и увеличения набора меток для классификации, изменение параметров обучения моделей нейронных сетей, а также в целом использование других предобученных моделей.
Для модификации работы над поставленной задачей, возможно использовать персональную рекомендацию, и предлагать пользователям теги, основываясь, не только на тегах, проставленных на похожих текстах, но и в целом на тегах, используемых конкретным пользователем.