首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

神经网络语言模型详解(转)(4)

神经网络语言模型详解(转)(4)

10 Glove Glove(Global Vectors for word representation)由Jeffrey和Socher提出,并在word analogies,word similarity,NER任务中取得不错的效果。Glove融合了Globall Matrix Factorization和Local Context Window(见Section 11),提出了Log Bi-Linear的回归模型。从Glove的模型结构看,与神经网络结构存在不同,但是将其中函数设置为神经网络结构,即二者等价。
10.1 模型结构 所有非监督的word representation学习算法均需要基于词的共现矩阵,然后经过复杂变换和分解得到对应的word representation。Glove直接构造一个词共现矩阵的近似矩阵(Context为固定长度),尽可能保存词之间的共现信息,如下图所示,

表1 共现矩阵举例
词表中三个词,表示词出现在词的context中的概率,同理,。以i=ice, j=steam, k=solid(solid语义上更靠近ice而不是steam),Glove的目标是极大比率,参照Logistic Regression,其一般形式为,
其中,是对应的词向量,是context中词对应的向量。

由于属于一个非常大的泛函空间,所以需要对形式进行限制:
(1)需要编码比率中包含的信息,由于向量空间和线性结构的一致性,所以最直接的方法是F建模的是两个目标词向量的差值。
(2)上式中,等式右边是一个标量。如果F拥有复杂的结构,这样和需要得到线性结构的冲突,故F变为如下形式,
(3)Context的词和目标词()可以任意交换,所以模型需要能适应如此变形。在F满足对称性下,其形式为

结合,上述两式可以解得,即
对上式进行变形—将吸收到的偏置中,引入的偏置,
由于logx函数性质,需要对进行平滑,

10.2 模型求解 依据上式,我们可以构造出对应的损失函数,由于词与词之间的共现关系不均衡,有部分共现关系不合理的(噪声)词会赋上极小的权重,不利于模型学习参数。所以,在构造函数时考虑引入一个权重方程,
其中,需要满足如下特性,
(1),如果是一个连续函数,当时,是有限的。
(2)需要满足非递减的特性,如此,较少的出现的共现组合不会赋较大值。
(3)的函数值需要比较小,这样常见的共现组合也不会赋较大值

Glove中使用的权值方程,
通常。

11 Recurrent Neural Network Language Model 在前馈神经网络语言模型建模过程中取得STOA(the STate Of Art)的效果后,Thomas Mikolov将Recurrent Neural Network引入,同样取得很好的效果。相比前馈神经网络,RNN能讲更多的上下文考虑到模型中来(FFNN仅能考虑窗口内的上下文),RRN的隐藏层 能够囊括当前词的所有前序词(all previous words)。在序列数据中,RNN能够发现更多的词与词之间的pattern(与模型能够囊括更多的前序词有关)。
11.1 模型结构 在进行语言模型建模,一般采用简化版本的网络结构,此为时延神经网络(TDNN,Time Delay Neural Network),RNN的结构参照下图[Mikolov, 2013]

图8 简化版RNN结构
其中,输入层包括一个维的向量和一个维的向量,为隐藏层大小。网络训练结束后,输出层表示。
上述网络结构中,各个链接可以表示为
其中,和为sigmoid和softmax激活函数。网络每步训练复杂度为。

11.2 模型求解 由于RNN网络结构比较复杂,Backpropagation无法得到很好的训练结果,所以需要对传统Backpropagation进行改 进,Mozer,Rumelhart,Robinson,Werbos等分别独立提出了BPTT(BackPropagation Through Time)用于训练RNN[Mozer, 1995][Rumelhart, 1986][Robinson, 1987][Werbos,1988]。
单隐藏层的RNN可以展开成一个多层的深度FFNN,隐藏层被使用N次,则可以展开为一个包含N个隐藏层的深度FFNN(见下图),深度的FFNN可以使用梯度下降方法学习得到参数。


图9 展开的RNN
按照上述结构,输出层的误差可以递归的往下传递,误差表达式为:
其中,对向量中元素逐个使用,
如此,RNN中参数更新表达式为,
对于,

对于,
其中,T为网络中被展开的步数(见上图)。
RNN用于Word Embedding学习的相关项目见:http://www.fit.vutbr.cz/~imikolov/rnnlm/
继承事业,薪火相传
返回列表