Разнообразие рекомендаций: Sampled MMR
В рекомендательных системах есть 2 проблемы: дураки и дороги слишком много товаров и их однотипность. Например, у вас есть миллионы книг - хочется получить топ-10 самых релевантных от разных авторов/жанров
Чтобы обрабатывать большие каталоги товаров мы часто сэмплируем что-либо: товары, пользователей, негативы и тп.
Для борьбы с однотипностью используем методы повышения разнообразия, например Maximal Marginal Relevance (MMR). В нем при составлении списка рекомендаций мы штрафуем каждый следующий товар за похожесть по эмбеддингу на товары в списке до него. Эффектно, но долго. На практике для списком длиннее 10 скорее не работает.
Логичным выглядит скрестить сэмплирование и MMR. Что и сделали ребята из T-Bank AI Research - получился алгоритм Sampled MMR Отличия Sаmpled MMR от классических MMR, DPP: – Благодаря сэмплированию гораздо быстрее на длинных списках: почти х10 на списках из топ-200 товаров
– Обещают даже более высокое покрытие каталога и разнообразие между юзерами за счет все того же сэмплирования
– По парето-границе размена релевантности на разнообразие обходит MMR, DPP
Из приятного есть параметр “температуры” для управления степенью разнообразия и код на гитхабе
Кстати, Sampled MMR придумали ребята из T-Bank AI Research - можно узнать детали у них на Turbo ML Conf в Москве уже 19 июля