传统方式
先探究一个题目,我们怎么获取一个词语有用的寄义?
从前常用的NLP办理方法,利用WordNet,这是一个包罗同义词和上位词列表的同义词库
传统NLP中,我们用独热向量作为特性,这导致必要的特性向量维度过大,且由于独热向量都是正交的,所以词与词之间没有关联。
Word2Vec
Word2Vec是一个学习词向量的框架,通过训练将每一个词映射成一个固定长度的向量,所有向量构成一个词向量空间,每一个向量(单词)可以看作是向量空间中的一个点,意思越相近的单词间隔越近。
基本概念
①分布式语义:一个词的寄义由经常在他附近的词语提供。
②词向量:将出现在上下文中的单词视为向量,为每个单词创建稠密的向量,该向量在某种水平上表示该词的寄义。
主要思绪
①我们有一个很大的语料库,在其中选择固定的词汇,为每个词自己创建向量。我们要为每个词找出好的向量表示。
②我们可以从一大堆文本中来进行训练猜测,我们将中央词称为c,上下文词称为o,在给定中央词的情况下基于当前词向量计算上下文词出现的概率。(某些词会经常出现在中央词上下文,所以我们要不绝改变词向量来尽大概最大化这些词出现在中央词上下文的概率)
损失函数
我们希望猜测固定巨细M窗口内的上下文词,我们必要做的是计算出从前数据的似然:
似然是给定输出x时,关于参数θ的似然函数 \(L(\theta|x)\) (在数值上)即是给定参数θ后变量x的概率: \(L(\theta|x)=P(X=x|\theta)\) 。
\[Likelihood=L(\theta)=\displaystyle\prod_{t=1}^T\displaystyle\prod_{-m\le j \le m}logP(w_{t+j}|w_t;\theta)\]
我们必要做的是最大化我们在中央词周围看到的上下文的似然,改变一下似然函数,取平均对数似然。由于我们喜欢最小化我们的目标,所以再加个负号。从而得到目标函数(损失函数)
\[J(\theta)=-\frac{1}{T}L(\theta)=-\frac{1}{T}\displaystyle\prod_{t=1}^T\displaystyle\prod_{-m\le j \le m}logP(w_{t+j}|w_t;\theta)\]
出现概率
当给出中央词时,上下文词出现的概率为 \(P(o|c)=\frac{exp(u_o^Tv_c)}{\sum_{w\in V}exp(u_w^Tv_c)}\)
①对于分子,点积是两个向量关系的相似性度量(因为同号相加,异号相减),所以这好像是一个合理的想法
②对于分子,我们不想概率为负,所以取指数
③我们必要总和为1,所以分母为词汇表中每个不同单词和中央词的相似度之和
这就是softmax的一个例子,因此,那么我们便乐成得到了损失函数,接下来计算损失函数梯度即可(推导略)
\[\frac{\partial}{\partial V_c} logP(o|c) = u_o-\displaystyle\sum_{x=1}^VP(x|c)u_x\]
对于所有利用softmax的模型,最终情况一般都会是观察值减去期望值,因此,我们的模型很好(*▽*)
SkipGram
(1)SG全称skip-gram,是根据中央词猜测上下文词
(2)模型结构
①输入层: 吸收一个one-hot张量1×vocab_size作为网络的输入。
②隐藏层: 将张量V乘以中央词embedding张量vocab_size×embed_size ,并把结果作为隐藏层的输出,得到一个形状为1×embed_size的张量,里面存储着当前句子中央词的词向量。
③输出层: 将隐藏层的结果乘以上下文词embedding张量embed_size×vocab_size,得到一个形状为1×vocab_size的张量。这个张量经过softmax变换后,就得到了利用当前中央词对上下文的猜测结果。根据这个softmax的结果,我们就可以去训练词向量模型。
Skip-gram在现实操纵中,利用一个滑动窗口(一般情况下,长度是奇数),从左到右开始扫描当前句子。每个扫描出来的片段被当成一个小句子,每个小句子中间的词被认为是中央词,其余的词被认为是这个中央词的上下文。
CBOW
(1)CBOW全称Continues Bag of Words,是根据上下文词猜测中央词
(2)模型结构
①输入层: 一个形状为C×V的one-hot张量,其中C代表上下文中词的个数,通常是一个偶数,我们假设为4;V表示词表巨细,我们假设为5000,该张量的每一行都是一个上下文词的one-hot向量表示。
②隐藏层: 一个形状为V×N的参数张量W1,一般称为word-embedding,N表示每个词的词向量长度,我们假设为128。输入张量和word embedding W1进行矩阵乘法,就会得到一个形状为C×N的张量。综合考虑上下文中所有词的信息去推理中央词,因此将上下文中C个词相加得一个1×N的向量,是整个上下文的一个隐含表示。
③输出层: 创建另一个形状为N×V的参数张量,将隐藏层得到的1×N的向量乘以该N×V的参数张量,得到了一个形状为1×V的向量。最终,1×V的向量代表了利用上下文去推理中央词,每个候选词的打分,再经过softmax函数的归一化,即得到了对中央词的推理概率
负例采样
(1)负例采样
由于softmax标准化要对所有分数求和,计算代价昂贵,所以提出了skip-gram负采样方法(训练二元逻辑回归来区分真实对和噪声对)
\[J_{neg-sample}(u_o,v_c,U)=-log\sigma(u_o^Tv_c)-\displaystyle\sum_{k\in \{K \ sampled \ indices \}}log\sigma(-u_k^Tv_c)\]
主要思绪:我们取k个负样本(利用单词概率)最大化真实外部单词出现的概率。
关于计算选择某个词作为负样本的概率,可以利用随机选择。但作者给出了结果更好的公式: \(p(w_i)=\frac{f(w_i)^{3/4}}{\sum_{j=0}^mf(w_j)^{3/4}}\)
公式中, \(f(w_i)\) 代表语料库中 \(w_i\) 出现的频率。上述公式更加平滑,可以或许增长低频词的选取大概。
(2)条理化softmax
GloVe
对比前序方法
(1)第一类方法是基于统计而且依靠矩阵分解 (例如LSA,HAL) 。固然这类方法有效地利用了全局的信息,它们主要用于捕获单词的相似性,但是对例如单词类比的使命上表现不好。
(2)第二类方法是基于浅层窗口 (例如,Skip-Gram和CBOW 模型) ,这类模型通过在局部上下文窗口通过猜测来学习词向量。
共现矩阵
我们用X表示word-word共现矩阵,其中 \(X_{ij}\) 表示词j出现在词i上下文中的次数。令 \(X_i=\displaystyle\sum_kX_{ik}\) 为任意词出现在词i的上下文次数。最后,令 \(P_{ij}=(w_j|w_i)=\frac{X_{ij}}{X_i}\) 为词j出现在词i的上下文的概率。
对于庞大的语料库,这样会产生庞大的计算量,但这只是一次性的前期投入成本
最小二乘法目标函数
回想一下 Skip-Gram 模型,我们利用 softmax 来计算词 j出现在词 i 的上下文的概率。
\[Q_{ij}=\frac{exp(u_j^Tv_i)}{\sum_{w=1}^W xp(u_w^Tv_i)}\]
训练时以在线随机的方式进行,但是隐含的全局交织熵损失可以如下计算:
\[J=-\displaystyle\sum_{i \in corpus}\sum_{j \in context(i)}logQ_{ij}\]
同样的单词 i 和 j 大概在语料库中出现多次,因此首先将 i 和 j 相同的值组合起来更有效:
\[J=-\displaystyle\sum_{i=1}^W\displaystyle\sum_{j=1}^WX_{ij}logQ_{ij}\]
交织熵缺失的一个显著缺点是因为Q在对数中,所以要求分布Q被精确归一化,但对整个词汇的求和的计算量好坏常大的。因此,我们利用一个最小二乘的目标函数:
\[J=\displaystyle\sum_{i=1}^W\displaystyle\sum_{j=1}^WX_i(P_{ij}-Q_{ij})^2\]
其中 \(P_{ij}=X_{ij}\) 和 \(Q_{ij}=exp(u_j^Tv_i)\) 是未归一化分布。这个公式带来了一个新的题目,\(X_{ij}\)经常会是很大的值,从而难以优化。一个有效的改变是最小化 P 和Q对数的平方偏差:
\[J=\displaystyle\sum_{i=1}^W\sum_{j=1}^WX_i(log(P_{ij})-log(Q_{ij}))^2 \\ = \displaystyle\sum_{i=1}^W\sum_{j=1}^WX_i(u_j^Tv_i-logX_{ij})^2 \ \ \ \ \ \]
另外一个题目是权值因子 \(X_i\)不能包管是最优的。因此,我们引入更一般化的权值函数,我们可以自由地依靠于上下文单词:
\[J=\displaystyle\sum_{i=1}^W\displaystyle\sum_{j=1}^Wf(X_{ij}(u_j^Tv_i-logX_{ij}))^2\]
GloVe模型结论
GloVe模型仅对单词共现矩阵中的非零元素训练,从而有效地利用全局统计信息,并生成具有有意义的子结构向量空间。给出相同的语料库,词汇,窗口巨细和训练时间,它的表现都优于Word2Vec,它可以更快地实现更好的结果,而且无论速度怎样,都能获得最佳结果。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |