Вариационные автоэнкодеры для системы рекомендаций

МЕНЮ


Главная страница
Поиск
Регистрация на сайте
Помощь проекту
Архив новостей

ТЕМЫ


Новости ИИРазработка ИИВнедрение ИИРабота разума и сознаниеМодель мозгаРобототехника, БПЛАТрансгуманизмОбработка текстаТеория эволюцииДополненная реальностьЖелезоКиберугрозыНаучный мирИТ индустрияРазработка ПОТеория информацииМатематикаЦифровая экономика

Авторизация



RSS


RSS новости


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

Вариационные автоэнкодеры или VAEs – это автоэнкодер, распределение кодировок которого регулируется во время обучения, чтобы гарантировать, что его скрытое пространство имеет полезные свойства, позволяющие нам генерировать некоторые новые данные. Сам термин «вариационный» происходит от тесной связи между регуляризацией и методом вариационного вывода в статистике. Данный подход чем-то похож на генеративные модели (GAN). Они могут производить случайные выходные данные, которые схожи с тренировочными данных. Похожую концепцию реализуют и вариационные автоэнокдеры, но позволяют исследовать данные нужным нам способом. Насколько мне известно, на данный момент, VAEs достаточно известны благодаря «deep fake» разработкам, таким как лиц людей которые никогда не жили или создания искусственной музыки.

Нейросеть автоэнкодера это пара из двух нейросетей – энкодера и декодера. При передаче данных в энкодер, данный компонент преобразует их, делая данные более компактными и сжатым, а компонент декодера, что понятно из контекста, преобразует их в оригинальный вид. То есть, по сути, VAEs очень похожи на уже классические сверточные нейросети. В сверточных нейронных сетях сверточные слои принимают большую по объему единицу данных и преобразует ее в более плотный и компактный вид. Затем новый формат используется для классификации других данных (например породы вашего любимого животного). VAE выполняет похожий порядок, на входе кодирует данные, причем так чтоб содержалось достаточно данных о искомом объекте и затем используя декодер становится возможным на основе существующего представления делать некоторые предположения. Во многих статьях вид классического автоэнкодера представляют следующим рисунком:

Вид классического автоэнкодера
Вид классического автоэнкодера

В рамках систем рекомендаций на основе коллаборативной фильтрации и VAE известно о множестве моделей, но в этой статье мы рассмотрим основной из них – Standard-VAE (SVAE), так как остальные подходы базируются именно на нем. Для SVAE мы будем полагать uin{{1, ldots, U}}, для индексации пользователей (users) и iinleft{1, ldots, I ight}для индексации рекомендуемых объектов (items), и будем рассматривать как обучение с неявной связью. Матрица взаимодействия пользователя с объектом — это матрица кликов Xin N^{U	imes I}. Нижний регистр x_u= left[X_{u1}, ldots, X_{uI} ight]^Tin N^I— это вектор «мешок слов» с количеством кликов для каждого элемента пользователя u.

Как упоминалось выше, система рекомендаций на основе автоэнкодера — это неконтролируемая модель, пытающаяся восстановить свои входные данные в выходном слое. Средний слой (слой узких мест) используется как характерное представление входных данных. В данном алгоритме используется стандартный вариационный автоэнкодер и выводится вариационная функция потерь нижней границы стандартного вариационного автоэнкодера. Результатом SVAE является распределение вероятностей по K элементам (объектам рекомендаций). Это то, чем SVAE отличается от обычного VAE, в котором конечный выход является реконструированным входом. Таким образом, SVAE принимает рейтинги пользователей в виде матрицы щелчков x_u, а затем кодирует матрицу для определения среднего m_u, и стандартного отклонения sigma_u, K-мерного латентного представления z_u, с помощью функции кодировщика g_phileft(x_u ight)=[m_u, sigma_u]. Другими словами, скрытый вектор для каждого пользователя z_uвыбирается из распределения Гаусса, где z_u sim Nleft(m_u, sigma_u ight),  то есть z_u– это нормально распределенная случайная величина со средним m_u и среднеквадратичным распределением sigma_u.  Затем функция декодера f_	hetaleft(z_u ight)=pi_uиспользуется для декодирования скрытого вектора из K-мерного пространства в распределение вероятностей pi_uв исходном N-мерном пространстве, то есть из исходного пространства объектов с кликами мы получаем новое пространство с вероятностями отношения пользователя к объекту. В результате мы получаем вероятности просмотра каждого из N объектов рекомендаций (фильмов, книг и др.) каждым пользователем.

Архитектура VAE
Архитектура VAE

Также в данной модели используется особая целевая функция или функция потерь — ELBO (Evidence Lower Bound), можно перевести как «нижний предел доказательств»:

Loss= log{p_	hetaleft(x_umiddle| z_u ight)-KLleft(qleft(z_u ight) || pleft(z_umiddle| x_u ight)  ight)}

где x_u– вектор объектов рекомендаций, z_u– скрытое представление x_u, qи p – это априорное и апостериорное распределения, KL – мера расходимости Кульбака-Лейблера.

Первая часть уравнения ELBO рассматривает логистическую логарифмическую вероятность для объекта с учетом его скрытого представления (ошибки реконструкции), в то время как второй член KL можно рассматривать как часть регуляризации. Логарифмы в данном случае являются натуральными и имеют основание, которое равно иррациональной константе. Наша цель – максимизировать ELBO, что эквивалентно минимизации отрицательного ELBO (NELBO).

Стоить заметить, что введенная нами мера расхождения Кульбака-Лейблера распределения P относительно Q – не является метрикой и имеет следующий вид:

KL(P || Q) = -sum{P(x)log{Qleft(x ight)+ }sum{P(x)log{Pleft(x ight)}}}

Значение функционала можно понимать как количество неучтённой информации распределения P, если Q было использовано для приближения P. Данная мера расхождения также интерпретируется как величина потерь информации при замене истинного распределения P на распределение Q.

В свою очередь функция логистической логарифмической вероятности для пользователя x_uзадается как:

log{p_	hetaleft(x_umiddle| z_u ight)= sum_{i}{x_{ui}log{sigmaleft(f_{ui} ight)+left(1- x_{ui} ight)log{left(1-sigmaleft(f_{ui} ight) ight)}}}}

где sigmaleft(x ight)= 1/{left(1+exp(-x) ight)}– содержит все объекты i, а f_{ui}– выход генеративной функции.

Также, ELBO обычно расширяется, введя параметр eta, чтобы контролировать степень регуляризации:

Loss= log{p_	hetaleft(x_umiddle| z_u ight)-eta KLleft(qleft(z_u ight) || pleft(z_umiddle| x_u ight)  ight)}

Представление о регуляризации ELBO ­– это компромисс между тем, насколько хорошо мы можем подогнать данные и насколько близки приблизительные данные к предыдущим во время обучения. Вводя параметр? < 1, мы ослабляем влияние априорного ограничения. В результате модель становится менее способной генерировать новые предпочтения пользователей с помощью наследственной выборки. Важно отметить, что основная цель не в максимальном увеличении вероятности или создании воображаемых предпочтений пользователей, а в том, чтобы дать хорошие рекомендации. Таким образом, рассмотрение ? как параметра регуляризации приводит к значительному повышению производительности.

Поэтому обычно для SVAE добавляют простую эвристику для настройки ?. Данную эвристику можно описать так: мера расхождения KL, рассмотренной ранее, линейно нормализуется путем медленного увеличения ? от 0 до 1 в течение большого количества шагов обучения. Предполагается, что ? должно достигнуть ? = 1 примерно в 80% эпох, а затем останется стабильным на значении 1. После чего оптимальная ? находится на основе пикового значения метрики NDCG@K для проверочных наборов данных. После нахождения оптимального бета мы переобучаем модель с той же нормализацией, но останавливаем увеличение ? после достижения значения оптимального, найденного на предыдущем шаге. В качестве альтернативы можно сказать, что мы нормализуем ? до тех пор, пока он не достигнет нового предела нормализации в 80% эпох.

На этом все! Конечно это не вся математика которая лежит в основе подхода. Можно и дальше разбирать различные компоненты, но в более общем виде мы имеем представление указанное выше. Кроме Standard-VAE есть популярный подход Multi-VAE, который использует полиномиальное правдоподобие и рассматривает проблему как мультиклассовую классификацию, но в общих чертах он очень схож с подходом рассмотренным в данной работе.


Источник: habr.com

Комментарии: