Введение 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], вопросы о том, как повысить точность классификации и подобрать алгоритм для конкретной задачи, являются актуальными.
В настоящее время пользовательские сообщества и форумы, такие как Reddit1, Хабр и Пикабу, ежедневно публикуют миллионы пользовательских текстов. С постоянным развитием информационных технологий количество таких данных увеличивается [3], поэтому появляется возможность производить анализ данных, классификацию, кластеризацию и другие методы для поиска схожих объектов в выборке [4].
Текстовые документы описанных ресурсов возможно использовать для обучения модели классификации пользовательских текстов, для построения рекомендательной системы.
Постановка задачи
Цель работы - разработать систему рекомендации тегов для текстовых данных. Для этого необходимо:
1. Собрать датасет из постов с сайта Пикабу, которые должны включать в себя тексты и наборы тегов.
2. Определить набор тегов, который будет использоваться для обучения.
3. Преобразовать тексты в числовые векторы.
4. Используя несколько подходов, классифицировать тексты используя их теги как метки классификатора, проэксперементировать с параметрами, сравнить результаты.
5. Оценить качество предсказаний полученной модели.
В рамках данной работы была построена рекомендательная система тегов, основанная на мультилейбл классификации текстов. Предложенную реализацию возможно использовать при написании поста на портале Пикабу, для ускорения времени работы автора над публикацией.
Поскольку Пикабу не позволяет скачать все статьи с портала автоматически, в ходе работы описан способ сбора данных, представляющий собой последовательное скачивание html-страниц, парсинг, предобработку полученных текстовых данных. Кроме того, произведено сравнение попу-лярных способов преобразования текста в числовой вектор.
В ходе работы была решена задача мультилейбл классификации пользовательских постов по тегам. Сравнив классические подходы классификации, сводящиеся к бинарной, можно сделать вывод, что точность предсказания достаточно высока, при небольшом количестве времени выполнения. Однако такие подходы нуждаются в предобработке текста.
Подходы для классификации с использованием нейросетевых предо- бученных моделей, предсказали метки несколько хуже, чем классические подходы. Преимущества таких подходов в работе с языковыми моделями, которые учитывают семантическое сходство на уровне слов, предложений и текстов.
В качестве эксперимента произведено сравнение: качества предсказания по основным метрикам точности и времени обучения нескольких подходов. При этом, высокие значения, наиболее значимых оценок для решаемой задачи - recall и accuracy, достигаются классификацией с помощью подходов One-Vs-Rest и Label Powerset. Можно сделать вывод, что для рекомендательной системы тегов, необходимо использовать результаты именно этих классификаторов.
В дальнейшем при работе с этими данными следует провести дополнительные эксперименты, включающие в себя как уменьшение, так и увеличения набора меток для классификации, изменение параметров обучения моделей нейронных сетей, а также в целом использование других предобученных моделей.
Для модификации работы над поставленной задачей, возможно использовать персональную рекомендацию, и предлагать пользователям теги, основываясь, не только на тегах, проставленных на похожих текстах, но и в целом на тегах, используемых конкретным пользователем.
[1] Subramaniyaswamy V., Vijayakumar V., Indragandhi V., Logesh R. Data Mining-Based Tag Recommendation System: An Overview // WIREs Data Mining Knowl Discov. 2015. P. 87-112.
[2] Alsukhni B. Multi-label arabic text classification based on deep learning // 12th International Conference on Information and Communication Systems (ICICS). 2021. P. 475-477.
[3] Li Z., Shang W., Yan M. News text classification model based on topic model // IEEE/ACIS 15th International Conference on Computer and Information Science (ICIS). 2016. P. 1-5.
[4] Jindal R., Taneja S. Ranking in multi label classification of text documents using quantifiers // IEEE International Conference on Control System, Computing and Engineering (ICCSCE). 2015. P. 162-166.
[5] Zhang Y. , Li S. Technical Analysis of Multi -Text Video Standardization Based on Tag System // 2020 International Conference on Culture-oriented Science Technology (ICCST). 2020 P. 50-53.
[6] Nguyen H. , Richards R., Chan C. , Liszka K. "RedTweet: Recommendation engine for Reddit // ACM International Conference on Advances in Social Networks Analysis and Mining (ASONAM). 2015. P. 1381-1388.
[7] Ding L., Zheng Y. Improve E-Commerce Recommendation by Classification Tree and Fuzzy Sets // International Conference on Identification, Information and Knowledge in the Internet of Things (IIKI). 2016. P. 457¬460.
[8] Quintanilla E. , Rawat Y. , Sakryukin A. , Shah M., Kankanhalli M. Adversarial Learning for Personalized Tag Recommendation // IEEE Transactions on Multimedia. 2021. Vol. 23. P. 1083-1094.
[9] Solving Multi-Label Classification problems (Case studies included) [Элек-тронный ресурс]:https://www.analyticsvidhya.com/blog/2017/08/introduction-to-multi-label-classification/ (дата об- ращения 18.12.2021)
[10] Deep dive into multi-label classification..! (With detailed Case Study) [Электронный ресурс]:https://towardsdatascience.com/journey-to-the-center-of-multi-label-classification-3384c40229bff (дата обращения 19.12.2021)
[11] Lakhdhar Y., Rekhis S. Machine Learning Based Approach for the Automated Mapping of Discovered Vulnerabilities to Adversial Tactics // IEEE Security and Privacy Workshops (SPW). 2021. P. 309-317.
[12] Maia M., Sales J., Freitas A., Handschuh S., Endres M. A Comparative Study of Deep Neural Network Models on Multi-Label Text Classification in Finance // IEEE 15th International Conference on Semantic Computing (ICSC). 2021. P. 183-190.
[13] Di L., Xiushuang Y., Ling X. Design of natural language model based on BiGRU and attention mechanism // International Conference on Networking, Communications and Information Technology (NetCIT). 2021. P. 191-195.
[14] Oliseenko V., Tulupyeva T. Neural Network Approach in the Task of Multi-label Classification of User Posts in Online Social Networks // 2021 XXIV International Conference on Soft Computing and Measurements (SCM). 2021. P. 46-48.
[15] Bai J., Cao R., Ma W., Shinnou H. Construction of Domain-Specific DistilBERT Model by Using Fine-Tuning // 2020 International Conference on Technologies and Applications of Artificial Intelligence (TAAI). 2020. P. 237-241.
[16] Bambroo P., Awasthi A. LegalDB: Long DistilBERT for Legal Document Classification // International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT). 2021. P. 1-4.
[17] Rajabi Z., Shehu A., Uzuner O. A Multi-channel BiLSTM- CNN Model for Multilabel Emotion Classification of Informal Text // 2020 IEEE 14th International Conference on Semantic Computing (ICSC). 2020. P. 303-306.
[18] GitHub. gistfile1.py [Электронный ресурс]:https://gist.github.com/Kein1945/9111512 (дата обращения 02.12.2021).
[19] Regular expression operations [Электронный ресурс]:https://docs.python.org/3/library/re.html (дата обращения 03.01.2022).
[20] Dalaorao G. A., Sison A. M., Medina R. P. Integrating collocation as TF-IDF enhancement to improve classification accuracy // IEEE 13th International Conference on Telecommunication Systems, Services, and Applications (TSSA). 2019. P. 282-285.
[21] Bagul D, Barve S. A novel content-based recommendation approach based on LDA topic modeling for literature recommendation // 6th International Conference on Inventive Computation Technologies (ICICT). 2021. P. 954¬961.
[22] Parolin E. , Salam S. , Khan L. , Brandt P. , Holmes J. Automated Verbal-Pattern Extraction from Political News Articles using CAMEO Event Coding Ontology // IEEE 5th Intl Conference on Big Data Security on Cloud (BigDataSecurity). 2019. P. 258-266.
[23] Kumar N. , Kumar S. , Dev A., Naorem S. Leveraging Universal Sentence Encoder to Predict Movie Genre // 7th International Conference on Advanced Computing and Communication Systems (ICACCS). 2021. P. 1013-1018.
[24] Use-cases of Google’s Universal Sentence Encoder in Production
[Электронный ресурс]: https://towardsdatascience.com/
use-cases-of-googles-universal-sentence-encoder-in-production-dd5aaab4fc15 (дата обращения 15.02.2022)
[25] universal-sentence-encoder [Электронный ресурс]:https://tfhub.dev/google/universal-sentence-encoder/4 (дата обращения 10.03.2022)
[26] Tao W., Yongjia J., Xiangsheng R. A novel two-level One-vs-Rest classifier // 2nd International Conference on Information Systems and Computer Aided Education (ICISCAE). 2019. P. 645-648.
[27] About Keras [Электронный ресурс]:https://keras.io/about/ (дата обращения 13.03.2022)
[28] Transformers [Электронный ресурс]:https://huggingface.co/docs/transformers/main/en/index (дата обращения 16.03.2022)
[29] Understanding Data Science Classification Metrics in Scikit-Learn in Python [Электронный ресурс]:https://towardsdatascience.com/understanding-data-science-classification-metrics-in-scikit-learn-in-python-3bc336865019 (дата обращения 22.12.2021)
[30] Classification: Accuracy [Электронный ресурс]:https://developers.google.com/machine-learning/crash-course/classification/accuracy (дата обращения 19.12.2021)
[31] Accuracy classification score [Электронный ресурс]:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.accuracy_score.html (дата обращения 18.12.2021).
[32] Precision, Recall, Accuracy, and F1 Score for Multi-Label Classification [Электронный ресурс]:https://medium.com/synthesio-engineering/precision-accuracy-and-f1-score-for-multi-label-classification-34ac6bdfb404 (дата обращения 12.11.2021)
[33] Основные метрики задач классификации в машинном обу¬чении [Электронный ресурс]: https://webiomed.ru/blog/
osnovnye-metriki-zadach-klassifikatsii-v-mashinnom-obuchenii/(дата обращения 19.01.2022)
[34] GitHub. Tag-recommendation-system [Электронный ресурс]:https://github.com/alexy247/tag-recommendation-system