词嵌入:word embedding
Introduction
用vector来表示一个word,最传统的做法是1-of-N Encoding,可以把有同样性质的word进行聚类,划分成多个class,然后用word所属的class来表示这个word,最后把每一个word都投影到高维空间上进行Word Embedding
word embedding是一个无监督的方法(unsupervised),只要让机器阅读大量的文章,它就可以知道每一个词汇embedding之后的特征向量应该长什么样子
我们的任务就是训练一个neural network,input是词汇,output则是它所对应的word embedding vector
Word Embedding
基本精神就是,每一个词汇的含义都可以根据它的上下文来得到
Count based
假如 w i w_i wi和 w j w_j wj这两个词汇常常在同一篇文章中出现,它们的word vector分别用 V ( w i ) V(w_i) V(wi)和 V ( w j ) V(w_j) V(wj)来表示,则 V ( w i ) V(w_i) V(wi)和 V ( w j ) V(w_j) V(wj)会比较接近
假设
N
i
,
j
N_{i,j}
Ni,j是
w
i
w_i
wi和
w
j
w_j
wj这两个词汇在相同文章里同时出现的次数,我们希望它与
V
(
w
i
)
∗
V
(
w
j
)
V(w_i)*V(w_j)
V(wi)∗V(wj)的内积越接近越好
Prediction based
基于预测的方法,即可以通过上下文预测中心词,也可以通过中心词预测上下文,中心词即我们要预测的词。
对1-of-N编码进行Word Embedding降维的结果就是神经网络模型第一层hidden layer的输入向量,该向量同时也考虑了上下文词汇的关联,我们可以通过控制第一层hidden layer的大小从而控制目标降维空间的维数
Sharing Parameters
扩展这个问题,使用10个及以上的词汇去预测下一个词汇,可以帮助得到较好的结果,这里用2个词汇举例
Training
对于输入“潮水、退了”,我们希望network的输出和“就”越接近越好,即最小化cross entropy
Various Architectures(各种架构)
除了上面的基本形态,Prediction-based方法还可以有多种变形
- CBOW(Continuous bag of word model):拿前后的词汇去预测中间的词汇
- Skip-gram:拿中间的词汇去预测前后的词汇
Result
本文图片来自李宏毅老师课程PPT,文字是对李宏毅老师上课内容的笔记或者原话复述,在此感谢李宏毅老师的教导。