2021斯坦福CS224课程leture1~2笔记
leture 1~Introduction and Word Vectors
首先简要介绍传统NLP的缺陷和分布式语义思想,其次重点讲解word2vec模型。
1.传统NLP的缺陷:把词语看作离散的符号,one-hot编码,向量维度过大;
2.分布式语义思想:一个单词的意思是由经常出现在它附近的单词给出。
Word2vec模型
-
思想 :有大量文本语料,固定词汇表的每个单词由一个向量表示,文本中的每个位置t均有一个中心词c和上下文单词o,使用c和o的词向量的相似性来计算给c的o的概率 (反之亦然),不断调整词向量最大化这个概率。
-
目标函数: 对于每个位置t=1,…,T,在大小为m的固定窗口内预测上下文单词,给定中心词wt,,其概率函数为
损失函数为
问题:如何计算概率P(w_(t+j)│w_t;θ)~即采用每个单词的两个向量(vw和uw,w分别是中心词和上下文词),即
使用梯度下降法进行更新,计算如下
当P(o|c)→1,即通过中心词c可以正确预测上下文词o,此时不需要调整uo ,反之相应调整。
leture 2~Neural Classifiers
首先简要介绍优化算法:梯度下降(GD)和随机梯度下降(SGD),其次介绍Word2vec模型的变体:Sikp-gram和CBOW模型,前者输入中心词预测上下文中的单词,后者输入上下文单词并预测中心词,最后重点介绍Glove模型。
以负采样的Skip-gram模型为例:
目标函数:
现目标函数:
Glove模型
- 思想:在神经网络中使用计数矩阵的思想,共现概率的比值可以对meaning component进行编码。
- 问题:如何在词向量空间捕获共现概率的比值?
Co-occurrence Matrix:X 表示 word-word 共现矩阵,其中 Xij 表示词j出现在词i的上下文的次数。
以下图为例,区分热力学上两种不同状态ice冰与蒸汽steam,它们之间的关系可通过与不同单词x的co-occurrence probability 的比值来描述。
对于solid固态,虽然 P(solid|ice) 与 P(solid|steam)本身很小,不能表示有效信息,但是其比值 (P(solid│ice))/(P(solid│steam) ) 却较大,因solid常用来描述ice的状态而非steam的状态,故在ice的上下文中出现概率较大;反之,gas表现则相反。对water一词,用于描述ice与steam均可;对于fashion一词,与ice与steam两者均无较大联系,则比值接近于1。所以相较于单纯的co-occurrence probability,实际上co-occurrence probability的相对比值更有意义。
使用softmax计算词j出现在词i的上下文概率:
原损失函数:
现损失函数:
优化后:
再次优化:
GloVe 模型仅对单词共现矩阵中的非零元素训练,利用全局统计信息,生成具有有意义的子结构向量空间。该模型优点是训练快速,可以扩展到大型语料库,即使是小语料库和小向量,性能也很好。