最近刚刚开始看斯坦福CS224n系列视频,主要讲的是自然语言处理与深度学习的结合。笔者怕自己看完视频就忘了,因此想记录下学习过程中的笔记。当然笔者发现了网上已经有人也发了一些CS224n的学习笔记。笔者主要学习了视频和参考了这篇笔记,再加上一些自己觉得难懂的地方的理解。笔者也是刚刚入门,水平有限,如有错漏,还望指出。
如何在电脑中表示一个词的意义?
用电脑表示一个词的问题
词向量的主要思路
- 通过单词和单词的上下文预测彼此。
- 两个算法:
- Skip-gram:通过目标单词来预测它的上下文
- Continuous Bag of Words(CBOW):通过上下文预测目标单词
- 两种训练方法:
- Hierarchical softmax
- Negative sampling
Skip-gram模型
- 上图的意思就是在已知banking的情况下,预测turning,into,cnises,as的概率,即: P(wt+j|wt),j=−2,−1,1,2 P ( w t + j | w t ) , j = − 2 , − 1 , 1 , 2 。所以我们的目标函数就是:
J′(θ)=∏t=1T∏−m≤j≤m, j≠0P(wt+j|wt;θ) J ′ (