Научная статья на тему 'ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДИКИ ФИЛЬТРАЦИИ ДЛЯ РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ'

ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДИКИ ФИЛЬТРАЦИИ ДЛЯ РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
194
23
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
КОЛЛАБОРАТИВНАЯ ФИЛЬТРАЦИЯ / РЕКОМЕНДАТЕЛЬНЫЕ СИСТЕМЫ / SLOPE ONE / ПРОБЛЕМА «ХОЛОДНОГО СТАРТА»

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Гагарина Лариса Геннадьевна, Болотин Юрий Сергеевич, Болотина Екатерина Сергеевна

В статье проведён анализ метода коллаборативной фильтрации и выявлены его недостатки. В результате исследования был разработан алгоритм, призванный устранить недостатки метода коллаборативной фильтрации, выполнены экспериментальные исследования и на их основе проведена оценена эффективность полученных результатов путём моделирования на языке Kotlin. Планируется, что разработка увеличит точность предсказаний в рекомендательных системах.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Гагарина Лариса Геннадьевна, Болотин Юрий Сергеевич, Болотина Екатерина Сергеевна

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

RESEARCH AND DEVELOPMENT OF A FILTERING TECHNIQUE FOR A RECOMMENDATION SYSTEM

The paper analyzes the collaborative filtering method and determines its disadvantages. As a result of the study, an algorithm was developed to eliminate the shortcomings of the collaborative filtering method, experimental studies were performed and based on them, the effectiveness of the obtained results was evaluated by modeling in Kotlin. It is planned that the development will increase the accuracy of predictions in recommendation systems.

Текст научной работы на тему «ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДИКИ ФИЛЬТРАЦИИ ДЛЯ РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ»

УДК 004.421.4

DOI: 10.24412/2071-6168-2023-1-387-391

ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДИКИ ФИЛЬТРАЦИИ ДЛЯ РЕКОМЕНДАТЕЛЬНОЙ СИСТЕМЫ

Л.Г. Гагарина, Ю.С. Болотин, Е.С. Болотина

В статье проведён анализ метода коллаборативной фильтрации и выявлены его недостатки. В результате исследования был разработан алгоритм, призванный устранить недостатки метода коллаборативной фильтрации, выполнены экспериментальные исследования и на их основе проведена оценена эффективность полученных результатов путём моделирования на языке Kotlin. Планируется, что разработка увеличит точность предсказаний в рекомендательных системах.

Ключевые слова: коллаборативная фильтрация, рекомендательные системы, slope one, проблема «холодного старта».

Для сокращения времени поиска подходящего товара люди используют различные веб-приложения такие как Яндекс.Маркет, Сбермегамаркет, Ozon, Wildbemes и другие. К сожалению, пользователям приходится тратить значительную часть времени на поиск подходящего изделия из-за несовершенства рекомендательных систем. Рекомендательные системы — это системы фильтрации информации, решающие проблему информационной перегрузки, путем выявления и получения наиболее важных данных из большого объема динамически генерируемой информации в соответствии с предпочтениями, интересами или наблюдаемым поведением пользователя в отношении какого-либо объекта. Под объектом товар в интернет магазине, музыка или фильм в медиасервисах. Рекомендательные системы выгодны как поставщикам услуг, так и пользователям. Например, они снижают издержки на поиск и выбор товаров в среде онлайн-покупок.

ТегфлииенЬация |

Рис. 1. Визуализация коллоборативной фильтрации

В настоящее время в рекомендательных системах наиболее широко применяются методы коллаборативной фильтрации, методы, анализирующие содержимое объектов и методы, основанные на знаниях.

В частности, метод коллаборативной фильтрации предполагает, что интересы пользователей представлены оценками. Основная идея этого метода заключается в сравнении между собой интересов различных пользователей или объектов на основе этих оценок. При этом никакой дополнительной информации о самих пользователях и объектах не используется. Это метод рекомендации, при котором анализируется только реакция пользователей на объекты: оценки, которые выставляют пользователи объектам. Оценки могут быть как явными (пользователь явно указывает, на сколько «звездочек» он оценивает объект), так и неявными (например, количество просмотров одного ролика). Чем больше оценок собирается, тем точнее получатся рекомендации. Получается, что пользователи помогают друг другу в фильтрации объектов. Поэтому такой метод называется также совместной фильтрацией. Алгоритм основывается на допущениях о том, что пользователи, совместно оценившие схожим образом некоторую группу товаров, будут схожим образом оценивать и те товары, которые ещё не были оценены одним из пользователей. Для наглядности данное предположение проиллюстрировано в таблице.

Далее для активного прогнозируемого значения ячейки «потребитель - товар» формируется прогноз на основе информации о соседстве (фильтрация, основанная на соседстве) либо с помощью модели машинного обучения (фильтрация, основанная на модели). Прогнозируется значение - это значение, которое пользователь поставил-бы данному товару, если бы ему пришлось его оценивать.

Преимущества метода коллаборативной фильтрации в том, что он является универсальным для данных подходящего формата; для работы не требуется детального описания товара; в большинстве практических задач метод имеет высокую точность.

387

Подход на основе коллаборативной фильтрации также имеет свои недостатки: масштабируемость, синонимия, «проблема холодного старта», мошенничество, «белые вороны», разнообразие, разреженность данных.

Один из самых важных вопросов — это решение задачи «проблемы холодного старта». Это относится к ситуации, когда у рекомендательной системы недостаточно информации о пользователе, чтобы делать соответствующие прогнозы. Это одна из основных проблем, снижающих производительность рекомендательной системы. Профиль такого нового пользователя или элемента будет пустым, так как он не оценил ни одного объекта; следовательно, его интересы не известны системе. Не менее важна и проблема разреженности данных и масштабируемости. Многие пользователи могут не оставлять пользовательскую оценку (рейтинг) товара. Но даже если такие данные есть, то товаров, как правило огромное количество, как и пользователей, что приводит к тому, что обучающие данные крайне разрежены и обладают большой размерностью. Из этого вытекает как существенные затраты на вычисления (сложность алгоритма 0(М*№)), так и проблемы, связанные с понятием «проклятие размерности», при котором новые данные могут лежать крайне далеко от обучающих образцов.

Таблица коллаборативной фильтрации

" ——Товары Потребитель —— Товар №1 Товар №2 Товар №3 Товар №4

Иван + + + +

Степан - - - +

Инна - - - +

Марина - - - +

+ — купил; - — не купил.

Проблему «холодного старта» было решено устранить с помощью функции нормирования rat(u), где u это данные пользователе: возраст, пол, регион проживания и семейное положение. Эта информация, как правило либо вводится пользователем при регистрации, либо находится в свободном доступе. Очевидно, что при достаточном накоплении необходимых статистических данных эта информация будет «вводить в заблуждение» рекомендательную систему, поэтому функция rat будет обратно пропорциональна количеству накопленных данных.

V ■ f rat(u) .1Ч

ru,i = L u'eu, sim(u, u ) *v,¡ * —— , (1)

i=l..|U|

где U - множество пользователей; r - выставленная оценка; sim - мера схожести двух пользователей; rat - функция нормирования.

Сравним с помощью языка программирования Kotlin. В нашем простом примере мы собираемся предсказать рейтинг пользователей по товарам в магазине.

В нашей модели у нас есть два основных объекта - предметы и пользователи. Класс Item содержит имя элемента, а класс User содержит имя пользователя: data class Item(private val itemName: String) data class User(private val username: String)

Добавим класс InputData, который будет использоваться для инициализации данных и добавим в него пять разных продуктов в магазине:

data class InputData(private val items = listOf(

Item("Candy"), Item("Drink"), Item("Soda"),Item("Popcorn"),Item("Snacks"))) Далее создадим трех пользователей, которые случайным образом оценили некоторые из вышеупомянутых, используя шкалу от 0,0 до 1,0, где 0 означает отсутствие интереса, 0,5 каким-то образом заинтересован, а 1,0 означает полностью заинтересованный. В результате инициализации данных мы получим map с данными ранжирования пользовательских элементов: val data: MutableMap<User, HashMap<Item, Double»

На основе имеющихся данных рассчитаем связи между элементами, а также количество вхождений элементов. Для каждого пользователя проверяем рейтинг его элементов: for (user in data.values) {

for ((key, value) in user) { //... } }

На следующем шаге проверяем, существует ли элемент в матрицах. Если это первое появление, создаем новую запись в map:

if (!diff.containsKey(key)) { diffkey] = HashMap() freq[key] = HashMap()

}

Первая матрица используется для расчета различий между оценками пользователей. Её значения могут быть положительными или отрицательными (так как разница между оценками может быть отрицательной) и хранятся как float. Частоты хранятся в виде целочисленных значений.

for ((key, value) in user) { var oldCount = 0 if (freq[key].containsKey(key))

oldCount = freq[key] [key] var oldDiff = 0.0f

if (diff[key].containsKey(key)) oldDiff = diff[key][key] val observedDiff = value - value freq[key] [key] = oldCount + 1 diff[key] [key] = oldDiff + observedDiff

}

На основе полученных экспериментальных данных построен график зависимости количества товара от вероятности правильной рекомендации для случая с применением методики и алгоритма и без.

1,2

X

ш %

о ^

ш

О х

■О

0,8

0,6

0,4

о

X I-

ск о

Ш СО

0,2

5 6 7 8 9 Количество товара С разработанной методикой Без разработанной методикой Линейная (С разработанной методикой)

10

Рис. 2. Зависимость количества данных от правильности предсказания

1

0

Из графика можно сделать вывод, что для одной и то же количества товаров при малом объёме начальной информации вероятность правильного предсказания выше чем без применения разработанного алгоритма. Затем, приближаясь к отметке 80% процентов значения выравниваются. Очевидно, что проблема холодного старта нивелировалось и при отсутствии начальной информации о предпочтениях вероятность предсказания достигает 40%.

Следует отметить, что благодаря этой методике пользователи быстрее смогут найти подходящий товар и обратить внимание на товары, которые выбирали пользователи со схожими предпочтениями. Из совокупности имеющихся недостатков и преимуществ данного метода, можно сделать вывод, что модели подобного рода могут использоваться как модели «холодного старта» рекомендательной системы, т.е. являться «базовыми моделями». Когда ещё не существует размеченных качественных выборок для обучения более сложных моделей. На основе подобной модели можно составить первичные рекомендации, проверить их, оценить и сформировать выборку данных для более сложных моделей. Таких, например, как колаборативная фильтрация, в которой можно использовать полученные «базовой моделью» ранги. Данный подход может использоваться и в других классах задач, не связанных с системами рекомендаций. Например, при анализе пользователей социальных сетей и сопоставления подмножеств групп пользователей друг с другом.

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

1. БеловаК.М., СудаковВ.А. Исследование эффективности методов оценки релевантности текстов // Препринты ИПМ им. М.В. Келдыша 2020. No 68. 16 с. http://doi.org/10.20948/prepr-2020-68.

2. Jannach D., Zanker M., Felfering A., Friedrich G. Recommender Systems: An Introduction. Cambridge University Press, 2020.

3. Понизовкин Д.М., Амелькин С.А. Математическая модель коллаборативных процессов принятия решений // Программные системы: теория и приложения, 2011. 2:4 (2011). С. 95-99.

4. Linden G., SmithB., York J., Amazon.com recommendations: item-to-item collaborative filtering // Internet Computing - IEEE, 2003. 7. P. 76-80.

5. A Collaborative Filtering Recommendation System in Java. [Электронный ресурс] URL: https://www.baeldung.com/java-collaborative-filtering-recommendations (дата обращения: 30.11.2022).

6. Fleder D., Hosanagar K. Blockbuster Culture's Next Rise or Fall: The Impact of Recommender Systems on Sales Diversity (англ.) // Management Science, Vol. 55, No. 5, May 2009. P. 697-712.

7. Князева А.А., Колобов О.С., Турчановский И.Ю., Федотов А.М. Коллаборативная фильтрация для построения рекомендаций на основе данных о заказах // Вестн. НГУ. Серия: Информационные технологии. 2018. Т. 16, № 2. С. 62-69. DOI 10.25205/1818-7900-2018-16-2-62-69.

8. Понизовкин Д.М. Построение оптимального графа связей в системах коллаборативной фильтрации // Программные системы: теория и приложения, 2011. 2:4. P. 107-114.

9. Ricci F., Rokach L., Shapira B., Kantor P. Recommender Systems: Handbook. Springer, 2021.

Гагарина Лариса Геннадьевна, д-р техн. наук, профессор, директор института СПИНТех, sagar@bk.ru, Россия, Москва, Национальный исследовательский университет «Московский институт электронной техники»,

Болотин Юрий Сергеевич, аспирант, bolotin99@inbox.ru, Россия, Москва, Национальный исследовательский университет «Московский институт электронной техники»,

Болотина Екатерина Сергеевна, магистрант, katerinabolotina@inbox.ru, Россия, Москва, Национальный исследовательский университет «Московский институт электронной техники»

RESEARCH AND DEVELOPMENT OF A FILTERING TECHNIQUE FOR A RECOMMENDATION SYSTEM.

L.G. Gagarina, Y.S. Bolotin, E.S. Bolotina

The paper analyzes the collaborative filtering method and determines its disadvantages. As a result of the study, an algorithm was developed to eliminate the shortcomings of the collaborative filtering method, experimental studies were performed and based on them, the effectiveness of the obtained results was evaluated by modeling in Kotlin. It is planned that the development will increase the accuracy of predictions in recommendation systems.

Key words: collaborative filtering, recommendation systems, slope one, cold-start problem.

Gagarina Larisa Gennadievna, doctor of technical sciences, professor, director of the Spintech Institute, gagar@,bk.ru, Russia, Moscow, National Research University «Moscow Institute of Electronic Technology»,

Bolotin Yuri Sergeevich, postgraduate, bolotin99@inbox.ru, Russia, Moscow, National Research University «Moscow Institute of Electronic Technology»,

Bolotina Ekaterina Sergeevna, master, katerinabolotina@inbox. ru, Russia, Moscow, National Research University of Electronic Technology

i Надоели баннеры? Вы всегда можете отключить рекламу.