A Neural Probabilistic Language Model 神经概率语言模型paper总结

该论文是神经概率模型应用于nlp的开山之作,刚开始看缺乏数学和相关理论知识,十分吃力,看来良好的基础是学术素养提升的前提,在平时也要兼顾基础能力的学习!
Abstract
统计语言模型是为了学习某种语言的单词序列的联合概率密度,但是维度灾难使得模型中的测试序列和训练序列出现不同。
传统的n-gram方法通过组合几个相邻的单词来获得泛化能力。(一篇N-gram的介绍,写的十分简明扼要)这篇论文的目的是:训练一个单词的分布式表达建立一个句子语义相关的指数级模型,来解决维度灾难。
实际本论文的主要贡献是应用了神经网络模型改进了传统的n-gram模型和统计语言模型,并且创建了词特征向量来代表词的所有属性,由此 可以利用更长的上下文,在文本预料上也有了更好的结果。
#相关知识

  1. 推荐算法{模糊匹配(n-gram);精确匹配(KMPBM相较更好)}
  2. 维度灾难:特征过多导致过拟合等问题。
  3. BP(误差逆传播)算法
  4. 梯度下降算法
  5. 多层前馈神经网络
  6. 条件概率,联合概率

1 Introduction
当模拟很多离散随机变量时,维度灾难变得十分明显,单个元素泛化不明显。传统的统计语言模型可以表示一个词的出现概率可以是前面n个词出现情况下的条件概率。
条件概率
n-gram模型中更近的词相关性更高,这样解决了模型建立困难的问题,此时第n个词的表示为:在这里插入图片描述
因为一般来说我们只考虑训练集出现过的连续词的组合或足够频繁的词组,但当在语句中出现从未见过的的情况,我们不想为其分配0概率(因为按照联合概率分布,一个词的概率为零整个句子的概率都为零,严重影响了模型的平滑度)解决方法时更小的上下文。但很明显,预测词前面的几个词不如整个序列携带的信息量多。本文在两点上提高了上述问题的解决方法:1.没考虑超过1-3个的上下文;2.不考虑词与词的相似性。
我们将在1.2给出简单解释,2节给出具体方法。
本文说明了大量数据训练如此大的神经网络的方法时昂贵但是有效的。

1.1用分布式解决唯独灾难
本文思想概括为以下三条:

  1. 为词表中每个词分配一个随机的词特征向量;

  2. 词序列中的联合密度函数由特征向量表示;

  3. 同时学习词特征向量和概率密度的参数;(反向更新参数的同时也更新词的特征向量)
    词的特征的个数应远小于词表的大小。
    1.2与先前工作的关系
    使用神经网络对高维离散分布建模已经被发现可以有效的学习其联合概率。
    2.神经模型
    训练集是一个词序列w1,…,wT,其中wt∈V,词表V是一个大但是有限的集合。模型的目标是要学到一个好的函数来估计条件概率:在这里插入图片描述
    我们把函数分解为两个部分:

    1.一个映射C,从词表中的任意元素i到实向量C(i)∈Rm。它代表关联词表中词的分布特征向量。在实践中,C被表示成一个|V|×m的自由参数矩阵。

    2.词上的概率函数,用C表达:一个函数g,从输入序列的词的上下文特征向量,(C(wt-n+1),…,C(wt-1)),到词表中下一个词i的条件概率分布。g的输出是一个向量(训练结果),向量的第i个元素估计概率,如下图:
    在这里插入图片描述
    作者使用了3层神经网络,并将tanh()双曲线正切函数作为隐层的激活函数,使用softmax(多元上的对率/s型函数)作为输出层的归一化方法。
    在这里插入图片描述 ·············································在这里插入图片描述
    再利用BP算法和梯度下降算法更新权重以及词的特征向量。

文本表述

A,前传(chuan)部分

  1. 文档中取得文本输入C(t)作为样本词的词向量,m为其维度,|v|为其词表大小。
  2. 模型中将传入的所有向量串连成新的向量作为输入向量,传入隐层。
  3. 隐层上由h个神经元节点,每个都接受新的组合向量作为输入向量,并将其乘以权重加上阈值(bias)输出给tanh()也就是激活函数。
  4. tanh()运算结果输出作为softmax函数的输入,因为隐层由h个节点,所以每个为h维向量。
  5. softmax层具有|v|个节点(因为要和词表对应),将输入的h维向量加权加阈值(权重维h维向量的转置,于其相乘。)
  6. 每个softmax节点输出一个概率p,为该节点i为下一个词的预测概率。
  7. softmax输出的所有节点概率和为1.

B,反向更新

  1. 计算softmax的代价函数,与BP的代价函数不同,为logp。
  2. BP算法求梯度和偏导,更新参数
  3. 词向量也要更新(怎么更新还不太懂。。。)

数学表达(打字太不方便了上传笔记照片吧。。)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值