NLP 学习笔记之 Log-Linear Models

主要学习资料是cs224n的notes和Michael Collins的notes,和宗成庆的统计自然语言处理,这里并不是一个完整的翻译笔记,而是在阅读的过程中对其中不懂的东西的一些解释,以及避免遗忘做的一些笔记,当然初入NLP,难免对一些知识理解不透或者有所偏差。

Introduction

Phrase-Based Translation Models这一章节比较深奥,自己也是看的半懂,就不写上来了。
log-linear 模型在自然语言处理上使用非常广泛,其最主要的原因在于其灵活性,允许很多特征被使用在该模型上,相比于之前的简单估计技术(比如HMMs的标记问题,PCFGs的解析问题)。

Motivation

再次思考语言模型问题,其任务是得出下面条件概率的估计:

对于任一序列,得出在序列条件下,出现单词的概率。在trigram语言模型中,我们有如下假设:

对于上面的概率求解,我们前面提到过使用一种平滑技术:

Trigram语言模型十分有效,但是在使用上下文上相对狭窄了,比如我们想去估计单词model出现的概率在条件下:

我们可以思考在单词下的概率,而忽略;我们也可以考虑前一个单词的词性来对当前单词的概率:;实考前一个单词后缀对当前单词的影响:…..等等很多,这样我们给每一个赋予权重参数,就可以写成如下形式:

显然如果这样做的话,会非常的麻烦,那么如何做呢,见下面部分。

Log-Linear Models

基本定义:作为输入集,作为输出集(标签集,假设是一个有限集)。表示模型特征和参数的个数,函数表示任意一个对匹配的特征向量,参数向量.
将模型加上参数后定义的条件概率模型如下:

其中读作在参数下,基于的条件概率。

Features

关于上面提到的特征向量的计算如下图所示:
nlp0601
这里提到了trigram模型的例子,如上面所示,如果词汇表的大小为,那么对trigram模型来说将会有个特征,这里用表示将每一个trigram对应到一个独一无二的整数。同理bigram模型,Unigram模型也是如此,而且这三个模型对应的整数不重叠。
从上面来说,特征会非常的稀疏,这里我们只取值为1的特征:

这样就将特征的复杂度从降到,且,这样特征向量的求解就变成如下:

Parameter Estimation in Log-Linear Models

这里对上面的条件概率取对数就是我们的对数线性模型,假设我们有训练集,给定一个参数,对于任意的例子,其对数条件概率如下:

那么全部训练集中最大似然的对数条件概率和如下:

我们要找到使最大的,即:

这里举个例子,假设在训练集中的第100个例子中的trigram有:

在其它例子中都没有,我们的目的是希望最大,这样在就会取无穷大,那么对应例子的对数条件概率就会最大:

由于其它例子没有该特征,不会对其它例子产生影响,但是显然这样是不合理的,模型只会对当前的训练集起到很好的作用,即过拟合,泛化能力变差,我们需要模型的泛化能力变强,需要对参数进行约束,即加上惩罚项:

上面这个式子就是机器学习中的损失函数,使用梯度下降就可以找到最优解。
求导:

关于上面的证明如下:
取其中的一部分分析

对上面的第一部分求导:

对上面第二部分(应该是看成以e为底,不过常数不影响):

这样就完了,后面两部分比较简单,都是在讲前面的模型用现在的对数线性模型替换后的结果及其对比,就不再做笔记了,此部分完结。。。

如果觉得有帮助,给我打赏吧!