How to Generate a Good Word Embedding(学习笔记)

word embedding(词嵌入):一种分布式此表示(distributed word representation),可以同时捕获词的语义以及语法信息。

本文主要比较已有的各种词嵌入模型与方法,并通过实验的视角详细分析在训练词嵌入模型的需要注意的一些重要点,包括模型建立、训练数据集设计、参数选择。

首先要弄清楚模型的建立,所有的模型基本都基于:共同出现在相似上下文环境中的词倾向于拥有相似的含义(words that occur in similar contexts tend to have similar meanings),但不同的模型使用不同的方法对目标词w和它的上下文环境c进行建模。下表是常用方法的简答比较:

Model Relation of w,c Representation of c
Skip-gram c predicts w One of c
Continuous bag of words(CBOW) c predicts w Average
Order c predicts w Concatenation
Log-bilinear language(LBL) model c predicts w Compositionality
Neural network language model(NNLM) c predicts w Compositionality
Collobert and Weston(C&W) Scores w,c Compositionality

就目标词与其上下文背景的关系而言,前五个模型是相同的,都是使用类似于条件概率P(w|c)作为目标函数。Ronan Collobert and Jason Weston(C&W)则使用类似的联合概率作为目标函数,使(w,c)对在数据集中获得更高的得分。

对于词的上下文背景的表示,如表中所示,Skip-gram使用了最简单的策略,即从目标词窗口中选择一个词,使用所选词的词嵌入向量作为上下文背景的表示。CBOW使用背景词的嵌入向量的平均值作为上下文背景的表示。

前两个模型都忽略了词之间的顺序以加速训练,但据估计有20%的信息是来源于文本中词间顺序的,则后几个模型都加入了此部分信息。Order模型将上下文背景词的嵌入向量连接起来,在此基础上后几个模型更进一步,加了一层隐藏层。

哪个模型效果好,哪种上下文背景表示好,数据集规模的选择,数据集来源领域的选择,迭代次数以及词嵌入维度的设置这些问题有待解决,先进行模型的比较:

使用e(w)表示词w的嵌入向量

Neural network language模型

NNLM同时学到词的嵌入向量以及语言模型,对于数据集中的每个样本最大化给定前边词的情况下,最后位置词的对数似然概率,例如对于一个数据集中的一个序列w1,w2,...,wn 最大化对数似然概率P(wn|w1,w2,...,wn1) 。这个模型使用前边词嵌入的连接向量作为输入$x = [e(w_1),…,e(w_{n-2}),e(w_{n-1})]

该模型是一个有一层隐藏层的前馈神经网络:

h = tanh(d+Hx)

y = Uh+b

U是一个转化矩阵,b、d都是偏置向量,最后一步是用一个softmax层得到目标词的概

Log-bilinear language模型

与NNLM很相似,使用log-bilinear energy函数,去掉非线性激活函数tanh。

Collobert and Weston(C&W)模型

C&W只训练词嵌入,不预测目标词。相反,它将目标词及其上下文背景连起来,然后打分。打分函数是一个含有一层隐藏层的神经网络,输入是目标词与其上下文背景词嵌入向量的连接向量,训练目标是同时最大化一个数据集中序列的得分,最小化一个对应的噪声序列(noise sequence)的得分,如下:

max(0,1s(w,c)+s(w,c))

在噪声序列中,目标词w被一个从词典中的随机词w 替换

CBOW模型与skip-gram模型(略)

Order模型

复杂度介于CBOW与LBL之间,输入与LBL一样,但与CBOW一样移除了隐藏层

GloVe模型

额外介绍一种神经网络方法,基于词背景举证训练词嵌入向量,矩阵行代表词,列代表context,矩阵中的元素代表词语背景词同时出现的次数。对这种矩阵方法的最新研究便是Global Vectors(GlvVec)模型。

(待续)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章