Uploaded by Регина Гилязова

Word embeddings

advertisement
Векторное представление слов
Гилязова Регина
Высшая школа ИТИС, 11-822
15.10.2019
Word embeddings
Word embedding is the collective name for a set of language
modeling and feature learning techniques in natural language
processing (NLP) where words or phrases from the vocabulary are
mapped to vectors of real numbers. Conceptually it involves a
mathematical embedding from a space with many dimensions per
word to a continuous vector space with a much lower dimension.
Wikipedia
Идея №1
Пример
I like NLP.
Слово
I
like
NLP
Индекс
0
1
2
Таблица 1: Пример кодирования слов индексами
Недостатки
I При добавлении нового слова в словарь, список
необходимо перенумеровывать заново
I Не передает значение слова
Говоря о значении слов...
Пример №1
КОШКА, сущ., ж. - Хищное млекопитающее сем. кошачьих.
Пример №2
МЫШЬ, сущ., ж.
1.Небольшой грызун, обычно серого цвета, с острой мордочкой
и длинным хвостом
2.координатное устройство для управления курсором и отдачи
различных команд компьютеру
МНЕ НУЖНО БОЛЬШЕ ПРИМЕРОВ!!!
Отношения между значениями слов
Дано:
f1 = Собака - лучший друг человека
f2 = Пес - преданный товарищ ребенка
f3 = Кошка - худший враг людей
Необходимо определить:
Как f1, f2 и f3 относятся друг к другу?
Ответ:
"Собака" и "Пес" являются синонимами
"Лучший" и "Худший" являются антонимами
"Кошка" и "Собака" являются схожими словами
"Человек" является гипернимом "Ребенка" а "Ребенок" гипонимом "Человека"
"Лучший" имеет положительную коннотацию, а "Худший" отрицательную
Связность слов
Рис. 1: Пример поискового запроса в Google
One-hot representation
Объем словаря |V| = 12
Собака:
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
0
0
0
0
Пес:
Но:
Собака * Пес = 0
Мешок слов
Пример
I enjoy flying.
I like NLP.
I like deep learning.
Мешок слов для примера
I
3
enjoy
1
flying
1
like
2
NLP
1
deep
1
learning
1
Матрица "термин-документ"
Пусть:
I enjoy flying. = d1
I like NLP. = d2
I like deep learning. = d3
Тогда получаем матрицу "термин-документ":
terms
I
enjoy
flying
like
NLP
deep
learning
d1
1
1
1
0
0
0
0
d2
1
0
0
1
1
0
0
d3
1
0
0
1
0
1
1
Матрица "термин-документ" - TF-IDF
TF (Term Frequency) - насколько часто слово t встречается в
документе d:
nt
tf (t, d) = P
k nk
где
Pnt - число вхождений слова t в документ d,
а k nk - общее число слов в данном документе.
terms
I
enjoy
flying
like
NLP
deep
learning
d1
1/3
1/3
1/3
0
0
0
0
d2
1/3
0
0
1/3
1/3
0
0
d3
1/3
0
0
1/3
0
1/4
1/4
Матрица "термин-документ" - TF-IDF
IDF (Inverse Document Frequency) - обратная частотность
документов. Логарифм от общего количества документов - D,
делённого на количество документов, в которых встречается
термин t.
| D|
idf (t, D) = log (
| {di ∈ D|t ∈ di }|
terms
I
enjoy
flying
like
NLP
deep
learning
idf
1
3
3
3/2
3
3
3
Матрица "термин-документ" - TF-IDF
Мера TF-IDF является произведением двух сомножителей
tf − idf (t, d, D) = tf (t, d) × idf (t, D)
terms
I
enjoy
flying
like
NLP
deep
learning
d1
1/3
1
1
0
0
0
0
d2
1/3
0
0
1/2
1
0
0
d3
1/3
0
0
1/2
0
3/4
3/4
John Rupert Firth, 1957
“You shall know a word by the company it keeps”
Матрица совстречаемости слов
Предположим, у нас есть следующий корпус документов:
sugar, a sliced lemon, a tablespoonful of apricot jam, a pinch each
of,
their enjoyment. Cautiously she sampled her first pineapple and
another fruit whose taste she likened
well suited to programming on the digital computer. In finding the
optimal R-stage policy from
for the purpose of gathering data and information necessary for
the study authorized in the
Установим окно контекста = ±4
Матрица совстречаемости слов
terms
apricot
pineapple
digital
information
aardvark
0
0
0
0
. . . computer
...
0
...
0
...
2
...
1
Объем матрицы = V × V
data
0
0
1
6
pinch
1
1
0
0
sugar
1
1
0
0
...
...
...
...
...
Мера схожести двух слов - косинусное сходство
Скалярное произведение:
v̄ · w̄ =
N
X
vi wi = v1 w1 + v2 w2 + · · · + vN wN
i=1
Длина вектора:
v
u N
uX
|v̄ | = t
v2
i
i=1
v̄ · w̄ = |v̄ ||w̄ | cos θ
PN
vi wi
v̄ · w̄
q
sim(v̄ , w̄ ) = cosine(v̄ , w̄ ) =
= P i=1qP
|v̄ ||w̄ |
N
N
2
2
i=1 vi
i=1 wi
Матрица совстречаемости слов
Недостатки
I Огромная размерность - объем словаря корпуса
документов может достигать значений 106−8
I Вектора разреженные - большинство значений в векторе
равны 0
Решение
Нормировать вектора и понижать их размерность (например,
PCA) ⇒ плохие результаты по качеству
Зачем считать? Давайте предсказывать!
в 2013 году Т. Миколов предложил свой подход к
представлению word embeddings - Word2Vec
Word2Vec
Word2vec is a group of related models that are used to produce
word embeddings.
Wikipedia
Задача
По большому корпусу документов необходимо подобрать такие
параметры модели, чтобы вероятность появления
осмысленного корпуса документов была максимальной.
θ∗ = argmax P(T , θ)
θ
где θ∗ - параметры модели (координаты векторов слов)
P(T , θ) - вероятность появления корпуса T при векторах θ
Word2Vec
Максимизация появления корпуса T при векторах θ
P(θ|T ) =
Y
P(θ, D) =
p(θ|w , c(w )) =
D∈T w ∈D
D∈T
=
Y Y
Y Y
Y
p(θ|w , c) =
D∈T w ∈D c∈C (w )
=
Y Y
Y
P
D∈T w ∈D c∈C (w )
exp(vwT vc )
→ max(vw , vc )
T
c 0 ∈V exp(vw vc 0 )
где θ = {W , W 0 } - параметры модели, W - матрица "входных"
векторов, W’ - матрица выходных векторов, vw - "входной"
вектор центральног0о слова w, vc - "выходной" вектор
контекстного слова с
Word2Vec
Максимизация появления корпуса T при векторах θ.
Предположения:
1. Документы
в корпусе Т независимы между собой
Q
P(θ, D)
D∈T
2. Каждое слово
Q в документе зависит только от своего
p(θ|w , c(w ))
контекста
w ∈D
3. Слова
Q из контекста независимы между собой
p(θ|w , c)
c∈C (w )
4. Вероятность встретить пару (w,c) моделируется с
T
w vc )
помощью softmax функции P 0 exp(v
exp(v T v 0 )
c ∈V
w
c
Word2Vec
Word2Vec
Softmax
обобщение логистической функции для многомерного случая.
Функция преобразует вектор z̄ размерности K в вектор σ̄ той
же размерности, где каждая координата σi полученного
вектора представлена вещественным числом в интервале [0,1] и
сумма координат равна 1.
Wikipedia
Координаты σi вычисляются следующим образом:
e zi
σ(z)i = PK
k=1 e
zk
Word2Vec. Softmax
Softmax моделирует распределение вероятности по
словарю V
Словарь V = {quick, brown, fox, jumps, over}
vwT vc - скалярное произведение векторов
Пусть:
T
vfox
vbrown = 17, 7
T
vfox
vjumps = 15, 2
T
vfox
vquick = 11, 3
T
vfox
vover = 7.9
Word2Vec. Softmax
Softmax моделирует распределение вероятности по
словарю V
Словарь V = {quick, brown, fox, jumps, over}
vwT vc - скалярное произведение векторов
Пусть:
T
vfox
vbrown = 17, 7 ≈ 0.9227
T
vfox
vjumps = 15, 2 ≈ 0.0757
T
vfox
vquick = 11, 3 ≈ 0.0015
T
vfox
vover = 7.9 ≈ 0.0001
Word2Vec. Нейронная сеть
1. Вход сети: вектор x̄ - one-hot вектор, соответствующий
слову w
2. Умножение матрицы "входных"параметров W на one-hot
вектор x̄ выбирает из W соответствующий вектор h̄
3. Вектор h̄ умножается на матрицу "выходных"векторов W’
4. К получившемуся вектору скалярных произведений
применяется нелинейность softmax - вектор p̄
5. Выход сети: распределение вероятности по словам из
словаря V
6. Цель: минимизация cross-entropy функции потерь между
выходным вектором предсказаний p и one-hot вектором y,
соответствующим контектсному слову c
7. Метод обучения: стохастический градиентный спуск (SDC)
и его вариации
Word2Vec. Нейронная сеть
Word2Vec. Немного о SDC
I Итерационный метод решения задач оптимизации
I Градиент - вектор, направленный в сторону максимального
возрастания функции в данной точке
I Начальная инициализация: Матрицы векторов
инициализируются малыми числами в окресностях 0
I На каждом шаге параметры изменяются в сторону
антиградиента
θp+1 = θp − αt 5 L(x, θ)
Word2Vec
Еще раз...
У нас есть вероятность возникновения корпуса T при входных и
выходных векторах W и W’:
Y Y
Y
exp(vwT vc )
→ max(vw , vc )
T
c 0 ∈V exp(vw vc 0 )
P
D∈T w ∈D c∈C (w )
Задача
Найти вектора, при которых эта вероятность максимальна:
{W , W 0 } = argmax
X X X
(vwT vc − log(
(vw ,vc ) D∈T w ∈D c∈C (w )
X
c 0 ∈V
exp(vwT vc 0 ))
Word2Vec. Негативное сэмплирование
Пример
Словарь V = {..., brown, dog, fox, in, jumps,
lazy, mainly, over, plain, quick, rain}
Правильные контексты:
w
fox
fox
fox
fox
c
brown
jumps
quick
over
Word2Vec. Негативное сэмплирование
Пример
Словарь V = {..., brown, dog, fox, in, jumps,
lazy, mainly, over, plain, quick, rain, ...}
"Шум":
w
fox
fox
fox
fox
fox
c
apple
some
making
easily
associations
Word2Vec. Негативное сэмплирование
1
= σ(vwt vc )
1 + e −vwt vc
1
P((w , c) ∈
/ T |θ) = 1 −
= σ(−vwt vc )
1 + e −vwt vc
P((w , c) ∈ T |θ) =
Задача
Подобрать вектора так, чтобы отличать истинные пары (w, c)
от ложных
θ∗ = argmax
θ
Y
(w ,c)∈T
P((w , c) ∈ T |θ)
Y
(w ,c 0 )∈T 0
P((w , c 0 ) ∈
/ T |θ)
Word2Vec. Негативное сэмплирование
Получаем
(W , W 0 ) = argmax
X X X
(log(σ(vwt vc ))+
(vw ,vc ) D∈T w ∈D c∈C (w )
+
X
c 0 ∼Pk (V )
log(σ(vwt vc0 )))
Word2Vec. CBOW or Skip-gram
CBOW
Skip-gram
по контексту предсказывает
целевое слово
по целевому слову
предсказывает контекст
Эмм... Как всё это закодить?
Gensim
Что умеет Gensim
I Определяет сходства между словами с помощью
косинусной меры
I Определяет ассоциативные связи между словами
I Определяет грамматические связи между словами
I ...
Оптимальные гиперпараметры модели
Размер обучающего корпуса
I Чем больше, тем лучше
I Документы в корпусе должны быть разнообразными
Размер векторов ≈ 100 − 500
I Маленький размер - быстрое обучение, риск недообучиться
I Большой размер - медленное обучение, риск переобучиться
Размер окна ≈ 2 − 10
I Узкое окно - больше прямых взаимосвязей между
векторами
I Широкое окно - больше косвенных взаимосвязей между
словами
Оптимальные гиперпараметры модели
Параметры сэмплирования
I равномерное по словарю
P(w ) ∼ U[0, |V |]
I согласно частотам встречаемости слов в корпусе
P(w ) ∼ freq(w )/Z
I из сэмплирования исключаются редние слова и
понижается встречаемость частых слов
P(w ) ∼ freq(w )0.75 /Z
где Z - константа нормировки
Количество негативных сэмплов ≈ 5 − 25
Визуализация векторов слов - tSNE
Другие модели построения word embeddings
GloVe - Стэнфордский университет
GloVe = SVD + Word2Vec
Метод, основанный на соотношениях вероятностей совпадения
слов. Одних вероятностей недостаточно для надёжного
предсказания значений, требуется ещё матрица совместного
вхождения, откуда можно напрямую извлекать определённые
аспекты значений.
FastText - Facebook
Метод вычисления эмбеддингов слов путем суммирования
вложений пакета n-граммов символов, составляющих слово.
Это простое улучшение позволяет разделить N-граммовые
представления между словами и вычислить векторные
представления слов, которых не было в корпусе обучения.
Применение эмбеддингов в задачах NLP
I QA системы
I Анализ тональности текстов
I Информационный поиск
I Машинный перевод
I Реферирование и аннотирование текстов
I Кластеризация документов
I Перефразирование текстов
I др.
Summary...
I Для определения семантических особенностей текстов
слова представляются как векторы - точки многомерном
семантическом пространстве
I Векторные модели делятся на 2 типа: разреженные и
плотные
I Сходство слов и документов вычисляется путем
вычисления скалярного произведения между векторами.
Косинус двух векторов - нормализованное скалярное
произведение - самая популярная метрика сходства
I Семейство моделей word2vec является популярным
эффективным способом вычисления плотных эмбеддингов
Summary. Продолжение
I Word2Vec вычисляет эмбеддинги, максимизируя
вероятность появления осмысленного корпуса документов
I Word2Vec использует стохастический градиентный спуск
для обучения модели, изучая вектора, которые имеют
высокое скалярное произведение для истенных пар
(целевое слово, контекст) и низкое - для замусоренных
данных.
I Для увеличения производительности работы модели
используется принцип негативного сэмплирования
I Векторные представления слов активно используются в
качестве признаков в различных задачах NLP
Список литературы
1. D. Jurafsky, J. H. Martin. Speech and Language Processing:
An Introduction to Natural Language Processing, Speech
Recognition, and Computational Linguistics. 2nd edition.
Prentice-Hall. 2009.
https://web.stanford.edu/ jurafsky/slp3/ed3book.pdf
2. Д. Дусь. Word2Vec и все, все, все. 2016.
https://www.slideshare.net/DenisDus1/word2vec-part-161489929
3. Чудесный мир Word Embeddings: какие они бывают и зачем
нужны? https://habr.com/ru/company/ods/blog/329410/
4. GloVe: Global Vectors for Word Representation
https://nlp.stanford.edu/projects/glove/
5. А.Потапенко Векторные представления слов и документов
[видео-ресурс] https://www.youtube.com/watch?v=KEXWCICHY list = WLindex = 4t = 2071s
Download