Приложение с системой рекомендации фильмов
Заказать уникальную дипломную работу- 67 67 страниц
- 27 + 27 источников
- Добавлена 19.07.2024
- Содержание
- Часть работы
- Список литературы
Введение 2
1 Глава – Обзорная 4
1.1. Рекомендация фильмов 4
1.2. Обзор различных существующих алгоритмов. 8
1.2.1 Выдача рекомендаций от Netflix 8
1.2.2 MovieLens 10
1.2.3 PickAMovieForMe 11
1.2.4 GPT 12
1.3 Постановка задачи 13
2 Глава – Теоретическая часть 16
2.1. Выбор языка программирования и среды разработки. 16
2.2. Алгоритмы выдачи рекомендаций 24
2.2.1 Косинусное подобие 24
2.2.2 Расстояние между векторами Pinecone 30
2.3. Построение алгоритма работы приложения. 38
3 Глава – Практическая часть. 40
3.1. Разработка интерфейса пользователя. 40
3.2. Модуль обработки запросов. 45
3.3. Реализация всего приложения 55
Заключение. 61
Список литературы. 63
Метод query этого индекса вызывается с тремя аргументами: - vector: векторное представление входного текста, полученное из переменной que. - top_k: количество наиболее похожих документов для возврата, как указано параметром k. - include_metadata: логическое значение, установленное в True для получения метаданных, связанных с соответствующими документами.5. Результат поискового запроса в Pinecone сохраняется в переменной res. Он содержит информацию о совпадающих документах, включая их оценки и метаданные.6. Создаются два пустых списка: Title и summ для хранения заголовков и кратких изложений соответствующих документов соответственно.7. Цикл проходит через список res['matches'], который содержит совпадающие документы. Для каждого соответствующего документа: - Заголовок извлекается из метаданных и добавляется в список Title. - Резюме извлекается из метаданных и добавляется в список summ.8. Наконец, функция возвращает два списка: Title и summ, содержащие заголовки и краткие изложения наиболее похожих документов, найденных в векторном поисковом индексе Pinecone.И наконец, рассмотрим последнюю функцию поиска методом ближайших соседей.Функция similarity_search_ANN выполняет поиск ближайших соседей по векторному представлению текста с использованием алгоритма приближенного ближайшего соседа (ANN). Описание работы функции:1. Инициализация индекса AnnoyIndex: - Определяется размерность векторов (vector_dim), которая берется из длины первого вектора из набора данных q1. - Создается индекс AnnoyIndex с указанной размерностью и метрикой angular (угловое расстояние).2. Добавление векторов в индекс: Для каждого вектора vector в наборе данных q1 он добавляется в индекс AnnoyIndex с соответствующим индексом i.3. Построение индекса: Индекс AnnoyIndex строится с указанным количеством деревьев (num_trees), обычно 100 деревьев.4. Кодирование входного запроса: Входное предложение query кодируется в вектор query_vector с помощью модели model (которая обычно представляет собой модель кодирования предложений, такую как BERT или Universal SentenceEncoder).5. Поиск ближайших соседей: Используя индекс AnnoyIndex, функция находит num_neighbors ближайших соседей для query_vector. Результат сохраняется в списке nearest_neighbors.6. Возврат результатов: Функция возвращает два списка: - nearest_documents_title: Список строк с заголовками фильмов Title), соответствующих ближайшим соседям. - nearest_documents_summary: Список строк с краткими описаниями фильмов (Summary), соответствующих ближайшим соседям.И всё это совместили в главном файле программы через main.pyЦикл событий GUI:window.read()`: ожидает событий, таких как щелчки мыши, ввод с клавиатуры и закрытие окна.event, values: переменная `event` хранит имя события, а переменная `values` содержит значения, связанные с этим событием (например, введенный текст).Обработчики событий:ifevent == sg.WINDOW_CLOSED: если пользователь закрыл окно, цикл событий завершается, и приложение завершает работу.ifevent == "Очистить": очистить поле вывода и продолжить.ifevent == "Найти": получить значения из полей ввода `-NUM_RESULTS-`, `-FUNC-` и `-INPUT-`.Обработка ввода – тут задействованы алгоритмы из другого модуля:ifalgo == 'Косинусное подобие': выполняет поиск по сходству на основе косинусного подобия с помощью функции `similarity_search_Cos_Sim`.ifalgo == 'Расстояние между векторами': выполняет поиск по сходству на основе расстояния между векторами с помощью функции `similarity_search_pinecone`.ifalgo == 'Метод ближайших соседей': выполняет поиск по сходству с помощью метода k-ближайших соседей с помощью функции `similarity_search_ANN`.Вывод результатов:Output_Title, Output_Summary: содержит заголовки и резюме рекомендованных фильмов. Цикл `for` печатает заголовки и резюме каждого рекомендованного фильма.Закрытие окна:window.close()`: закрывает окно GUI.В итоге, вот как выглядит разработанный графический интерфейс, он содержится в главном файле приложения main.py. Кнопка Найти запускает выбранный алгоритм в действие, кнопка Очистить очищает поле вывода.Дипломная работа посвящена разработке алгоритмов машинного обучения для приложения выдачи рекомендаций фильмов. В ходе выполнения дипломной работы были получены следующие основные результаты:Проведен всесторонний анализ существующих методов машинного обучения для выдачи рекомендаций фильмов. Выявлены их преимущества и недостатки.Разработан алгоритм работы приложения в целом.Создан графический интерфейс для приложенияРазработаны и реализованы три алгоритма машинного обучения: K-ближайших соседей, векторное сходство, косинусное подобие.Проведена оценка адекватности разработанных алгоритмов.Практическая значимость работы.Разработанные в дипломной работе алгоритмы могут быть использованы в приложениях выдачи рекомендаций фильмов. Приложение может быть реализовано как веб-сервис или мобильное приложение. Приложение будет помогать пользователям находить интересные для них фильмы на основе их истории просмотров и предпочтений.Для дальнейшего развития проекта выдачи рекомендаций фильмов можно предложить следующие направления:Увеличить размер и разнообразие набора данных фильмов.Изучить и реализовать дополнительные алгоритмы машинного обучения.Разработать гибридные алгоритмы, которые объединяют различные методы машинного обучения.Оптимизировать разработанные алгоритмы для повышения точности и производительности.Разработать и реализовать интерфейс приложения для удобного взаимодействия с пользователями.В дипломной работе были разработаны и реализованы алгоритмы машинного обучения для выдачи рекомендаций фильмов в составе приложения с графическим интерфейсом. Данное приложение имеет потенциал для коммерческого применения.
1. Hill W., Stead L., Rosenstein M., Furnas G. Recommending and Evaluating Choices in a Virtual Community of Use // Proceeding Conference Human Factors in Computing Systems, 1995. P. 194-201.
2. GroupLens: Resnick P., Iakovou N., Sushak M., Bergstrom P., Riedl J. An Open Architecture for Collaborative Filtering of Netnews // Proceeding 1994 Computer Supported Cooperative Work Conference, 1994. P. 175-186.
3. Shardanand U., Maes P. Social Information Filtering: Algorithms for Automating «Word of Mouth» // Proc. Conf. Human Factors in Computing Systems, 1995 . P. 210-217.
4. Goldberg D., Nichols D., Oki B. M., Terry D. Using collaborative filtering to weave an information Tapestry // Special issue on information filtering, 1992. Vol. 35, Issue 12 P. 61-70.
5. Adomavicius G., Tuzhilin A. Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions // IEEE Transactions on Knowledge and Data Engineering, 2005. Vol. 17, Issue 6. P 734-749.
6. Celma O. Music Recommendation and Discovery. Springer-Verlag Berlin Heidelberg, 2010. 194 p.
7. Ricci F., Rokach L., Shapira Recommender Systems Handbook. Springer US, 2011. 842 p.
8. B., Kantor P.B. Aggarwal C. C. Data mining. The Textbook. Springer International Publishing, 2015. 734 p.
9. Mango T., Sable C. A comparison of signal-based music recommendation to genre labels, collaborative filtering, musicological analysis, human recommendation, 41 and random baseline // Proceedings of the 9th international conference on music information retrieval, 2008. P. 161-166.
10. Knees P., Pohle T., Schedl M., Widmer G. Combining audio-based similarity with web-based data to accelerate automatic music playlist generation // Proceedings of the 8th ACM international workshop on Multimedia information retrieval, 2006. P. 147-154.
11. Schedl M., Flexer A., Urbano J. The neglected user in music information retrieval research // Journal of Intelligent Information Systems, 2013. Vol. 41, Issue 3. P. 523-539.
12. Gabriel H. H., Spiliopoulou M., Nanopoulos A. Eigenvectop-based clustering using aggregated similarity matrices // Proceedings of the 2010 ACM Symposium on Applied Computing, 2010. P. 1083-1087.
13. Королева Д. Е., Филиппов М. В. Анализ алгоритмов обучения коллаборативных рекомендательных систем // Инженерный журнал: наука и инновации, 2013. Вып. 6. Стр. 1-8.
14. Николенко С.А. Рекомендательные системы. СПб: Изд-во Центр Речевых Технологий, 2012. 53 с.
15. Berry M.W. Large scale singular value computations // International Journal of Supercomputer Applications, 1992. No. 6(1). P. 13–49.
16. Billsus D., Pazzani M.J. Learning Collaborative Information Filters // Proceeding 15th International Conference on Machine Learning, 1998. P. 46-54.
17. Ekstrand M. D., Riedl J. T., Konstan J. A. Collaborative Filtering Recommender Systems // Foundations and Trends® in Human–Computer Interaction, 2011. Vol. 4, No. 2. P. 81-173.
18. Goldberg K., Roeder T., Gupta D., Perkins C. Eigentaste: A constant time collaborative filtering algorithm // Information Retrieval, 2001. Vol. 4, No. 2. P. 133–151. 42
19. Aggarwal C. C. Recommender Systems. The Textbook. Springer International Publishing, 2016. 498 p.
20. ДжонсМ. Рекомендательныесистемы. https://www.ibm.com/developerworks/ru/library/os-recommender1/index.html
21. Pazzani M., Billsus D. Learning and revising user profiles: The identification of interesting web sites // Machine Learning - Special issue on multistrategy learning, 1997. Vol. 27, Isue 3. P. 313–331.
22. Jannach D., Zanker M., Felfernig A., Friedrich G. Recommender Systems – An Introduction. Cambridge University Press, 2010. 360. P
23. Herlocker J., Webster J., Jung S., Dragunov A., Holt T., Culter T., Haerer S. A framework for collaborative information environments and unified access to distributed digital content // Proceedings of the 2nd ACM/IEEE-CS joint conference on Digital libraries, 2002. P. 378-378.
24. Wang A. The Shazam music recognition service // Communications of the ACM, 2006. P. 44-48.
25. Vucetic S., Obradovic Z. Performance Controlled Data Reduction for Knowledge Discovery in Distributed Databases // Proceedings of the 4th Pacific-Asia Conference on Knowledge Discovery and Data Mining, Current Issues and New Applications, 2000. P. 29-39.
26. Sarwar B., Karypis G., Konstan J., Riedl J. Analysis of recommendation algorithms for e-commerce // Proceedings of the 2nd ACM conference on Electronic commerce, 2000. P. 158-167.
27. Zaharia M., Chowdhury M., Franklin M. J., Shenker S., Stoica I. Spark: cluster computing with working sets // HotCloud, 2010. Vol. 10, P. 10.