更新向量,以便您可以很好地预测
每个位置的预测相同
我们希望有一个模型,可以对上下文中出现的所有单词(相当经常)给出合理的高概率估计
注意:我们的目标可能不会像这样凸出
while True:
theta_grad = evaluate_gradient(J,corpus,theta)
theta = theta - alpha * theta_grad
while True:
window = sample_window(corpus)
theta_grad = evaluate_gradient(J,window,theta)
theta = theta - alpha * theta_grad
为什么选择两个向量?更容易优化。 最后对两者进行平均•每个单词只用一个向量就能做到
两种模型:
1.Skip-grams(SG)
预测给定中心的上下文(“外部”)单词(与位置无关)
字
2.连续词袋(CBOW)
从上下文词袋中预测中心词
我们介绍了:跳过图模型
训练效率更高:
1.负采样
到目前为止:专注于朴素的softmax(简单但昂贵的训练方法)
与同现矩阵X
counts | I | like | enjoy | deep | learning | NLP | flying | . |
---|---|---|---|---|---|---|---|---|
I | 0 | 2 | 1 | 0 | 0 | 0 | 0 | 0 |
like | 2 | 0 | 0 | 1 | 0 | 1 | 0 | 0 |
enjoy | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
deep | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
learning | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
NLP | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 1 |
flying | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
. | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
共生矩阵X的奇异值分解将X分解为UΣVT,其中U和V是正交的
为了概括,仅保留k个奇异值。
X^是用最小二乘法表示的X的最佳秩k近似值。经典的线性代数结果。计算大型矩阵的成本很高。
语料库:
I like deep learning. I like NLP. I enjoy flying.
import numpy as np
la = np.linalg
words = ["I","like","enjoy","deep","learnig","NLP","flying","."]
X = np.array([[0,2,1,0,0,0,0,0],
[2,0,0,1,0,1,0,0],
[1,0,0,0,0,0,1,0],
[0,1,0,0,1,0,0,0],
[0,0,0,1,0,0,0,1],
[0,1,0,0,0,0,0,1],
[0,0,1,0,0,0,0,1],
[0,0,0,0,1,1,1,0]])
U,s,Vh = la.svd(X, full_matrices = False)
打印对应于2个最大奇异值的U的前两列
import matplotlib.pyplot as plt
plt.ylim(-0.8, 1)
plt.xlim(-0.8, 1)
for i in range(len(words)):
plt.text(U[i,0],U[i,1],words[i])
来自的COALS模型
一种基于词法共现的语义相似度改进模型。 2005年
来自的COALS模型
基于词法共现的语义相似度改进模型
罗德(Rohde)等人。 2005年
重要启示:
同现概率的比率可以编码含义成分
x = solid | x = gas | x = water | x = random | |
---|---|---|---|---|
P(x!ice | large | small | large | small |
P(x!steam) | small | large | large | small |
P(x!ice)/P(x!steam) | large | small | ~1 | ~1 |
x = solid | x = gas | x = water | x = fashion | |
---|---|---|---|---|
P(x!ice | 1.9 x 10 -4 | 6.6 x 10-5 | 3.0 x 10 -3 | 1.7 x 10 -5 |
P(x!steam) | 2.2 x 10-5 | 7.8 x 10-4 | 2.2 x 10-3 | 1.8 x 10-5 |
P(x!ice)/P(x!steam) | 8.9 | 8.5 x 10-2 | 1.36 | 0.96 |
问:我们如何捕获单词向量空间中共现概率的比率作为线性含义成分?
答:对数双线性模型:
具有向量差异
: city-in-state
Chicago Illinois Houston Texas
Chicago Illinois Philadelphia Pennsylvania Chicago Illinois Phoenix Arizona
Chicago Illinois Dallas Texas
Chicago Illinois Jacksonville Florida Chicago Illinois Indianapolis Indiana Chicago Illinois Austin Texas
Chicago Illinois Detroit Michigan
Chicago Illinois Memphis Tennessee Chicago Illinois Boston Massachusetts
问题:不同城市的名称可能相同
[Zi Yin and Yuanyuan Shen, NeurIPS 2018]
使用矩阵摄动理论,揭示了词嵌入维数选择中的基本偏差-方差折衷
最接近的词“瑞典”(余弦相似度)
词义和词义歧义
大多数单词都有很多含义!
特别常见的词
特别是已存在很久的单词
示例:pike
一个矢量捕获所有这些含义还是我们一团糟?
pike
尖锐的人员
一种拉长的鱼
铁路线或系统
道路类型
未来(降低收益)
一种身体姿势(例如在潜水中)
用长矛杀死或刺穿
走自己的路(一起走)
用澳大利亚英语来说,派克是指退出某件事:我认为他本可以爬上那座悬崖,但他却戳了一下!
Reference: https://www.jianshu.com/p/64817a61a958