Часть 2: Подходы, основанные на обучении (CBOW и Skip-Gram)

Это вторая часть из пяти частей. Чтобы перейти к другим частям, перейдите по ссылкам ниже:

Часть 1: Матрица совпадений
Часть 2: Подходы, основанные на обучении (CBOW и Skip-Gram)
Часть 3: Отрицательная выборка
Часть 4: Skip- Реализация Gram — Naive Softmax
Часть 5: Реализация Skip-Gram — Отрицательная выборка

Подходы, основанные на обучении

Описанный выше подход, основанный на статистике, требует вычисления и хранения глобальной информации о большом наборе корпусов, содержащих миллиарды слов. Вместо этого мы могли бы создать модель, которая итеративно обновляется с помощью обратного распространения, и в конечном итоге получить возможность кодировать вероятность слова в определенном контексте. Одна простая идея состоит в том, чтобы спроектировать модель таким образом, чтобы ее параметрами были сами векторы слов, которые обновляются посредством оптимизации, чтобы они давали высокую вероятность для слов, действительно присутствующих в заданном контексте, и низкую вероятность. для слов, отсутствующих в контексте. Есть два вероятностных метода, представленных Milolov et al. [1][2] с этой целью, а именно Continuous Bag-of-Words (CBOW) и Skip-Gram. CBOW стремится предсказать центральное слово из окружающего контекста с точки зрения векторов слов, тогда как Skip-gram делает обратное и предсказывает вероятность контекстных слов с учетом центрального слова.

1. Непрерывный набор слов (CBOW)

В CBOW мы поддерживаем контекстное окно из n слов, окружающих центральное слово (максимум 2n+1 слов), и цель Модель состоит в том, чтобы предсказать распределение вероятностей по всем словам в словаре таким образом, чтобы вероятность центрального слова была максимальной.

Давайте рассмотрим конкретный пример, чтобы понять это более четко.

Дано предложение: "Мне нравятся трансформеры, когда они используются в приложениях компьютерного зрения", последовательности [в центре] и контекстных слов в окне размером 2 можно задать как:

[Я] люблю трансформеров
Я [люблю] трансформеров, когда
Я
люблю [трансформеров], когда они используются
люблю трансформеров [ когда] используется в
трансформаторах когда [используется] в компьютере
когда используется [в] компьютерном зрении
используется в [компьютерных] приложениях зрения
в компьютерных приложениях [зрения]
компьютерное зрение [приложения]

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

Мы поддерживаем две матрицы, W и W', каждая строка матрицы W представляет N-мерный вектор слов для контекстных (внешних) слов, которые можно искать с помощью соответствующего однократного вектора; вторая матрица W’ содержит векторы слов для центральных слов, организованных в виде столбцов. Размерность W равна VxN, где V — общее количество слов (в данном примере 9), а N — длина векторов слов. Например, если внешнее слово — это «трансформеры», представленное x3 =[0,0,1,0,0,0, 0,0,0], то скалярное произведение двух даст нам N-мерныйвектор, представляющий встраивание слова для “ трансформаторы». Рассмотрим архитектуру CBOW, показанную ниже, если количество входных слов, представленных xik, равно одному, то скалярное произведение просто копирует/проецирует вектор слов на скрытый слой привет. Для нескольких слов мы либо усредняем векторы слов, чтобы получить другой N-мерный вектор, спроецированный как скрытый слой.

Если мы возьмем центральное слово как «трансформеры», тогда соответствующими внешними словами будут [«я», «любовь», «когда», «используется»] . Мы ищем соответствующие строки в матрице W и вычисляем выходные данные скрытого слоя, как показано ниже.

где, xi – это однократный вектор, соответствующий i-му слову в контексте, а vi — соответствующий вектор слова. c — количество слов в контексте,4 для данного примера.

Скалярное произведение вывода скрытого слоя со второй матрицей, заданной для центральных слов, W', приводит к V-размерному вектор, представляющий распределение вероятностей по всем словам в словаре для центрального слова с учетом контекстных слов. С помощью скалярного произведения мы максимизируем вероятность похожих слов и минимизируем ее для непохожих слов.

Это скалярное произведение дает оценку для каждого слова в словаре, определяемую как u(_j^T) h, где u_j равно j-я строка матрицы W'. Учитывая эти оценки, мы можем вычислить вероятности для всех слов в словаре, используя функцию softmax.

wc и wo означают слова в центре и вне соответственно, а |V| это длина словарного запаса.

Итак, как нам обучить эту модель?

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

2. Скип-грамм

Модель Skip-Gram противоположна CBOW, где она предсказывает вероятность контекстныхслов при заданном центральном слове. Это немного изменяет нашу целевую функцию, где вместо вычисления отрицательного логарифмического правдоподобия для одного центрального слова мы теперь выделим вероятности, вызвав Наивный Байесовское предположение об условной независимости. Таким образом, наша целевая функция может быть представлена, как показано ниже.

Перейти к части 3: Отрицательная выборка

Исследуйте репозиторий GitHub

Рекомендации

  1. Миколов, Томас, Кай Чен, Грег Коррадо и Джеффри Дин. «Эффективная оценка представлений слов в векторном пространстве». препринт arXiv arXiv:1301.3781 (2013 г.).
  2. Миколов, Томас, Илья Суцкевер, Кай Чен, Грег С. Коррадо и Джефф Дин. «Распределенные представления слов и фраз и их композиционность». Достижения в области нейронных систем обработки информации 26 (2013).
  3. Ронг, Синь. «Объяснение изучения параметра word2vec». препринт arXiv arXiv:1411.2738 (2014 г.).
  4. https://web.stanford.edu/class/cs224n/index.html