CS224N(三)Word Vectors 2
【笔记3-1】CS224N课程笔记 - 深度自然语言处理
【笔记3-2】CS224N课程笔记 - 词向量表示 word2vec
【笔记3-4】CS224N课程笔记 - 分类与神经网络
【笔记3-5】CS224N课程笔记 - 依存分析
【笔记3-6】CS224N课程笔记 - RNN和语言模型
【笔记3-7】CS224N课程笔记 - 神经机器翻译seq2seq注意力机制
【笔记3-8】CS224N课程笔记 - 卷积神经网络
CS224n:深度学习的自然语言处理(2017年冬季)1080p https://www.bilibili.com/video/av28030942/
涉及到的论文:
GloVe: Global Vectors for Word Representation (Jeffrey Pennington, Richard Socher, and Christopher D. Manning. 2014)
https://nlp.stanford.edu/pubs/glove.pdf
Evaluation methods for unsupervised word embeddings (Schnabel, T. , Labutov, I. , Mimno, D. &Joachims, T. 2015)
http://www.cs.cornell.edu/~schnabts/downloads/schnabel2015embeddings.pdf
Improving Distributional Similarity with Lessons Learned from Word Embeddings(Omer Levy, Yoav Goldberg, and Ido Dagan. TACL 2015)
https://levyomer.files.wordpress.com/2015/03/improving-distributional-similarity-tacl-2015.pdf
关键词:GloVe,内在评价和外在评价,超参数的影响,人类判断与单词向量距离,单词歧义处理,窗口分类
GloVe
全局统计信息+类比功能
在之前的课时中已经学过单词的向量表示方法,包括基于计数的矩阵分解方法,以及基于上下文窗口的方法(word2vec)但是,这两种方法都存在一定的缺点,前者无法处理词汇类比问题,后者无法捕捉整体的统计信息,因此需要提出一个方法来综合两者的优点。
相比之下,GloVe基于全局的词汇共现的计数,通过一个最小二乘模型,生成了一个具有有意义的子结构的词向量空间,可以用于处理单词类比以及相似性问题。
共现矩阵的表示
我们用 X i j X_{ij} Xij来表示单词j在单词i的上下文当中出现的次数,则 X i = ∑ k X i k X_i=\sum_k X_{ik} Xi=∑kXik则为任意一个单词k在单词i的上下文中出现的总次数。进而可以用 P i j = P ( w j ∣ w i ) = X i j X i P_{ij}=P(w_j|w_i)=\frac{X_{ij}}{X_i} Pij=P(wj∣wi)=XiXij来表示单词j在单词i的上下文中出现的概率。
虽然这一概率的计算需要遍历整个文库,在数据量比较大的时候计算量会比较大,但是这是一个只需要进行一次的计算过程,相对来说计算量可以接受。
最小方差目标函数
在skip-gram模型中使用的是softmax函数来计算单词j出现在单词i的上下文中的概率: Q i j = e x p ( u ⃗ j T v ⃗ i ) ∑ w = 1 W e x p ( u ⃗ w T v ⃗ i ) Q_{ij}=\frac{exp(\vec{u}_j^T\vec{v}_i)}{\sum_{w=1}^{W}exp(\vec{u}_w^T\vec{v}_i)} Qij=∑w=1Wexp(uwTvi)exp(u