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

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

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

原文  http://mp.weixin.qq.com/s?__biz=MjM5ODIzNDQ3Mw==&mid=203735609&idx=1&sn=68f6e2ad560257869aeea09c59af1c1a&scene=2&from=timeline&isappinstalled=0
1 简介 语言模型是自然语言处理领域的基础问题,其在词性标注、句法分析、机器翻译、信息检索等任务中起到了重要作用。简而言之,统计语言模型表示为:在词序列中,给定一个词和上下文中所有词,这个序列出现的概率,如下式,
其中,是序列中第词,, 可以使用 近似,这就是n-gram语言模型,详细请阅读[我们是这样理解语言的-2]统计语言模型。随着深度学习的发展,神经网络相关研究越来越深入,神经网络语 言模型(Neural Network Language Model,NNLM)越来越受到学术界和工业界的关注,本文将系统介绍下 NNLM 的建模及其应用。

2 神经网络语言模型 NNLM 最早由Bengio系统化提出并进行了深入研究[Bengio, 2000, 2003]。当然分开来看,(1) distributed representation最早由Hinton提出(1985), (2)利用神经网络建模语言模型由Miikkulainen and Dyer,Xu and Rudnicky分别在1991和2000提出。
NNLM 依赖的一个核心概念就是词向量(Word Embedding)。词向量源于Hinton在Learning distributed representations of concepts提出的Distributed Representation,Bengio将其引入到语言模型建模中,提出了NNLM。那么,我们不禁要问,什么是词向量呢?
2.1 词向量 简而言之,词向量是用一个向量来表示一个词,一定程度上可以用来刻画词之间的语义距离。
a、词表中的词表示为一个词向量,其维度一般取值为等值。

b、词向量为神经网络的一类参数,可以通过训练得到,同时基于词向量可以表示词序列的联合分布。
为了得到词向量,我们需要在给定训练数据集情况下,训练得到目标模型。而模型需要满足的约束,即对于任意的,表示与上下文所有可能的组合的概率和为1。 如此,我们可以将分解成两部分:
a、词表中任意单词表示为词向量,由此构建了一个的矩阵。
b、词的概率分布可以通过矩阵进行变换得到。函数是组合上下文中词向量构建一个词的条件概率分布,即函数的输出为一个向量,其第个分量表示当前词等于词表中第个词的条件概率,,函数组合了和得到最终的输出结果。

2.2求解目标 一般而言,神经网络语言模型的优化目标是最大化带正则化项的Log-Likelihood,其中参数集合为为神经网络的参数。
3 Bengio NIPS’03 Model 3.1 模型结构 Bengio使用前馈神经网络(FFNN,Feed Forward Neural Network)表示,其结构如下:

图 1 Bengio Yoshua提出的神经网络结构
上图中,输出层为Softmax,保证满足概率分布的约束:
其中,是每个词非正规化的概率值,的值是通过下式计算得到,参数分别为:
通常设置为0,即输出层和输入层不存在直接联系,输入向量为上下文环境对应的词向量的拼接组合。在模型中,令,其中,是输入层到隐藏层的偏置 (长度为),为隐藏层到输出层的参数(大小为),为输入层到隐藏层的参数,为隐藏层到输出层的偏置(长度为),是词向量矩阵(大小为),总共的参数为。
模型求解方式采用随机梯度上升(SGA,Stochastic Gradient Ascent),SGA类似于SGD,仅目标函数存在min和max的区别。

3.2发展方向 Bengio在论文的Feature Work部分提出了神经网络语言模型的可能改进方向,在后续研究者(包括他本人)的工作中多有所体现。
a、将神经网络分解成为小的子网络,比如利用词的聚类等。
b、加速SoftMax中的正则项Z的快速求导
c、仅对一部分输出进行梯度传播。
d、引入先验知识,比如语义信息(WordNet),语法信息(low-level: POS, high level:句法结构)等。
e、词向量可解释性。
f、解决一词多义问题(Polysemous)。

4 Hierarchical Neural Language Model 基于前述工作,Bengio又提出了层次结构的神经网络语言模型,用于加速模型的训练和推断过程。
4.1 模型结构 Hierarchical Neural Language Model的表达式如下:
其中可以看作能量函数。
同上文一致,令为词向量矩阵(word embedding matrix),为词对应的向量,上述能量函数可以表示为,
上式中,为的转置,为对应的参数向量和矩阵,是通过拼接词的上下文中词向量得到。
令为模型中隐藏层的单元数,我们可以计算得到整个模型的参数个数为。假定为100,词表的大小20,000,Context的大小为5,可知第一部分为12,000,第二部分为6,000,000,计算量依然很大。

4.2 参数求解 模型求解参考了Goodman加速最大熵的语言模型训练过程中的工作,将词表中的词进行一个预处理(按类层级划分),这样可以达到不错的加速比,。这样在计算式(2)时,可以转换为,
其中,为树的深度,是属于类别的指示变量。按照上述形式,计算和的复杂度和成正比(相比,要小很多)。

5 Log Bi-Linear Hinton在研究RBM时,结合神经网络语言模型提出了三种基于RBM的语言模型,FRBM(Factored RBM)、Temporal FRBM、Log-Bilinear Language Model,其中Log Bi-Linear为前两者的简化版本,本文中仅介绍Log-BiLinear Language Model。
5.1 模型结构 类似于Log-Linear模型,Log Bi-Linear模型在能量函数部分(EXP上面那个部分的相反数)加入了一个双线性项,注意这里的R是词向量构成的矩阵,C代表此之前的连接权值。
其中,表示和之间的连接关系的参数,表示字典中词向量的矩阵,第行表示第个单词的词向量,表示一个和字典长度相同的指示向量,即词对应词向量可 以表示为; 表示对应的偏置。从上述能量函数可以看出,它是一个双线性函数,需要注意的是这里的能量函数是RBM的幂数部分,其对应的语言模型形式为,
其中,。
Log Bi-Linear的模型结构见下图,


图2 Log Bi-Linear模型结构
上图表示,每个词在词向量矩阵中找到对应的词向量表示,然后通过链接矩阵和当前词(图中)关联,其中关联关系是使用能量函数表示。
5.2 参数求解 套用RBM的求解框架,Log Bi-Linear可以采用Contrast Divergence Learning求解,其参数的梯度表达式,
对于,
对于,
这里表示data distribution ,表示model distribution 。

6 Hierarchical LBL Hinton将Bengio的Hierarchical NNLM和Log Bi-Linear思想结合,提出了Hierarchical Log Bi-Linear Language Model。
6.1 模型结构 Hierarchical LBL是将Hierarchical NNLM和Log Bi-Linear结合起来,对应的语言模型形式,
Log Bi-Linear部分可以简要表示为,
其中,为对应的偏置项(bias),是上下文中的词向量加权,权值为当前词t和上下文中词的关系权值,为词w对应的词向量。
由以上,可以推出HLBL的模型为,
其中,词的在层次(树)结构的编码,是编码路径中第个节点的向量,为Logistic方程。
这里可以允许存在多种层次结构,即每个词对应多种编码,可以将词的所有编码方式求和,即

其中,为词w的编码集合,这词采用多种编码方式能够更好刻画词的不同形式和“语义”,这种思路在后续的SENNA中也有体现。
继承事业,薪火相传
返回列表