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 . Також є публікація в блозі про генерування тексту.