当前位置: 代码迷 >> 综合 >> cs224n NLP with dl笔记(二)
  详细解决方案

cs224n NLP with dl笔记(二)

热度:43   发布时间:2023-12-19 00:44:41.0

Word Vectors and Word Senses

预习

  1. 随机梯度下降有什么应用价值,或者说比起普通的梯度下降有什么区别?
    J ( θ ) J(\theta) J(θ)是语料库中所有窗口的累乘结果,计算和更新一次所需要的计算量太过于巨大。
    随机梯度下降可以解决这个问题。
    随机梯度算法具体是怎么计算的?
    回答:
    比起传统梯度下降算法,计算所有window的softmax值,然后连乘得到梯度;随机梯度下降是每经过一个window,就根据这个window的梯度进行参数更新。
    实际操作中,往往是同时计算32 or 64个window,原因一是GPU并行计算的特性可以使得运算更高效,二是可以使得结果更加准确。
  2. 为什么使用两个vector来分别表示一个单词为中心单词还是处于上下文的单词?
    实际上最后取两者的平均值作为真实的vector;而且也可以仅仅使用一个向量代表一个单词。
  3. 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(uv4?)
  1. Logistics回归复习

预习不动了QAQ直接看视频,然后补充吧。

笔记

  1. 随机梯度下降算法实际应用过程中会遇到的问题以及解决办法。
    由于每次window大小的限制,所以得到的 Δ θ J ( θ ) \Delta_{\theta}J(\theta) Δθ?J(θ)是一个有效数字不超过2m+1的稀疏矩阵。而这个时候,每次通过矩阵相加来更新参数效率就非常低下。
    解决的思路是仅仅更新出现的单词向量。
  2. 使用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的数目。
  1. 使用非机器学习的简单统计手段来建立语言模型。
    神经网络崛起之前的基础方法。
    思路为遍历语料库,直接统计单词周围出现的词语出现的频率,近似为概率进行使用。
    可以建立矩阵来存储co-occurrence vectors,同时可以直接通过表示该单词的行/列向量来度量他们之间的相似性。
    缺点在于需要大量存储空间。
    解决办法是通过奇异值分解进行降维。