词嵌入(word embedding)简记

1、词嵌入矩阵的每一列是(字典中)不同的词,每一行是每个词的不同特征

2、矩阵的值的绝对值越接近1,表示该列的词具备越显著的行所表示的特征,反之接近0则表示该列的词不具备行所表示的特征。

3、行特征一般不可具体描述

13931179-1af85586b9d39275.png

嵌入矩阵的每一列被称为对应词的嵌入向量(特征向量

嵌入矩阵x某个词的独热向量=该词嵌入向量,实际应用中该乘法效率低下,因为独热向量维度巨大,Keras中用嵌入层( Embedding layer )来单独查找矩阵的某列,即提取字典中某个词的嵌入向量 

词嵌入可以用来类比推理,即找出具有相似特征的词或具有相似关系的词组(例如Man:Woman-King:Queen、bigger:big-taller:tall,等)



常用的相似度函数——余弦相似度(cosine similarity)

13931179-4ca8b76ba07e2fcf.png
表示x的嵌入向量
13931179-0d561cfc1820b376.png
余弦相似度计算

 其中二范数即、是把向量中的所有元素求平方和再开平方根。  

  得到的结果其实是两个向量的夹角的cos值,两向量越接近则值越大



学习词嵌入,及通过学习得到词嵌入矩阵E的方法之一是建立语言模型。

下图是通过语言模型学习使其能预测句尾的juice。单词下的数字表示该词在字典中的索引(如want索引为9665),是该词独热向量、E是嵌入矩阵、是该词嵌入向量。将得到的6个嵌入向量(300x1)堆叠后得到1800x1的向量作为输入向量通入神经网络后经过softmax在所有的字典中的词中选择一个作为预测,通过反向传播、梯度下降来学习嵌入矩阵。实际应用中存在超参数 历史窗口 (historical window) 来控制目标词前面的“ 上下文 ”的单词数量。(比如历史窗口为4时,嵌入向量堆叠后的输入维度为1200x1)

在这种算法的激励下训练集中的orange juice 和apple juice能让orange和apple学习到相似的嵌入向量,从而让预测值更好地符合训练集。

研究者发现如果只是学习词嵌入而不是真正的构建语言模型,在选择目标词的 “ 上下文  ”时,可以选择左右的n个词、之前的一个词、附近的一个词等。

13931179-5ca922986d73a663.png
神经网络语言模型

猜你喜欢

转载自blog.csdn.net/weixin_34107955/article/details/86781388