Тип работы:
Предмет:
Язык работы:


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

Работа №152149

Тип работы

Бакалаврская работа

Предмет

информационные системы

Объем работы38
Год сдачи2024
Стоимость4760 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
17
Не подходит работа?

Узнай цену на написание


Введение 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.


Работу высылаем на протяжении 30 минут после оплаты.




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