Путь от косинусного подобия к трансформатору

Последовательный рекомендатель

В последние годы наблюдается всплеск интереса к последовательным рекомендациям. Исследователи рекомендаций обычно предполагали, что скрытые предпочтения пользователей остаются относительно постоянными. Предположение сработало как шарм для таких вариантов использования, как Netflix. Однако в таких случаях, как веб-сайты электронной коммерции, пользователи постоянно покупают товары, не входя в систему. Другими словами, онлайн-анонимность не позволяет нам профилировать пользователей. Даже если бы это было возможно, знания о пользователе не всегда помогают делать прогнозы. Рассмотрим следующий пример: купить билет на самолет -> купить номер в отеле -> ? прокат автомобилей.

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

Релевантность можно понимать как семантическое сходство между описаниями элементов, что является подходом, который использует рекомендатель на основе контента, и делает его очень похожим на автоматическую поисковую систему. Однако описания, как форма человеческого ярлыка, не всегда доступны.

С другой стороны, история транзакций обычно более надежна и легкодоступна. Отношения совпадения между элементами - еще один способ охарактеризовать релевантность. Элементы, которые появляются вместе в прошлом, с большей вероятностью появятся вместе в будущем.

1-я попытка: предмет-предмет ближайший сосед

Вхождения элементов в заказы могут быть скомпилированы в таблицу, где каждая строка представляет элемент, каждый столбец - заказ, 1 присутствует, 0 отсутствует. Затем релевантность между элементами может быть определена как косинусное сходство между векторами-строками 0/1, представляющими элементы.

Чем чаще элементы появляются вместе, тем больше внутренний продукт, и мы считаем элементы более похожими. Ранжируйте элементы от наибольшего сходства к наименьшему и предлагайте только лучшие из них.

Как и ожидалось, точность нашего примитивного подхода неудовлетворительна. Были предприняты различные попытки улучшить показатель сходства в литературе, например. tf-idf, BM25, Jelinek-Mercer и т. д. На практике пересмотренные метрики действительно повысили точность на несколько процентных пунктов, но в конечном итоге оказались тупиковыми.

С первой попыткой связана модель языка биграмм. Учитывая item_j, мы ищем item_i, который может максимизировать условную вероятность

Мы, безусловно, можем рассмотреть другие элементы, чтобы сделать модель более точной, т. е. использовать трехграммовые, четырехграммовые и т. д. модели. Однако требуемый объем вычислительной мощности и дискового пространства увеличивается в геометрической прогрессии. На практике модели весом более 5 граммов встречаются редко. (Google выпустил 5-граммовый набор данных в 2006 году)

Предиктор следующего слова

Повышение точности моделей n-грамм невозможно. Следующая большая идея пришла из области машинного перевода. На самом деле, если вы имеете опыт работы с НЛП (в отличие от меня), вы сразу поймете, что последовательный рекомендатель — это, по сути, предсказатель следующего слова. Предметы — это, по сути, слова, приказы — предложения. Рекомендателю просто нужно закончить предложение. На самом деле это замаскированная проблема НЛП!