У технической команды Ali есть статья о системе поддержки Taobao Double Eleven:1 миллиард домашних страниц Taobao создается за один день, как инженеры Ali достигают этого?. Меня очень заинтересовал упомянутый в ней фреймворк глубокого вспоминания, и я попытаюсь его проанализировать.
Начните с встраивания графа
Система глубокого припоминания Али взята из «DeepWalk: онлайн-обучение социальным представлениям». Давайте посмотрим, о чем эта статья сегодня.
DeepWalk сам по себе представляет собой алгоритм графа, который изучает встраивание представления вершин в сети. Он использует подход языковой модели для изучения скрытых представлений вершин в социальных сетях и достигает хороших результатов. Короче говоря, вход DeepWalk — это сеть, а выход — скрытое представление каждой вершины.
Problem Formulation
Сначала определите некоторые символы:— ориентированный взвешенный граф, где V и E представляют наборы вершин и ребер соответственно.— частично размеченный граф социальной сети, где,является размерностью пространства признаков., это набор меток. В алгоритмах общей классификации мы пытаемся найти карту, котораяФункция сопоставляется с. В этой статье мы используем неконтролируемый подход для изучения структуры сети.
Наша цель - научиться, d — скрытая размерность вектора, и она мала. Этот d-мерный вектор представляет структурные особенности сети. Это выражение должно иметь следующие свойства:
- Адаптивность: нет необходимости заново обучать всех при добавлении новых элементов
- Сообществу известно: расстояние между двумя вложениями следует использовать для измерения сходства между исходными элементами.
- низкий размер
- Continuous: принимать значения в непрерывном пространстве
Random walk
Случайное блуждание является распространенным методом выборки, и в этой статье он используется для выборки последовательностей. Процесс случайного блуждания в этой статье выглядит следующим образом:Первое случайное блуждание отмечено как, то вершина, которая будет выбрана следующейисходит из вершиныслучайным образом выбираются среди соседей. В статье этот метод используется для завершения выборки, а выбранная последовательность используется в качестве корпуса в языковой модели.
Language Model
Вообще говоря, целью прогнозирования языковой модели является вероятность появления слова в ожидаемой последовательности, то есть при заданной последовательности слов:, нам нужно максимизироватьпредсказывать. По аналогии с нашей задачей следует максимизировать. Но наша цель научиться неявному представлению, пусть нужная нам карта будет, то нам нужно максимизировать. А новая языковая модель позволяет игнорировать порядок слов, превращая эту проблему в:
вэто размер окна. В этом случае узлы с похожими соседями будут иметь похожие выражения встраивания.
Method
Согласно вышеизложенной теории, алгоритм DeepWalk выглядит следующим образом:
в,длина каждого случайного блуждания.Во-первых, случайная инициализация. Постройте бинарное дерево из V, которое в основном будет выполнять иерархический softmax. после этогоСлучайное блуждание раунда по V должно каждый раз нарушать порядок доступа к вершинам V. Случайное блуждание в каждом раунде V состоит из случайного блуждания длины t, начиная с каждой вершины. После формирования каждой последовательности случайных блужданий алгоритм Skip-Gram необходимо использовать один раз.
Skip-Gram — это языковая модель, которая максимизирует вероятность одновременного появления слов в окне, которую мы используем здесь для обновления.. В частности, авторы используют иерархический метод softmax для оптимизации процесса Skip-Gram и используют метод стохастического градиентного спуска для завершения обновления. О Skip-Gram заинтересованные читатели могут прочитать в этом блогеWord2Vec Tutorial - The Skip-Gram Model.
Преобразование Taobao в DeepWalk
Затем, согласно1 миллиард домашних страниц Taobao создается за один день, как инженеры Ali достигают этого?Как мы можем применить модель DeepWalk к системе рекомендаций Taobao?
генерирующая сеть
DeepWalk — это модель, которая генерирует вложения в сети, сначала нам нужно сгенерировать сеть. Али использует алгоритм SWING для создания направленного взвешенного графа между товарами в виде сети. SWING на самом деле является методом, который использует треугольную структуру, называемую SWING, для создания подобия i-i на двудольном графе u-i.Если SWING не используется, вместо этого алгоритма следует использовать другие модели подобия. Сходство i-i, сгенерированное алгоритмом SWINGF, не является симметричным, поэтому окончательная форма представляет собой ориентированный взвешенный граф.
Конечно, ориентированный взвешенный граф также означает, что нам нужно скорректировать случайное блуждание в соответствии с весом, когда мы находимся в случайном блуждании.
Выборка случайного блуждания для товарных сетей
В статье говорится, что они позаимствовалиNode2vec: Scalable Feature Learning for Networksвыборочный метод. Итак, каков метод выборки для этой статьи? Сам node2vec представляет собой полууправляемый метод обучения для изучения представлений признаков узлов в сети. Его процесс на самом деле очень похож на DeepWalk. Али здесь в основном использует процесс случайного блуждания.
Во-первых, мы определяем соседей DFS и BFS отдельно, как показано:
Соседи BFS относятся к соседним узлам, непосредственно подключенным к узлу, а соседи DFS относятся к соседям последовательности. BFS легко понять, почему существует определение соседей DFS?
Узлы в сети имеют два сходства: одно сходимость, например u и s1, и другое структурное сходство, например u и s6. Соседи BFS помогают исследовать конвергенцию, а соседи DFS помогают исследовать структурное сходство. В рекомендации продукта пиво и красное вино можно рассматривать как структурное сходство, а пиво и жареную курицу можно рассматривать как конвергенцию (мое личное мнение, возможны недоразумения). На практике обычно используются оба подобия. Node2vec определяет механизм случайного блуждания, который может использовать оба свойства одновременно:
- Общее случайное блуждание определяет вероятность выбора следующего узла как регуляризованную вероятность перехода. который
- И это случайное блуждание создает параметр смещения. Если случайное блуждание только что началось с узлаперейти к узлу, и запишите следующий посещенный узел как,сделать,и
- то есть установитьДля параметра повторного посещения случайное блуждание занимаетВероятность возврата узла;настраиватьдля параметров удаленного доступа,Чем он меньше, тем больше склонен к посещению узлов второй степени.
Помимо случайного блуждания, node2vec также использует метод отрицательной выборки для замены иерархического метода softmax в DeepWalk. Taobao также принял этот метод. В то же время они также приняли метод оптимизации динамического семплера. Что касается отрицательной выборки, заинтересованные читатели могут прочитать этот блог.Word2Vec Tutorial Part 2 - Negative Sampling.
расширенная оптимизация
На основании вышеизложенного Taobao предложила версию Sequence+Side-information.
Насколько я понимаю, так называемая последовательность заключается в замене данных случайного блуждания реальными данными сеанса пользователя в качестве обучающей выборки. Но здесь очень важна особенность Taobao. Как веб-сайт, обновляющийся в режиме реального времени, существует очень сильная корреляция между записями пользователей о просмотрах, но общий веб-сайт может не иметь такой сильной корреляции, и все еще сомнительно, что это можно сделать на практике.
Дополнительную информацию легче понять, это эквивалентно добавлению некоторых данных, связанных с самим элементом, но не структурой, и добавлению встраивания для обучения. В конце концов, наша цель — вспомнить предмет, а не измерить релевантность в социальных сетях, таких как Deep Walk.
«После построения всего сетевого графа поведения в сеансе вводится ребро связи вероятности перехода, подобное tf-idf, для преодоления проблемы горячей точки Гарри Поттера, и на этой основе выполняется вероятностная выборка для построения «виртуальной выборки». поведения пользователя для расширения. Охват и точность ввода ребенка в модель глубины позже сделают многоуровневую расширенную информацию более полной". .
Последний этап оптимизации фактически предназначен для крупномасштабного набора данных Taobao.В общих сценариях рекомендаций вполне вероятно, что эту часть оптимизации не нужно рассматривать.Конечно, по сравнению с размером Double Eleven, это очень важная часть.
Суммировать
В целом, структура глубокого припоминания Taobao выглядит примерно так:
- Создайте однородный сетевой граф на основе SWING или любого алгоритма таблицы релевантности i-i.
- Выполните случайное блуждание в соответствии с node2vec на этом графе сети и соберите обучающие выборки.
- Шаги 1 и 2 также можно заменить реальными данными сеанса пользователя.
- Добавьте дополнительную информацию к проекционному слою
- Выполнение алгоритма Skip-Gram
ps:
Что касается Skip-Gram, я думаю, что есть несколько блогов, которые также хорошо написаны, но некоторые из них являются китайскими переводами иностранных блогов: