Word Vectors and Word Senses
预习
- 随机梯度下降有什么应用价值,或者说比起普通的梯度下降有什么区别?
J ( θ ) J(\theta) J(θ)是语料库中所有窗口的累乘结果,计算和更新一次所需要的计算量太过于巨大。
随机梯度下降可以解决这个问题。
随机梯度算法具体是怎么计算的?
回答:
比起传统梯度下降算法,计算所有window的softmax值,然后连乘得到梯度;随机梯度下降是每经过一个window,就根据这个window的梯度进行参数更新。
实际操作中,往往是同时计算32 or 64个window,原因一是GPU并行计算的特性可以使得运算更高效,二是可以使得结果更加准确。 - 为什么使用两个vector来分别表示一个单词为中心单词还是处于上下文的单词?
实际上最后取两者的平均值作为真实的vector;而且也可以仅仅使用一个向量代表一个单词。 - softmax函数的理解
- softmax函数的形式
S i = e i ∑ j e j S_i=\frac{e^i}{\sum_je^j} Si?=∑j?ejei? - softmax函数的作用
可以把输入映射为0-1之间的实数,并且归一化保证和为1,因此可以适用于多分类的概率。
在P4当中, s o f t m a x ( U . v 4 T ) = P ( u ∣ v 4 ) softmax(U.v_4^T)=P(u|v_4) softmax(U.v4T?)=P(u∣v4?)
- Logistics回归复习
预习不动了QAQ直接看视频,然后补充吧。
笔记
- 随机梯度下降算法实际应用过程中会遇到的问题以及解决办法。
由于每次window大小的限制,所以得到的 Δ θ J ( θ ) \Delta_{\theta}J(\theta) Δθ?J(θ)是一个有效数字不超过2m+1的稀疏矩阵。而这个时候,每次通过矩阵相加来更新参数效率就非常低下。
解决的思路是仅仅更新出现的单词向量。 - 使用Logistic回归的思路实现skip-gram model。
- 算法的名字:Negative Sampling
- 算法的优点:简单,但是运算需要的代价更高
- 算法的中心思想:训练true pair和noise pair的Logistics二元分类模型
- 算法的目标函数
J ( o , v c , U ) = ? l o g ( σ ( u o T v c ) ) ? ∑ k = 1 K l o g ( σ ( ? u k T v c ) ) J(o,v_c,U)=-log(\sigma(u_o^Tv_c))-\sum_{k=1}^Klog(\sigma(-u_k^Tv_c)) J(o,vc?,U)=?log(σ(uoT?vc?))?∑k=1K?log(σ(?ukT?vc?))
K代表的是所取的negative example的数目。
- 使用非机器学习的简单统计手段来建立语言模型。
神经网络崛起之前的基础方法。
思路为遍历语料库,直接统计单词周围出现的词语出现的频率,近似为概率进行使用。
可以建立矩阵来存储co-occurrence vectors,同时可以直接通过表示该单词的行/列向量来度量他们之间的相似性。
缺点在于需要大量存储空间。
解决办法是通过奇异值分解进行降维。