word2vec (part 1)
TRANSCRIPT
![Page 2: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/2.jpg)
2
“Word2vec is a group of related models that are used to produce so-called word embeddings. These models are shallow, two-layer neural networks, that are trained to reconstruct linguistic contexts of words: the network is shown a word, and must guess which words occurred in adjacent positions in an input text.”
Wikipedia
OK, Google, what is Word2Vec?
![Page 3: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/3.jpg)
3
“Word embedding is the collective name for a set of language modeling and feature learning techniques in natural language processing where words or phrases from the vocabulary are mapped to vectors of real numbers in a low-dimensional space relative to the vocabulary size.”
Wikipedia
OK, Google, what is Word Embedding?
![Page 4: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/4.jpg)
4
1. Самостоятельная техника сама по себе
2. Вектора используются как фичи в задачах:◦ Sentiment Analysis◦ Named Entities Recognition◦ Part-Of-Speech Tagging◦ Machine Translation◦ Paraphrase Detection◦ Documents Clustering◦ Documents Ranking◦ и т.д. и т.п.
Зачем это надо?Уже поздно, я хочу домой…
![Page 5: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/5.jpg)
5
1. Каждый документ D из корпуса документов Т представляется как последовательность слов:
D = {x1, … , xn}2. Все уникальные слова из документов корпуса T образуют словарь V3. Решают задачи: классификации / кластеризации / регрессии /
ранжирования / парсинга / тэгирования / извлечения знаний и т.д. и т.п.Задачи обучения с учителем: для каждого документа D также имеется разметка Y
Разметка на уровне документа:Wow! What a great surprise! #Morning #Flowers ⇒ 1@Bob, Today is the worst day of my life ⇒ -1
Разметка на уровне слов:And now for something completely different ⇒ {CC, RB, IN, NN, RB, JJ}Michael Jordan is a professor at Berkeley ⇒ {1, 1, 0, 0, 0, 0, 1}
Задачи обучения без учителя: для документов из D отсутствует разметка Y
Классика: статистический NLP
![Page 6: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/6.jpg)
6
4. По документам D / парам (D, Y) строятся модели, имеющие вероятностную природу.
5. Главная особенность: при таком моделировании каждое слово рассматривается как реализация дискретной случайной величины, (условная) вероятность выпадения которой оценивается по корпусу T.
Классика: статистический NLP
Словарь V:…хорошо ⇔ 113автомобиль ⇔ 114…прекрасно ⇔ 6327…
113 ≠ 6327
или
слова в словаре не связанны друг
с другом
![Page 7: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/7.jpg)
7
Пусть:1. Из обучающего корпуса документов известно:
P(“собака”, “человек” => “друг”) = 0.997
2. Для слов “ребёнок”, “лабрадор”, “товарищ” подобных знаний в корпусе нет
В таком случае система не сможет оценить:
P(“собака”, “ребёнок” => “друг”) = ?P(“лабрадор”, “человек” => “друг”) = ?
P(“собака”, “человек” => “товарищ”) = ?
Пример: QA система
![Page 8: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/8.jpg)
8
Идея:
Поставить словам в соответствие числовые вектора небольшой фиксированной размерности, для которых будет верно:
V(“человек”) ≈ V(“ребёнок”) V(“собака”) ≈ V(“лабрадор”)
V(“друг”) ≈ V(“товарищ”)
Тогда:
P(“собака”, “ребёнок” => “друг”) ≈ P(“собака”, “человек” => “друг”) ≈ 0.997
P(“лабрадор”, “человек” => “друг”) ≈ P(“собака”, “человек” => “друг”) ≈ 0.997
P(“собака”, “человек” => “товарищ”) ≈ P(“собака”, “человек” => “друг”) ≈ 0.997
Пример: QA система
WordEmbedding!
![Page 9: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/9.jpg)
9
“You shall know a word by the company it keeps”
John Rupert Firth, 1957
“Слова со схожими значениями разделяют
схожий контекст”
Неизвестный мудрец
Word Embedding
![Page 10: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/10.jpg)
10
1. По корпусу документов строится матрица коллокаций X, размера |V| * |V|:
I enjoy flying.I like NLP.I like deep learning.
2. Используется SVD разложение для X:X = USVT
3. Из столбцов матрицы U выбираются первые K компонентW = U1:|V|,1:K
Word Embedding вчера
Richard Socher, 2015
![Page 11: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/11.jpg)
11
1. В реальности для получения более или менее качественных векторов требуется ещё многое:
◦ игнорировать stop-слова (the, a, he, she и т.п.)◦ взвешивать слова, входящие в коллокации, согласно расстоянию
между ними в тексте◦ и т.п.
2. Матрица коллокаций очень разреженная и имеет очень большую размерность (порядка 106 * 106 элементов)
3. Добавление новых слов / новых документов приводит к необходимости пересчитывать всё заново
Word Embedding вчера
![Page 12: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/12.jpg)
12
Word Embedding сегодня:Don’t count, predict!
The quick brown fox jumps over the lazy dog
предсказываютсяконтекстные слова
предсказываютсяконтекстные слова
The quick brown fox jumps over the lazy dog
предсказываетсяцентральное слово
![Page 13: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/13.jpg)
13
![Page 14: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/14.jpg)
14
Формализуем задачу: по корпусу документов T необходимо построить вектора для всех слов из словаря V таким образом, чтобы максимизировать вероятность “появления на свет” самого корпуса T.
Другими словами:
Построение модели
Параметры модели (координаты
векторов слов)
Вероятность появлениякорпуса T при векторах θ
![Page 15: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/15.jpg)
15
1. Документы в корпусе Tнезависимы между собой
2. Каждое слово в документезависит только от своегоконтекста – небольшого
количества окружающих слов
3. Слова из контекстанезависимы между собой
4. Вероятность встретитьпару (w, c) моделируется
с помощью SoftMax функции
Здесь:1. Параметры модели2. W – матрица “входных” векторов3. W’ – матрица “выходных” векторов4. vw – “входной” вектор центрального слова w5. vc – “выходной” вектор контекстного слова c
Каждое словомоделируется 2-мя
векторами!
![Page 16: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/16.jpg)
16
The quick brown fox jumps over the lazy dog
используютсявыходные вектора vc
используетсявходной вектор vw
The quick brown fox jumps over the lazy dog
Входные и выходные вектора:
…
используютсявыходные вектора vc
используетсявходной вектор vw
используютсявыходные вектора vc
используютсявыходные вектора vc
![Page 17: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/17.jpg)
17
1. Cловарь V = {quick, brown, fox, jumps, over}2. vT
wvc - скалярное произведение векторов (вещественное число)
3. Пусть:vT
foxvbrown = 17.7
vTfoxvjumps = 15.2
vTfoxvquick = 11.3
vTfoxvover = 7.9
…
… quick brown fox jumps over …
= 1!
SoftMax моделирует распределение вероятности по словарю V:
![Page 18: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/18.jpg)
18
1. Вход сети: вектор x в формате one-hot-encoding, соответствующий входному слову w
2. Умножение матрицы “входных” векторов W на one-hot вектор x выбирает из W соответствующий вектор h
3. Вектор h умножается на матрицу “выходных” векторов W’4. К получившемуся вектору скалярных произведений применяется
нелинейность SoftMax – вектор p5. Выход сети: распределение вероятностей по словам из словаря V6. Цель: минимизация Cross-entropy функции потерь между
выходным вектором предсказаний p и one-hot вектором y, соответствующим контекстному слову c
7. Метод обучения: SDG и его вариации
А где нейронная сеть?
![Page 19: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/19.jpg)
19
1. Итерационный метод решения задач оптимизации2. Градиент – вектор, направленный в сторону
максимального возрастания функции в данной точке3. Начальная инициализация:
Матрицы векторов инициализируются малыми числами из окрестности нуля
4. На каждом шаге параметры изменяются в сторону антиградиента:
Градиентный спуск
Шаг градиентного спуска(должен уменьшаться с
ростом t)
![Page 20: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/20.jpg)
20
Градиентный спуск
http://sebastianruder.com/optimizing-gradient-descent/
![Page 21: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/21.jpg)
21
Задача найти вектора, при которых эта вероятность максимальна:
На каждом шаге градиентногоспуска необходимо вычислять
большую сумму ⇒ очень медленно
Что делать:1. Использовать hierarchical softmax.2. Использовать noise contrastive estimation / negative
sampling.
Вероятность возникновения корпуса T при матрицах входных и выходных векторов W и W’ соответственно:
![Page 22: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/22.jpg)
22
1. Для каждой пары (слово, контекст) SoftMax выдаёт мультиномиальное распределение по всем словам из V.
2. Наша цель – построение векторов слов, а не вероятностной лингвистической модели.
Основная идея: заменить задачу на более простую так, чтобы избавиться от SoftMax на выходном слое.
Negative sampling
![Page 23: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/23.jpg)
23
Документы:1. The quick brown fox jumps over the lazy dog2. The rain in Spain stays mainly in plain3. …Словарь:
brown, dog, fox, in, jumps, lazy, mainly, over, plain, quick, rain, … Пары слово – контекст (ширина окна = 2):4. (brown, [the, quick, fox, jumps]) ⇒ (brown, the), (brown, quick), (brown, fox),
(brown, jumps)5. (fox, [quick, brown, jumps, over]) ⇒ (fox, quick), (fox, brown), (fox, jumps), (fox,
over)6. (jumps, [brown, fox, over, the]) ⇒ (jumps, brown), (jumps, fox), (jumps, over),
(jumps, the)7. …Negative samples (k= 5):8. (brown, in), (brown, Spain), (brown, language), (brown, a), (brown, assign)9. (fox, apple), (fox, some), (fox, making), (fox, associations), (fox, easily)10. …
Negative sampling: пример
![Page 24: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/24.jpg)
24
Рассмотрим:
Более формально
Задача подобрать вектора так, чтобы отличать истинные (полученные из документов) пары (w,c) от ложных (сгенерированных из словаря V):
В конечном виде:
Исчезла линейная зависимостьот размера словаря
![Page 25: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/25.jpg)
25
Модель CBOW
Xin Rong, 2014
1. По окружающим словам предсказывает центральное слово
2. Хорошие результаты на небольших и средних датасетах
![Page 26: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/26.jpg)
26
Модель Skip-gram1. По центральному слову
предсказывает окружающие слова
2. Чаще всего используется в паре с негативным сэмплированием
3. Требует больший (по сравнению с CBOW) объём данных
4. Считается, что лучше оценивает редкие слова
Xin Rong, 2014
![Page 27: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/27.jpg)
27
1. https://radimrehurek.com/gensim/2. https://github.com/piskvorky/gensim/3. https://dumps.wikimedia.org/ruwiki/latest/
Готовые реализации LDA, Word2Vec, Doc2Vec, TF-IDF, …
![Page 28: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/28.jpg)
28
Примеры1. Сходство между словами – косинус угла между их векторами
2. “Cумма” и “разность”: v(“king”)- v(“man”) + v(“woman”) ≈ v(“queen”)
![Page 29: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/29.jpg)
29
Примеры3. Для устойчивых фраз (коллокаций) можно строить отдельные вектора
![Page 30: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/30.jpg)
30
Примеры
![Page 31: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/31.jpg)
31
Примеры
![Page 32: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/32.jpg)
32
Примеры4. Ассоциативные связи
![Page 33: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/33.jpg)
33
Примеры5. Грамматические связи
![Page 34: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/34.jpg)
34
Оценка качества векторов: Extrinsic Evaluation
Непосредственная проверка векторов при решении конкретной задачи
Требует построения алгоритма машинного обучения (чаще всего - другой нейронной сети) с векторами слов в качестве признаков
Требует настройки гиперпараметров модели: тип и структура решающей сети, метод её начальной инициализации, тип регуляризации, подбор параметров SGD и т.д.
Требует значительных вычислительных ресурсов и времени
![Page 35: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/35.jpg)
35
Оценка качества векторов: Intrinsic Evaluation
Для оценивания векторов с точки зрения семантики, морфологии, грамматики были придуманы так называемые “тесты аналогий”
Дают быстро вычислимую эвристическую оценку качества Дают понять насколько вектора хороши “в целом” Тесты для английского языка доступны в официальном
репозитории word2vec: http://word2vec.googlecode.com/svn/trunk/
Состоят из множества аналогий вида:Athens Greece -> Havana CubaCanada dollar -> Mexico pesouncle aunt -> father mother
amazing amazingly -> apparent apparentlybad worst -> bright brightest
United_Kingdom British_Airways -> Russia AeroflotBill_Gates Microsoft -> Sergey_Brin Google
и т.д.
![Page 36: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/36.jpg)
36
Оценка качества векторов: Intrinsic Evaluation
Категории тестовДля векторов-слов Для векторов-фраз
• capital-common-countries• capital-world• currency• city-in-state• family• gram1-adjective-to-adverb• gram2-opposite• gram3-comparative• gram4-superlative• gram5-present-participle• gram6-nationality-adjective• gram7-past-tense• gram8-plural• gram9-plural-verbs
• newspapers• ice_hockey• basketball• airlines• people-companies
![Page 37: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/37.jpg)
37
Оценка качества векторов: Intrinsic Evaluation
Tomas Mikolov, 2013
![Page 38: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/38.jpg)
38
Оценка качества векторов: Intrinsic Evaluation
1. Модель построения векторов имеет огромное значение
2. Skip-gram сочетает простоту и качество
3. Кроме модели на качество влияют:• Объём обучающего корпуса• Размер векторов• Другие гиперпараметры
Richard Socher, 2015
![Page 39: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/39.jpg)
39
1. Обучающий корпус2. Размер векторов3. Ширина контекстного окна4. Распределение негативного сэмплирования5. Количество негативных сэмплов на каждую пару
слово+контекст
А также:6. Начальная инициализация векторов7. Конкретный метод градиентного спуска8. Шаг градиентного спуска
Гиперпараметры и их влияние
![Page 40: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/40.jpg)
40
Идеально: большой размер + разнообразие документов Как правило, больше – лучше:
Но не всегда (Андрей Кутузов, Mail.ru Group ):https://www.youtube.com/watch?v=9JJsMWKcU7s
Обучающий корпус
Richard Socher, 2015
![Page 41: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/41.jpg)
41
Размер векторов и ширина контекстного окна
Кутузов А., Андреев. И., 2015
1. Размер вектора ≈ 100-500• Малый размер – быстрое
обучение, риск недообучиться
• Большой размер – медленное обучение, риск переобучиться
• Хороший выбор: 300
2. Размер окна ≈ 2–10• Узкое окно – больше
прямых взаимосвязей между словами
• Широкое окно – больше косвенных взаимосвязей между словами
• Разумный компромисс: ширина окна – случайная величина в некоторых пределах (Например U[1, C])
![Page 42: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/42.jpg)
42
1. Распределение сэмплирования:◦ P(w) ~ U[0, |V|] – равномерное по словарю◦ P(w) ~ freq(w) / Z – согласно частотам встречаемости слов в корпусе◦ P(w) ~ freq(w)^0.75 / Z
Из сэмплирования исключаются редкие слова + даунсэмплинг частых слов
Z – константа нормировки
2. Количество негативных сэмплов ≈ 5–25
Параметры сэмплирования
Индекс слова в словаре Вероятность сэмплирования
0 0.9 ^ 0.75 = 0.921 0.09 ^ 0.75 = 0.162 0.01 ^ 0.75 = 0.032
![Page 43: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/43.jpg)
43
Свойства векторов1. Какова общая структура пространства?2. Как распределена “схожесть” в
пространстве?3. Схожи ли “входные” и “выходные”
вектора для одних и тех же слов?4. Можно ли избавиться от одних из них?5. Если нет, то какие из векторов лучше?
![Page 44: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/44.jpg)
44
Наземный
Родственники
Дни недели
Страны мира
Животные
Месяцы года
Глаголы
Воздушный
Транспорт
![Page 45: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/45.jpg)
45
Распределение схожести“the good” ≉ (-1) * “the bad”
Beta-распределение(форма может варьироваться)
Общая закономерность
The Good
The Bad
![Page 46: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/46.jpg)
46
Распределение схожести“the good” ≉ “the good”
Может сильно варьироватьсяПараметрическое семейство - ?
The Good
The Good in
out
in out
![Page 47: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/47.jpg)
47
1. Нельзя “расшарить” матрицу между слоями2. Оригинальный Word2Vec, Gensim – оставить только
входные вектора3. Выбрать какие-то одни по Intrinsic Evaluation / Extrinsic
Evaluation 4. Агрегировать:
“the good” = “the good”in + “the good”out
“the good” = (“the good”in, “the good”out)“the good” = F(“the good”in, “the good”out)
Входные vs выходные
![Page 48: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/48.jpg)
48
Функциональные слова,слова с единственым
значением
Встречающиеся часто иимеющие одно-два
значения
Остальные слова(в том числе многозначные)
Редкие слова
На, по, не, для,ссср, сша, май,
сентябрь, …
Генерал, профессор,игра, строительство,
изображение,…
Нетипичная, продуманных,однокамерные, поднявших,словоформа, диэлектрике,…
Самодержице,спиннинговое,длинноиглый,
крижевицкой,…
Длина векторов
![Page 49: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/49.jpg)
49
Проблема редких слов: Zipf’s law
1. Частота слова в языке пропорциональна его рангу:
2. Обновление параметров стохастическим градиентным спуском:
Шаг градиентного спуска(должен уменьшаться с
ростом t)
![Page 50: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/50.jpg)
50
1. Датасет: побольше и поразнообразнее2. Ширина окна: случайная величина из U[1, 5/8/10]3. Размерность вектора: 3004. Негативное сэмплирование: не равномерное, хорошо работает
p(w) ~ freq(w) ^ 0.75 / Z5. Количество негативных сэмплов: 5/10/206. Редкие слова заменить на специальное слово (“<RARE>” /
“<UNK>”)7. Может помочь удаление stop-слов (если вектора не обучаются для
POS-тэггинга и схожих задач)8. Использовать вариации SGD с адаптивным изменением learning rate
(AdaGrad)9. Начальный шаг можно выбрать достаточно большим: 0.025 / 0.0510. Делать несколько (2-3) проходов (эпох) по корпусу документов11. Тестировать как входные, так и выходные вектора12. Нормировать вектора
Резюме: на практике
![Page 51: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/51.jpg)
51
https://github.com/denmoroz/tensorflow-word2vec
Особенности:1. Реализация на Python + Tensor Flow2. Ряд хаков для ускорения работы (скорость сравнима с Gensim)3. Замена редких слов словаря на “<RARE>”4. Адаптивный SGD: AdaGradOptimizer5. Сбор и визуализация статистик о ходе обучения модели в Tensor
Board6. Иная модель сэмплирования: иерархическая, сочетающая
сэмплер по Mikolov’у и равномерный сэмплер7. Сохранение как входных, так и выходных векторов в текстовом
формате, совместимом с Gensim8. Несовершенная, как и все творения человека (код нуждается в
рефакторинге )
Хочу разобраться подробнее!
![Page 52: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/52.jpg)
52
1. Понятие об обработке естественных языков2. Вероятностные основы Word2Vec3. Свойства пространства векторов4. …5. Проблема многозначных слов6. Моделирование векторов фраз / предложений /
документов7. Краткое введение в рекуррентные нейронные сети
(RNN)8. Обзор абстрактного deep learning фрэймворка Keras9. Применение связки RNN + Word2Vec для решения
задачи сентиментального анализа сообщений из Twitter10. Возможно, что-нибудь ещё
В следующем выпуске
![Page 53: word2vec (part 1)](https://reader036.vdocuments.pub/reader036/viewer/2022062822/587ce6ec1a28ab564b8b46dd/html5/thumbnails/53.jpg)
53
1. Gensim: Topic Modelling For Humanshttp://radimrehurek.com/gensim/
2. TensorFlow: Deep learning libraryhttp://tensorflow.org/
3. Keras: Deep learning libraryhttp://keras.io/
4. Coursera: Natural language processinghttp://www.coursera.org/course/nlangp
5. Stanford CS224d: Deep learning for NLPhttp://cs224d.stanford.edu/
6. Awesome NLPhttps://github.com/keonkim/awesome-nlp/
Полезные ресурсы и инструменты