写在前面
就是自己的课程笔记而已。我看的其实是2020版的ppt和2019的视频,因为实在是啃不动全英文的视频。另外复制图片太麻烦了,于是用的富文本编辑器。
文档作业相关内容推荐:https://github.com/xixiaoyao/CS224n-winter-together
综述
Lecture 2: Word Vectors and Word Senses
1. Finish looking at word vectors and word2vec (10 mins) 完成词向量和word2vec学习
2. Optimization basics (8 mins) 优化器基础
3. Can we capture this essence more effectively by counting? (12m) 通过计数更有效的抓住本质?
4. The GloVe model of word vectors (10 min) GloVe模型
5. Evaluating word vectors (12 mins) 评估词向量
6. Word senses (6 mins) 词义
7. Review of classification and how neural nets differ (10 mins) 复习分类和神经网络差异
8. Course advice (2 mins) 课堂建议
目标:课堂结束就会读word embedding相关论文了。
正文
第一部分 再复习下word2vec
对一个中心词,与窗口内的context词出现的概率:
通过极大似然方法最大化整个文本出现的概率:
损失函数:
假设vocabulary包含m个词,每个词向量长度为n, 对于每一个词,作为中心词(center)和非中心词(outside)时分别使用v和u两个向量表示。在计算完成后将两个向量平均作为最终词向量表示。
对每一个词作为中心词时,计算概率分布。这里假定第4个词作为中心词时,有
其中,d为与m个outside词的点积,由于两个向量的点乘可以表示其相似度,进一步可用于表示其出现的概率大小,从而得到概率表示:
这里原理就很明显了,我们接下来需要做的,就是通过优化问题来更新矩阵U和V,从而使词向量模型需对出现在同一个context中的词赋予较大的概率。
第二部分 再再复习一下梯度下降
SGD(Stochastic Gradient Descent 随机梯度下降)
和梯度下降很相似,只是损失只和窗口内容对应的参数有关,大大减少了计算量,比如我原本每次都次都要更新整个词汇表的每个词的向量,现在只和窗口内有关的词向量进行更新即可。
第三部分 共现矩阵表示词向量
两种形式:windows vs. full document
以window大小为1(只考虑前后一次的共现),且不区分上下文关系为例:
缺点很明显:维度过大,向量稀