再探深度学习词向量表示

神经概率语言模型(Bengio 2003),Word2vec (Mikolov 2013),(CBOW & Skip-gram) * (HS & NEG),词向量的评价方法,Softmax分类模型,词向量的应用场景.
展开查看详情

1.再探深度学习词向量表示 Advanced word vector representations 主讲人:李泽魁

2.目录 • Lecture 1 知识点回顾 • 神经概率语言模型 (Bengio 2003)Bengio 2003)) • Word2vec (Bengio 2003)Mikolov 2013)) • (Bengio 2003)CBOW & Skip-gram) * (Bengio 2003)HS & NEG) • 词向量的评价方法 • Softmax 分类模型 ( 原 PPT 乱入 ) • 词向量的应用场景

3. 目录对比 cs224d Lecture 3 目录 • Lecture 1 知识点回顾 (Bengio 2003)Refresher) • 词向量梯度下降 & 随机梯度下降 (Bengio 2003)GD & SGD) • 如何评测词向量 (Bengio 2003)evaluate) • Softmax 分类 (Bengio 2003)softmax classification) • 若干习题集 (Bengio 2003)problem set) 本次目录 • Lecture 1 知识点回顾 • 神经概率语言模型 (Bengio 2003)Bengio 2003)) • Word2vec (Bengio 2003)Mikolov 2013)) • (Bengio 2003)CBOW & Skip-gram) * (Bengio 2003)HS & NEG) • 词向量的评价方法 • Softmax 分类模型 ( 原 PPT 乱入 ) • 词向量的应用场景

4. 知识点回顾:词向量 • 词向量表示 – One-hot Representation • “ 黑板”表示为 [0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ...] – Distributional Representation • “ 黑板”表示为 [0.792, −0.177, −0.107, 0.109, −0.542, ...] • 词向量降维 – SVD , LSA , LDA • Based on lexical co-occurrence – Learning representations • Predict surrounding words of every word • Eg. word2vec

5. 知识点回顾 : input & output vector • 所以每个词 w 都有两个向量表示 – input vecter :窗口内的中心向量 (Bengio 2003)center vector) v – output vector :非中心词向量 (Bengio 2003)external vectors) v’ • 例如 window size = 1 ,句子 I like learning – like 为 v_like – I 、 learning 为 v’_I v’_learning

6. 知识点回顾 : Simple word2vec • Predict surrounding words in a window of length c of every word.

7. 知识点回顾 : Word2Vec & GloVe • Word2Vec – Efficient Estimation of Word Representations in Vector Space. Mikolov et al. (Bengio 2003)2013)) • GloVe – Glove: Global Vectors for Word Representation. Pennington et al. (Bengio 2003)2014) – aggregated global word-word co-occurrence statistics from a corpus

8. 深度学习词向量的语言模型 ( 引言 ) • 语言模型:判定一句话是否为自然语言 • 传统的 NLP 语言模型 ( 以 N-gram 为例 ) – 如何计算一个句子的概率? • 机器翻译: P(Bengio 2003)high winds tonite) > P(Bengio 2003)large winds tonite) • 拼写纠错: P(Bengio 2003)about fifteen minutes from) > P(Bengio 2003)about fifteen minuets from) • 语音识别: P(Bengio 2003)I saw a van) >> P(Bengio 2003)eyes awe of an) • 音字转换: P(Bengio 2003) 你现在干什么 |nixianzaiganshenme) > Pnixianzaiganshenme) > P ( 你西安在干什么 |nixianzaiganshenme) > Pnixianzaiganshenme) • 自动文摘、问答系统、 ... ...

9. 深度学习词向量的语言模型 ( 引言 ) • 传统的 NLP 语言模型 ( 以 N-gram 为例 ) – 如何计算一个句子的概率? – 问题形式化定义 • p(Bengio 2003)S)=p(Bengio 2003)w1,w2,w3),w4,w5,…,wn) • =p(Bengio 2003)w1)p(Bengio 2003)w2|nixianzaiganshenme) > Pw1)p(Bengio 2003)w3)|nixianzaiganshenme) > Pw1,w2)...p(Bengio 2003)wn|nixianzaiganshenme) > Pw1,w2,...,wn-1) • =p(Bengio 2003)w1)p(Bengio 2003)w2|nixianzaiganshenme) > Pw1)p(Bengio 2003)w3)|nixianzaiganshenme) > Pw2)...p(Bengio 2003)wn|nixianzaiganshenme) > Pwn-1) • 其他语言模型 – 指数语言模型 • 最大熵模型 MaxEnt 、最大熵马尔科夫模型 MEMM 、条件随机域 模型 CRF (平滑平滑语法、语义的加入) – 神经概率语言模型 • Bengio2003) 、 Mikolov2013) 等

10. 深度学习语言模型都有哪些? ( 粗略 ) • 2000 年,徐伟,神经网络训练语言模型 – 《 Can Artificial Neural Networks Learn Language Models? 》 – 用神经网络构建二元语言模型(平滑即 P(Bengio 2003)wt|nixianzaiganshenme) > Pwt−1) )的 方法

11. 深度学习语言模型都有哪些? ( 粗略 ) • 2003) 年, Bengio ,三层的神经网络构建语言 模型 – 《 A Neural Probabilistic Language Model 》

12. 深度学习语言模型都有哪些? ( 粗略 ) • 2008 , Ronan Collobert 和 Jason Weston – C&W model – 《 Natural Language Processing (Bengio 2003)Almost) from Scratch 》 • 2008 , Andriy Mnih 和 Geoffrey Hinton – 《 A scalable hierarchical distributed language model 》 • 2010 , Mikolov – RNNLM – 《 Recurrent neural network based language model 》 • 2012 , Huang – 《 Improving Word Representations via Global Context and Multiple Word Prototypes 》

13.Bengio2003)

14. Bengio2003) • 该结构中的学习参数 – 输入的词向量 v(Bengio 2003)w), w 属于 Dictionary – 各层的参数 WUpq • 各层的规模 – 投影层: (Bengio 2003)n-1)*mm , n 为上下文词数,不超过 5 ; m 为词向量维度, 10~10^3) – 隐藏层: n_hidden ,用户指定,一般为 10^2 量级 – 输出层: N ,词表大小,语料相关, 10^4~10^5 量级 • most computation here (Bengio 2003) 也是 word2vec 的主要优化点 ) – 隐藏层 to 输出层的 tanh – 输出层的 softmax

15. Bengio2003) • 计算公式推导 – 映射层 • 首尾拼接 (Bengio 2003)n-1)*mm ,记作 x – 隐藏层 ( 未画出 ) • 假设有 h 个节点 • tanh(Bengio 2003)H*m x + d) • 隐藏层与输出层权值矩阵为 U (Bengio 2003)|nixianzaiganshenme) > PV|nixianzaiganshenme) > P*mh) – 输出层 • |nixianzaiganshenme) > PV|nixianzaiganshenme) > P 个节点, softmax 为归一化概率 y • 公式为 • W 矩阵 – 输入层与输出层 ( 跨了两层 ) 的直连边矩阵,线性变换 – Bengio 发现直连边虽然不能提升模型效果,但是可以少一半的迭代次数 – 同时他也猜想如果没有直连边,可能可以生成更好的词向量

16. ffnnlm 相对于 ngram 模型的优点 • 词语之间的相似性可以通过词向量计算 – 下面例子中 cat 和 mouse 在 ffnnlm 中词向量相近 ,而在 ngram 中 cat 的概率要大很多 • A cat is walking on the street * 10000 • A mouse is walking on the street * 1 • 计算过程自带平滑效果 – 计算的是 p(Bengio 2003)w|nixianzaiganshenme) > Pcontext)

17. ffnnlm 中词向量的角色 • 输入与训练的参数 • 语言模型训练结束 后的副产品

18. 词向量的历史 • 词向量表示最先于 1986 年 Hinton 提出 • 2003) 年 Bengio 发扬光大 ffnnlm – Feed-forward Neural Net Language Model • SENNA 、 HLBL 、 Word2vec 、 SSWE 、 GloVe

19. Word2Vec 所做改进 (Bengio 2003)Mikolov 2013)) • 映射层不再是将输入单词的向量表示按顺序排列,而是将 他们相加,减少计算量 • 去掉了 tanh 隐层,减少计算量,同时效果并不差 • 目的是寻找单词的向量表示,而不是语言模型 • 利用了上下文而不是上文了 • 使用层次 softmax • 使用 negative sampling

20. Word2Vec 所使用模型 • CBOW & Skip-gram

21. (Bengio 2003)CBOW & Skip-gram) *m2 • 两个模型(平滑可选其一) – CBOW (Bengio 2003)Continuous Bag-Of-Words Model) – Skip-gram (Bengio 2003)Continuous Skip-gram Model) • 两套框架(平滑可选其一) – Hierarchical Softmax – Negative Sampling

22. CBOW+HS (Bengio 2003)structure) • 输入层 – 上下文 2C 个词向量 (Bengio 2003)m 维 ) • 隐层 – 输入词向量的累加和 • 输出层 – Huffman Tree (Bengio 2003)Why ? ) – 权值:词频 – 非叶节点 (Bengio 2003)|nixianzaiganshenme) > PD|nixianzaiganshenme) > P-1 个 ) 代表某一类别的词 – 叶节点 (Bengio 2003)|nixianzaiganshenme) > PD|nixianzaiganshenme) > P 个 ) 代表某一个词

23. CBOW+HS (Bengio 2003)huffman code) • Huffman tree – 叶节点是单词,对应一个 huffman code ,例如“ 00101” – 每个叶节点对应一个路径,记左子树为 1 ,右子树为 0 – 投影层每维节点与每个非叶节点有连线,可以看做非叶节点具 有不同权值 theta – 每个节点分裂概率使用 逻辑回归 • 正例概率(平滑左分支 1 ) • 负例概率(平滑右分支 0 )

24. CBOW+HS (Bengio 2003)a train sample) • Train sample (Bengio 2003)Context(Bengio 2003)“ 足球” ), 足球 ) • Train huffman path 1001 • 四次分裂 • Loss function (Bengio 2003) 是 0/1) • i.e.

25. CBOW+HS (Bengio 2003)Gradient Ascent Method) • GD (Bengio 2003)Gradient Descent Method) – 要在整个训练集上最小化代价函数 J(Bengio 2003)θ)) 需要计算所有窗口里 的参数梯度 • SGD (Bengio 2003)Stochastic Gradient Descent Method) – 窗口太多,迭代一轮太慢 – 随机梯度下降 (Bengio 2003)SGD) :在每一个窗口计算完毕后更新所有 的参数

26. CBOW+HS (Bengio 2003)Gradient Ascent Method) • SGD (Bengio 2003)Stochastic Gradient Descent Method) – 随机梯度下降 (Bengio 2003)SGD) :在每一个窗口计算完毕后更新所有 的参数 – 但是在每一个窗口里,我们仅有 2c-1 个词,这样的话要更 新的参数非常稀疏 • 解决方法 – 保留词向量的哈希值 * – 更新词嵌入矩阵 L 和 L′ 的固定列 – 如果你有上百万个词向量并且在 做分布式训练的话就不需要发送 大量的更新信息了

27. CBOW+HS (Bengio 2003)Gradient Ascent Method) • theta update (Bengio 2003)theta gradient) • word_vector update (Bengio 2003)word_vector gradient)

28. CBOW+HS (Bengio 2003)hierarchical) • No hierarchical structure – 输出层每一个词都算一遍,时间复杂度是 O(Bengio 2003)|nixianzaiganshenme) > PV|nixianzaiganshenme) > P) • Binary tree – O(Bengio 2003)log2(Bengio 2003)|nixianzaiganshenme) > PV|nixianzaiganshenme) > P))

29. CBOW+HS (Bengio 2003)softmax) • softmax – softmax 函数是 logistic(Bengio 2003)sigmoid) 函数的推广 – sigmoid 函数只能分两类,而 softmax 能分多类 – 如果某一个 z_j 大过其他 z ,那么 softmax 的分量就 逼近于 1 ,其他就逼近于 0