📄Работа №152149

Тема: Разработка быстрых алгоритмов расчета дельта-гиперболичности данных в задачах коллаборативной фильтрации на языке Python

📝
Тип работы Бакалаврская работа
📚
Предмет Информационные системы
📄
Объем: 38 листов
📅
Год: 2024
👁️
Просмотров: 135
Не подходит эта работа?
Закажите новую по вашим требованиям
Узнать цену на написание
ℹ️ Настоящий учебно-методический информационный материал размещён в ознакомительных и исследовательских целях и представляет собой пример учебного исследования. Не является готовым научным трудом и требует самостоятельной переработки.

📋 Содержание

Введение 4
2. Постановка задачи 7
3. Обзор 8
3.1. 6-гиперболичность в коллаборативной фильтрации ... 8
3.2. Алгоритмы подсчета 6-гиперболичности 11
3.3. Выводы 15
4. Реализация 16
4.1. Выбор инструментария 16
4.2. Реализация алгоритма CCL для различных архитектур . 19
4.3. Подсчет матрицы расстояний 23
4.4. Параллельный подсчет 5-гиперболичности для несколь¬
ких выборок 25
5. Эксперименты 26
5.1. Тестовый стенд 26
5.2. Исследовательские вопросы 27
5.3. Выводы 31
6. Заключение 32
Список литературы 33

📖 Введение

Успешная деятельность большинства крупных современных компаний, таких как Google и Яндекс, Amazon и Walmart, была бы невозможна без использования рекомендательных систем. Речь идет о системах, которые делают предположения относительно оценки каждым
конкретным пользователем товаров и услуг, предлагаемых компанией,
и рекомендуют наиболее подходящие.
Одним из основных методов, использующихся при создании рекомендательных систем, является коллаборативная фильтрация, что подтверждается большим количеством исследований на эту тему, например [25], [28] и [14]. Метод позволяет предсказать выбор конкретного
пользователя на основании уже имеющихся данных о поведении других
пользователей. Основная идея метода заключается в том, что пользователям, демонстрирующим схожее поведение, можно рекомендовать
похожие товары.
Хорошим примером использования коллаборативой фильтрации являются такие сервисы как Netflix, Ozon, Okko. Кроме того, существуют
наборы данных, такие как Amazon [26] и MovieLens [13], которые находятся в открытом доступе, предназначаясь для тренировки различных
рекомендательных систем в исследовательских целях, и будут использованы в этой работе для валидации результатов.
В последние годы было предложено множество различных техник
для применения коллаборативной фильтрации к реальным задачам.
Некоторые обобщают подходы матричной факторизации [1], другие же
используют нейросетевые архитектуры, такие как вариационные автокодировщики [8] или системы с обучением на последовательностях [24].
Из-за того что модели машинного обучения способны интерпретировать
лишь математические объекты, а реальные данные не всегда являются
таковыми (это могут быть строки, или id-номера, состоящие из цифр
и букв), необходимо предварительно кодировать объекты и субъекты
информационного процесса в числовые пространства. Правильный подход к проведению этого этапа может привести к значительному повыше-
4нию эффективности работы рекомендательных систем, таких как [16]
и [24]. Компании, заинтересованные в повышении качества рекомендаций, мотивируют дальнейшие исследования в этой области. Одним из
перспективных направлений для изучения является внедрение гиперболической геометрии в архитектуру нейронных сетей.
Применение гиперболической геометрии — один из способов качественно отобразить реальные данные на числовое пространство для
использования в машинном обучении [33]. За счет некоторых полезных свойств гиперболическая геометрия обеспечивает интерпретируемое вложение данных с иерархической структурой в пространство скрытых факторов, что было показано в работе [21].
Важной характеристикой гиперболического пространства является
кривизна. В некоторых исследованиях кривизна фиксируется как константа — например, в работах [44], [11] авторы фиксируют кривизну
как единицу. Однако при дальнейшем изучении было установлено, что
модели с точно выбранной кривизной, соответствующей специфике конкретного набора данных, показывают лучшие результаты [17].
Вычислить кривизну можно с помощью такой характеристики данных как дельта-гиперболичность, которая была введена Михаилом Леонидовичем Громовым в работе [12]. Основная сложность состоит в том,
что асимптотика базового подхода к вычислению этой величины составляет O(n4) относительно количества элементов в наборе данных,
что делает работу в реальных случаях очень ресурсоемкой. Несмотря
на это, алгоритм точно вычисляет δ-гиперболичность, поэтому может
быть использован для подтверждения корректности других алгоритмов. Для приблизительной оценки этой величины, а также для исследования ее поведения при изменении размера выборки и размерности
пространства, исследователями лаборатории «Вычислительного Интеллекта» [40] Сколтеха был предложен алгоритм, вычисляющий эту величину параллельно на небольших порциях данных. Экспериментальным путем было выяснено, что даже этот алгоритм не подходит для
работы на наборах реальных данных также из-за высокой ресурсоемкости и значительной ошибки относительно базового алгоритма. Таким
5образом, в рамках продолжения исследований по применению гиперболической геометрии в рекомендательных системах был сформулирован
запрос на разработку алгоритма подсчета δ-гиперболичности, который
более точно аппроксимирует базовый алгоритм и менее ресурсоемок.

Возникли сложности?

Нужна качественная помощь преподавателя?

👨‍🎓 Помощь в написании

✅ Заключение

В ходе выполнения дипломной работы получены следующие результаты.
• Проведен обзор существующих подходов для ускорения подсчета
δ-гиперболичности (наивный подход, алгоритм Condensed), набора модификаций алгоритма CCL (базовый алгоритм, алгоритм с
использованием ограниченного вычислительного бюджета). С учетом специфики данных для реализации на различных целевых архитектурах (СPU, GPU) были выбраны модификации алгоритма
CCL.
• Написана Python-библиотека, реализующая алгоритмы
Condenced, CCL и naive и поддерживающая версии для центрального и графического процессоров. Также библиотека
содержит версию алгоритма CCL для расчета δ-гиперболичности
на наборах данных произвольного размера.
• Выполнено экспериментальное исследование:
– проверена корректность реализованных алгоритмов посредством сравнения с эталонным решением (наивный подход),
реализованным для CPU и GPU на синтетических данных и
на наборах данных Amazon и MovieLens;
– сделаны замеры производительности относительно эвристики, разработанной в лаборатории «Вычислительного интеллекта», наилучшие результаты показал алгоритм CCL, реализованный на GPU.
С кодом библиотеки можно ознакомится по ссылке – https://
github.com/tnmtvv/hypdelta/tree/main.
Эксперименты проводились с помощью скриптов, представленных в репозитории – https://github.com/tnmtvv/
Gromov-delta-estimation/tree/main.
Нужна своя уникальная работа?
Срочная разработка под ваши требования
Рассчитать стоимость
ИЛИ

📕 Список литературы

[1] Aghdam Mehdi Hosseinzadeh, Analoui Morteza, Kabiri Peyman. Col¬laborative filtering using non-negative matrix factorisation // Journal of Information Science. — 2017. — Vol. 43, no. 4. — P. 567-579.
[2] Applying clique-decomposition for computing Gromov hyperbolic- ity / Nathann Cohen, David Coudert, Guillaume Ducoffe, Au- relien Lancin // Theoretical computer science.— 2017.— Vol. 690.— P. 114-139.
[3] CPython. CPython is the reference implementation of the Python programming language. // Repository. — URL: https://github.com/ python/cpython (дата обращения: 2023-11-10).
[4] Cao Yueqi. Efficient Weingarten map and curvature estima¬tion on manifolds // Mach. Learn.— 2021.— Vol. 110, no. 6.-- P. 1319-1344.-- URL: https://doi.org/10.1007/ s10994-021-05953-4 (дата обращения: 2023-11-05).
[5] Cohen Nathann, Coudert David, Lancin Aurelien. On Computing the Gromov Hyperbolicity // ACM J. Exp. Algorithmics. — 2015. — aug. — Vol. 20.— 18 p.— URL: https://doi.org/10.1145/2780652 (дата обращения: 2023-10-02).
[6] Cython. Cython is an optimising static compiler for both the Python programming language and the extended Cython programming lan¬guage // Repository. -- URL: https://github.com/cython/cython (дата обращения: 2023-11-10).
[7] Diameters, centers, and approximating trees of delta- hyperbolicgeodesic spaces and graphs / Victor Chepoi, Feodor Dragan, Bertrand Estellon et al. // Proceedings of the twenty-fourth annual symposium on Computational geometry. -- 2008. -- P. 59-68.
[8] Doersch Carl. Tutorial on Variational Autoencoders.— 2021.— 1606.05908.
[9] Efficient Curvature Estimation for Oriented Point Clouds / Yueqi Cao, Didong Li, Huafei Sun et al. // ArXiv. — 2019.— Vol. abs/1905.10725.— URL: https://api.semanticscholar.org/ CorpusID:166228634 (дата обращения: 2023-11-05).
[10] Fournier Herve, Ismail Anas, Vigneron Antoine. Computing the Gro¬mov hyperbolicity of a discrete metric space // Information Processing Letters.-2015.-Vol. 115, no. 6-8. - P. 576-579.
[11] Ganea Octavian, Becigneul Gary, Hofmann Thomas. Hyperbolic En¬tailment Cones for Learning Hierarchical Embeddings. — 2018. —04.
[12] Gromov M. Essays in group theory. — London : MSRI Publications, 1987.— P. 75-263.
[13] Harper F. Maxwell, Konstan. Joseph A. The MovieLens Datasets: History and Context. ACM Transactions on Interactive Intelligent Systems (TiiS). — 2015. — URL: https://grouplens.org/datasets/ movielens/1m/ (дата обращения: 2023-09-15).
[14] Herlocker Jonathan L, Konstan Joseph A, Riedl John. Explaining collaborative filtering recommendations // Proceedings of the 2000 ACM conference on Computer supported cooperative work. — 2000. — P. 241-250.
[15] Hyperbolic Embeddings in Sequential Self-Attention for Improved Next-Item Recommendations / Evgeny Frolov, Lina Bashaeva, Leyla Mirvakhabova, Ivan Oseledets. — 2023.
[16] Li Yicong, Chen Hongxu, Sun Xianguo et al. Hyperbolic Hypergraphs for Sequential Recommendation. — 2021. — 08.
[17] Hyperbolic Image Embeddings / Valentin Khrulkov, Leyla Mir- vakhabova, Evgeniya Ustinova et al. // 2020 IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR).— 2020.— P. 6417-6427.
[18] Hyperbolic Representation Learning: Revisiting and Advancing / Menglin Yang, Min Zhou, Rex Ying et al. — 2023. — 06.
[19] Hyperbolic Representation Learning: Revisiting and Advancing / Menglin Yang, Min Zhou, Rex Ying et al. // Proceedings of the 40th International Conference on Machine Learning. — ICML’23. — JMLR.org, 2023. - 21 p.
[20] Hyperbolic audio-visual zero-shot learning / Jie Hong, Zeeshan Hay- der, Junlin Han et al. // Proceedings of the IEEE/CVF International Conference on Computer Vision. — 2023. — P. 7873-7883.
[21] Hyperbolic geometry of complex networks / Dmitri Krioukov, Fragkiskos Papadopoulos, Maksim Kitsak et al. // Physical Review E. — 2010. — sep. — Vol. 82, no. 3. — URL: https://doi.org/10.1103 (дата обращения: 2023-10-30).
[22] Hyperbolic image embeddings / Valentin Khrulkov, Leyla Mir- vakhabova, Evgeniya Ustinova et al. // Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. — 2020. — P. 6418-6428.
[23] Hyperbolic vision transformers: Combining improvements in metric learning / Aleksandr Ermolov, Leyla Mirvakhabova, Valentin Khrulkov et al. // Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. — 2022. — P. 7409-7419.
[24] Kang Wang-Cheng, McAuley Julian. Self-Attentive Sequential Recom¬mendation. — 2018. — 1808.09781.
[25] Koren Yehuda, Rendle Steffen, Bell Robert. Advances in collaborative filtering // Recommender systems handbook. — 2021. — P. 91-142.
[26] Learning a Hierarchical Embedding Model for Personalized Product¬Search. / Qingyao Ai, Yongfeng Zhang, Keping Bi et al. //In Pro¬ceedings of SIGIR ’17. — 2017. — URL: https://jmcauley.ucsd.edu/ data/amazon/ (дата обращения: 2023-09-15).
[27] Malakhov Anton. Composable Multi-Threading for Python Li¬braries. // SciPy. — 2016. — P. 15-19.
[28] Neural collaborative filtering / Xiangnan He, Lizi Liao, Han- wang Zhang et al. // Proceedings of the 26th international conference on world wide web. - 2017. - P. 173-182.
[29] Nishino ROYUD, Loomis Shohei Hido Crissman. Cupy: A numpy- compatible library for nvidia gpu calculations // 31st confernce on neural information processing systems. — 2017. — Vol. 151, no. 7.
[30] On Computing the Hyperbolicity of Real-World Graphs / Michele Bo¬rassi, David Coudert, Pierluigi Crescenzi, Andrea Marino.— 2015.— 09. —Vol. 9294.
[31] On computing the hyperbolicity of real-world graphs / Michele Borassi, David Coudert, Pierluigi Crescenzi, Andrea Marino // Algorithms- ESA 2015: 23rd Annual European Symposium, Patras, Greece, September 14-16, 2015, Proceedings / Springer. -- 2015. -- P. 215-226.
[32] Performance of hyperbolic geometry models on top-N recommendation tasks / Leyla Mirvakhabova, Evgeny Frolov, Valentin Khrulkov et al. // Proceedings of the 14th ACM Conference on Recommender Systems. — 2020. -- P. 527-532.
[33] Popov Andrey, lacob Andrei. Lobachevsky geometry and modern non¬linear problems. — Springer, 2014.
[34] Project The PyPy. PyPy documentation. — URL: https://doc.pypy. org/en/latest/architecture.html (дата обращения: 2023-11-10).
[35] Pypy. Python programming language interpreter. // Repository. -¬URL: https://www.pypy.org/ (дата обращения: 2023-11-10).
[36] Rokhlin Vladimir, Szlam Arthur, Tygert Mark. A Randomized Algo¬rithm for Principal Component Analysis // SIAM Journal on Matrix Analysis and Applications. — 2008. — 09. — Vol. 31.

🛒 Оформить заказ

Работу высылаем в течении 5 минут после оплаты.

©2026 Cервис помощи студентам в выполнении работ