meaning 语意
- 一个词语、词汇所代表的的含义
- 一个人使用语言、标志符号想要表达的含义
- 一件艺术品、一篇文章想要传达的含义
如何用计算机获得可用的语意
- WordNet
- 包括单词的一系列同义词、超词(定义性词汇)的词典
- 缺点:无法体现同义词之间的细微差异、部分词语的解释已经过时、主观性强、劳力维护成本大、不能准确地计算词语间的相似性
- One-hot vector
- 把单词看作离散的符号,以整个词典中单词数量为维度,仅在当前单词对应的维度上赋值1,其余为0
- 缺点:任意两个单词间是正交的(即无法体现两个单词间的相似性)
word vector
核心思想
- 一个单词的含义是由与它最近邻的单词决定的(属于传统统计学的思想),又叫word embeddings, word representations
算法流程
- 初始化一个包含大量词汇的集合,每个单词是一个p维稠密向量
- 对于文本,对于中心词汇c遍历它近邻的每一个位置t,记t位置的单词为o
- 计算单词c和o的相似度,计算给定o出现c的概率
- 不断迭代上述过程,即持续极大化中心词汇c的后验概率,直至满足退出循环条件
- 对每个位置t=1,…,T, 预测在窗口大小为m的情况下给定中心词汇
W
j
W_{j}
Wj, 预测其周围单词的概率,数据的似然函数
Likelihood: L ( θ ) = ∏ t = 1 T ∏ − m < = j < = m , j ≠ 0 P ( W t + j ∣ W t ; θ ) L(\theta)=\prod_{t=1}^{T}\prod_{-m<=j<=m, j\neq0}P(W_{t+j}|W_{t}; \theta) L(θ)=∏t=1T∏−m<=j<=m,j=0P(Wt+j∣Wt;θ)
目标函数为平均负似然函数,即
J ( θ ) = − 1 T l o g L ( θ ) = − 1 T ∑ t = 1 T ∑ − m ≤ j ≥ m , j ≠ 0 l o g P ( W t + j ∣ W t ; θ ) J(\theta)=-\frac{1}{T}logL(\theta)\\ =-\frac{1}{T}\sum_{t=1}^{T}\sum_{-m\leq j\geq m, j\neq0}logP(W_{t+j}|W_{t}; \theta) J(θ)=−T1logL(θ)=−T1∑t=1T∑−m≤j≥m,j=0logP(Wt+j∣Wt;θ) - 极小化目标函数即最大化似然,极大化通过周围词预测得到中间词汇的概率
如何求解?
特别地,如何求解 P ( W t + j ∣ W t ; θ ) P(W_{t+j}|W_{t}; \theta) P(Wt+j∣Wt;θ)?
- 答:对每一个单词W,我们获得关于它的在两个不同场景下的表示形式:
v
w
v_w
vw(当W为中间词汇时)以及
u
w
u_w
uw(当W为背景词汇时),于是,在给定中间词汇c的条件下,想要预测某一个背景词汇o出现的概率,可以将条件概率
P
(
o
∣
c
)
P(o|c)
P(o∣c)写成:
P ( o ∣ c ) = e x p ( u o T v c ) ∑ w ∈ V e x p ( u w T v c ) P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)} P(o∣c)=∑w∈Vexp(uwTvc)exp(uoTvc)
其中u和v的点积反映的是中间词汇o和背景词汇c的相似度,点积所得的值越大,二者相似性越大,相邻出现的可能性就越高。该式是将二者点积作为输入,放进softmax所得的结果:
s o f t m a x ( x i ) = e x p ( x i ) ∑ i = 1 n e x p ( x i ) = p i softmax(x_i)=\frac{exp(x_i)}{\sum_{i=1}^{n}exp(x_i)}=p_i softmax(xi)=∑i=1nexp(xi)exp(xi)=pi
所谓‘softmax’有两层含义:
a) ‘max’: x中的最大值经过exp运算后仍然为最大值,即最大化了最大x的概率
b) ‘soft’: 其他较小的x也经由exp运算获得了一部分概率。
训练模型:优化参数极小化目标函数
- 定义带优化参数和数据:设 θ \theta θ为模型参数,它是一个2V*d维度的长向量(其中V为单词的个数,d为每个单词的维度,由于每个单词都有两种表现形式,故为2V)。
- 推导损失函数
J
(
θ
)
J(\theta)
J(θ)对
v
c
v_c
vc,
u
o
u_o
uo求导:
∂ J ∂ v t = ∂ ( − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m l o g e x p ( u t + j T v t ) ∑ w = 1 T e x p ( u w T v t ) ) ∂ v t \frac{\partial J}{\partial v_t}=\frac{\partial ({-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}log\frac{exp(u_{t+j}^Tv_t)}{\sum_{w=1}^{T}exp(u_w^Tv_t)}})}{\partial v_t} ∂vt∂J=∂vt∂(−T1∑t=1V∑−m≤j≤mlog∑w=1Texp(uwTvt)exp(ut+jTvt))
= − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m ( ∂ l o g ( e x p ( u t + j T v t ) ∂ v t − ∂ l o g ∑ w = 1 T e x p ( u w T v t ) ∂ θ ) =-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}(\frac{\partial log({exp(u_{t+j}^Tv_t)}}{\partial v_t}-\frac{\partial log{\sum_{w=1}^{T}exp(u_w^Tv_t)}}{\partial \theta}) =−T1∑t=1V∑−m≤j≤m(∂vt∂log(exp(ut+jTvt)−∂θ∂log∑w=1Texp(uwTvt))
= − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m ( u t + j − 1 ∑ w = 1 V e x p ( u w T v t ) ∑ w = 1 v ∂ e x p ( u w T v t ) ∂ v t ) =-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}(u_{t+j}-\frac{1}{\sum_{w=1}^{V}exp(u_w^Tv_t)} \frac{\sum_{w=1}^{v}\partial exp(u_w^Tv_t)}{\partial v_t}) =−T1∑t=1V∑−m≤j≤m(ut+j−∑w=1Vexp(uwTvt)1∂vt∑w=1v∂exp(uwTvt))
= − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m ( u t + j − ∑ w = 1 V e x p ( u w T v t ) ∑ w = 1 V e x p ( u w T v t ) u w ) =-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}(u_{t+j}-\sum_{w=1}^{V}\frac{exp(u_w^Tv_t)}{\sum_{w=1}^{V}exp(u_w^Tv_t)}u_w) =−T1∑t=1V∑−m≤j≤m(ut+j−∑w=1V∑w=1Vexp(uwTvt)exp(uwTvt)uw)
= − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m ( u t + j − ∑ w = 1 V P ( u w ∣ v t ) u w ) =-\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}(u_{t+j}-\sum_{w=1}^{V}P(u_w|v_t)u_w) =−T1∑t=1V∑−m≤j≤m(ut+j−∑w=1VP(uw∣vt)uw)
观察结果发现, ∑ t = 1 V ∑ − m ≤ j ≤ m u t + j \sum_{t=1}^{V}\sum_{-m\leq j\leq m}u_{t+j} ∑t=1V∑−m≤j≤mut+j为我们的数据观测,表示 u t + j u_{t+j} ut+j作为背景词去预测 u t u_{t} ut的一个得分;而后一项 − 1 T ∑ t = 1 V ∑ − m ≤ j ≤ m − ∑ w = 1 V P ( u w ∣ v t ) u w ) -\frac{1}{T}\sum_{t=1}^{V}\sum_{-m\leq j\leq m}-\sum_{w=1}^{V}P(u_w|v_t)u_w) −T1∑t=1V∑−m≤j≤m−∑w=1VP(uw∣vt)uw)使我们的模型学习到的结果,它表示在 v t v_t vt作为中心词的条件下,剩下所有词语出现的概率与这些词语数值的乘积。二者相减得到的差正好是模型需要从数据中学习的内容。