赞
踩
作为学习记录自用,内容可能有误
使用独热向量(one-hot vectors)表示,无相似性概念,且维度过大
一个单词的意思由经常出现在它附近的单词给出,使用稠密向量表示,使其与出现在它的上下文窗口中的词向量相似,我们称此向量为词向量/词嵌入(word vectors/word embeddings)
如何学习词向量:Word2vec框架
Word2vec是一个学习word embeddings的框架
原理简介:
对于文本中的每个位置t,都存在一个中心词c和上下文词o,使用c和o词向量的相似性,计算对于给定的c的o的概率,即,并不断调整词向量使其最大化(极大似然估计)
Word2vec目标函数:
对于每个位置t=1, ..., T,在大小为m的固定窗口内预测上下文单词,给定中心词,
对于某个上下文词,该词的概率预测为
对于中心词t窗口内的全部上下文词,预测概率为
对于全部文本中的每个中心词,似然函数为
求极大似然,将其化为负对数似然,求最小值:
那么该如何求P(o|c)函数的值呢?这里使用softmax function计算概率[cs224n slide]
其中v代表该单词作为中心词时的word vector
u代表该单词作为上下文词时的word vector
两word相似性越高,点乘结果越大,P(o|c)概率越大
计算表示:
上下文词向量矩阵U:
中心词向量矩阵V:
每行代表一个向量,求softmax概率时:
梯度下降部分推导:
(分母布局)
补充:的计算要基于全部语料库的样本,数据规模大,耗费资源多
可使用随机梯度下降法(Stochastic gradient descent)(SGD),在单个样本里计算和更新参数并遍历所有样本
另外基于单个样本更新可能会导致震荡较大,更常见的是使用mini-batch gradient descent
[cs224n slide]:
为什么使用两个word vector矩阵U和V:在求偏导时出现u,v相同的情况不用单独考虑
最后将两个矩阵求平均得到最终的word embeddings
Word2vec两个模型变体:
1.skip-grams(SG):输入中心词并预测上下文中的单词
2.Continuous Bag of Words(CBOW):输入上下文中的单词并预测中心词
使用中心词预测上下文词的模型
1.输入中心词one-hot向量
2.乘center词向量矩阵W得到该词word vector
3.中心词词向量乘以context词向量矩阵,得到对每个词的相似度
4.softmax求相似度最高词
P(o|c)函数分母计算代价(即更新U矩阵的时候)较高:使用 negative sampling/负例采样方法的 skip-gram 模型
简单的说就是每次对于中心词c,选择一个上下文窗口内的样本o标签为1,然后选则k个随机样本标签为0
使用一对中心词与其上下文窗口内的词,与几对中心词与随机配对词的样本,训练二元逻辑回归
负采样损失函数: 激活函数使用sigmoid [cs224n slide]
输入上下文中的单词并预测中心词的模型
embedding 层会将词窗内的词向量取平均
线性层计算全部词语相似度
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。