Word2vec працює у двох моделях CBOW та пропуск-грам. Візьмемо модель CBOW, оскільки ваше запитання йде так само, як і передбачити цільове слово, враховуючи навколишні слова.
Принципово, модель розробляє вхідні та вихідні матриці ваги, які залежать від вхідних контекстних слів та вихідного цільового слова за допомогою прихованого шару. Таким чином, зворотне поширення використовується для оновлення ваг, коли різниця помилок між прогнозованим вектором виходу та поточною матрицею виходу.
В основному, прогнозування цільового слова з заданих контекстних слів використовується як рівняння для отримання оптимальної матриці ваги для даних даних.
Відповісти на другу частину здається трохи складніше, ніж просто лінійна сума.
- Отримайте всі слова векторів контекстних слів
- Середнє значення для їх виявлення прихованого шару
h
розміру шаруNx1
- Отримайте вихідну матрицю
syn1
( word2vec.c
або gensim
) розміруVxN
- Множення з
syn1
допомогою h
, результуючий вектор буде z
з розміромVx1
- Обчисліть вектор ймовірності
y = softmax(z)
з розміром Vx1
, де найбільша ймовірність позначає однозначне подання цільового слова в лексиці.
V
позначає розмір словникового запасу і N
позначає розмір вбудованого вектора.
Джерело: http://cs224d.stanford.edu/lecture_notes/LectureNotes1.pdf
Оновлення: Моделі довготривалої пам'яті в даний час роблять велику роботу в передбаченні наступних слів. Моделі seq2seq пояснюються в навчальному посібнику з tensorflow . Також є публікація в блозі про генерування тексту.