首页 > 其他分享 >自然语言处理学习笔记-lecture5-语言模型03

自然语言处理学习笔记-lecture5-语言模型03

时间:2022-10-21 13:45:09浏览次数:79  
标签:03 语言 lecture5 模型 times 神经网络 输出 自然语言 向量

词语表示

一种典型方法是符号表示法,\(w_1w_2\cdots w_m\)等等,等价的表示方法是one-hot表示法,此时有多少个词向量就有多少维,且没有办法表示词之间的相似性,基于连续语义空间的词语表示,向量维数和词的数量无关,是低维稠密的连续实数空间

神经网络语言模型

词向量:将每个词映射到实数向量空间中的点,设词表规模\(V\),词向量维度\(D\),look-up table是一个\(D\times V\)的矩阵,记为\(L\),里面的每一列代表一个词,该矩阵右乘一个\(V \times 1\)的ont-hot向量取出特定的词对应的词向量,\(L\)的学习:通常先随机初始化,然后通过目标函数优化词的向量表达

前馈神经网络

前馈神经网络
参数\(W,b\)通过反向传播算法学习,首先:

\[h_{W,b}(x) = f(W^T x + b) \]

之后定义损失函数:

\[J(W,b;x,y) = \frac12||h_{W,b}(x) - y||^2 \]

训练的样本为\(\{(x^{(1)},y^{(1)}),(x^{(2)},y^{(2)}),\cdots,(x^{(m)},y^{(m)})\}\),损失函数:

\[J(W,b) = [\frac1m\sum_{k = 1}^mJ(W,b;x^{(k)},y^{(k)}))] + \frac\lambda 2\sum_{l = 1}^{n_l - 1}\sum_{j = 1}^{s_l}\sum_{i = 1}^{s_{l + 1}}\left({W_{ij}^{(l)}}^2\right) \]

参数的学习中,首先forward计算每一层每个神经元的输出,之后计算输出层也就是最后一层的输出,之后反向计算每个神经元的梯度,最后计算权重和偏差的梯度,这样既可以完成参数的学习
前馈神经网络的语言模型总结如下:
以求\(p(this|the,few,supporters,of)\)的概率为例

  • 输入\(the\ few\ supporters\ of\)
  • 根据look-up table得到一个由每个词的列向量concatenate得到的的矩阵,\(L:D \times V,T_w:V \times 4\),也就是得到一个\(D \times 4\)的矩阵,这个矩阵作为神经网络的输入
  • 经过一个全连接层和一个Tanh激活层
  • 再经过一个全连接层,输出变为\(1 \times V\)
  • 经过softmax层得到输出的概率

前馈神经网络语言模型存在的问题:仅对小窗口的历史信息建模,例如n-gram仅考虑前n-1个词的历史信息

循环神经网络语言模型

例如Bush held a talk with Salon这句话,在\(t_1\)时刻,输入是Bush对应的词向量\(w_1 = [0.2,0.2]^T\)和\(h_0 = [0,0]^T\),输出的\(h_1 = U\cdot w_1 + W\cdot h_0\),这个\(h_1\)和第二个词held对应的词向量\(w_2\)作为下一时刻\(t_2\)的输入,其中\(U,W\)是共享的参数,尺寸为\(D \times D\),过程总结如下

  • 输入:\(t-1\)时刻历史\(h_{t - 1}\)与\(t\)时刻输入词语的词向量\(w_t\)
  • 输出:\(t\)时刻历史\(h_t\)与\(t + 1\)时刻词语的词向量\(y_t\)的概率,\(y_t\)由\(h_t\)得来,\(y_t:V\times 1\)尺寸

循环神经网络存在的问题是梯度消失和爆炸问题,参数\(W\)经过多次传递后,易发生梯度消失和爆炸,可以通过有选择的保留和遗忘,通过某种策略有选择的保留或遗忘\(t\)时刻的信息来解决LSTM

自注意机制语言模型

\[Attention(Q,K,V) = softmax\left(\frac{QK^T}{\sqrt{d_k}}\right)V \]

神经网络语言模型相关开源工具

标签:03,语言,lecture5,模型,times,神经网络,输出,自然语言,向量
From: https://www.cnblogs.com/eryoyo/p/16813161.html

相关文章