Машинное обучение вики
Advertisement

SVD разложение: может быть представлена как произведение трёх матриц , где .

Если , то данное разложение определено однозначно. В таком случае, если взять первые K столбцов матриц U и V, и первые K сингулярных чисел , то получится матрица R', минимизирующая норму Фробениуса, по всем матрицам ранга не больше, чем K:

.

В таком случае строки матрицы U можно воспринимать как отношение пользователя к каждой из K скрытых тем (в оригинале стоит слово topic). Строки матрицы V как степень соответствия фильма одной из K скрытых тем. Сингулярные числа : важность каждой из тем.

Теперь, если у нас появляется новый пользователь с "большим" вектором оценок , то его K-мерный вектор отношений к темам будет вычисляться следующим образом:

(В справедливости данного формулы можно убедиться, подставив итоговый результат и вспомнив про ортогональность V). Обратный процесс: .

Основной недостаток данного подхода: итоговый результат зависит как от указанных оценок, так и от тех, которые мы не знаем (их обычно принимают равными 0). Нам хочется придумать модель, которая обучалась бы только на известных оценках.

Напомним, что в SVD разложении минимизировалась норма Фробениуса: . Предсказание .

Идея: минимизировать только те кусочки нормы Фробениуса , где оценка пользователя определена:.

Для решения данной проблемы воспользуемся методом SGD: будем случайно выбирать пару (u, i).

.

Преимущества данного подхода:

Нет неопределённости;

Легко добавить регуляризацию: ;

Можно учесть неотрицательность компонент p и q, воспользовавшись методом проекций градиента;

Достаточно быстр.

Advertisement