Skip to content
4 / 10

Как устроен ALS для неявной обратной связи и почему он так хорошо масштабируется?

ALS поочерёдно фиксирует одну матрицу и аналитически решает для другой задачу наименьших квадратов. При фиксированном Q оптимальный вектор пользователя выражается формулой x_u = (YᵀC_uY + λI)⁻¹ YᵀC_u p(u) — то есть решается независимо от остальных пользователей, а значит все строки считаются параллельно. Для неявной обратной связи в него встроены уверенность c_ui = 1 + α·r_ui и бинарная цель: сумма идёт по всем ячейкам, а не только по наблюдённым, но ненаблюдённые входят с малым весом. Хитрость реализации — вынести общую часть QᵀQ за скобки, иначе проход по всему каталогу для каждого пользователя не считается.

Как устроен ALS для неявной обратной связи и почему он так хорошо масштабируется? | JScriptiser