当前位置:   article > 正文

nlp学习笔记一

nlp学习笔记一

作为学习记录自用,内容可能有误

Introduction and Word Vectors

1.如何表示一个词的意思

使用独热向量(one-hot vectors)表示,无相似性概念,且维度过大

一个单词的意思由经常出现在它附近的单词给出,使用稠密向量表示,使其与出现在它的上下文窗口中的词向量相似,我们称此向量为词向量/词嵌入(word vectors/word embeddings)

如何学习词向量:Word2vec框架

2.Word2vec

Word2vec是一个学习word embeddings的框架

原理简介:

对于文本中的每个位置t,都存在一个中心词c和上下文词o,使用c和o词向量的相似性,计算对于给定的c的o的概率,即P(w_o|w_c : \theta ),并不断调整词向量使其最大化(极大似然估计)

Word2vec目标函数:

对于每个位置t=1, ..., T,在大小为m的固定窗口内预测上下文单词,给定中心词w_t,

对于某个上下文词w_{t+j},该词的概率预测为P(w_{t+j}|w_t : \theta )

对于中心词t窗口内的全部上下文词,预测概率为\prod_{-m\leq j\leq m}P(w_{t+j}|w_t : \theta )

对于全部文本中的每个中心词,似然函数为L( \theta )= \prod^T_{t=1} \prod_{-m\leq j\leq m}P(w_{t+j}|w_t : \theta )

求极大似然,将其化为负对数似然,求最小值:J( \theta )= -\sum ^T_{t=1} \sum_{-m\leq j\leq m}\log_{}P(w_{t+j}|w_t : \theta )

那么该如何求P(o|c)函数的值呢?这里使用softmax function计算概率[cs224n slide]

其中v代表该单词作为中心词时的word vector

u代表该单词作为上下文词时的word vector

两word相似性越高,点乘结果越大,P(o|c)概率越大

计算表示:

上下文词向量矩阵U:

中心词向量矩阵V:

每行代表一个向量,求softmax概率时:

梯度下降部分推导:

(分母布局)

补充J(\theta)的计算要基于全部语料库的样本,数据规模大,耗费资源多

可使用随机梯度下降法(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):输入上下文中的单词并预测中心词

Skip-gram

使用中心词预测上下文词的模型

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]

CBOW

输入上下文中的单词并预测中心词的模型

embedding 层会将词窗内的词向量取平均

线性层计算全部词语相似度

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/537769
推荐阅读
相关标签
  

闽ICP备14008679号