主要学习资料是cs224n的notes和Michael Collins的notes,和宗成庆的统计自然语言处理,这里并不是一个完整的翻译笔记,而是在阅读的过程中对其中不懂的东西的一些解释,以及避免遗忘做的一些笔记,当然初入NLP,难免对一些知识理解不透或者有所偏差。
Introduction
Phrase-Based Translation Models这一章节比较深奥,自己也是看的半懂,就不写上来了。
log-linear 模型在自然语言处理上使用非常广泛,其最主要的原因在于其灵活性,允许很多特征被使用在该模型上,相比于之前的简单估计技术(比如HMMs的标记问题,PCFGs的解析问题)。
Motivation
再次思考语言模型问题,其任务是得出下面条件概率的估计:
对于任一序列,得出在序列条件下,出现单词的概率。在trigram语言模型中,我们有如下假设:
对于上面的概率求解,我们前面提到过使用一种平滑技术:
Trigram语言模型十分有效,但是在使用上下文上相对狭窄了,比如我们想去估计单词model
出现的概率在条件下:
我们可以思考在单词下的概率,而忽略:;我们也可以考虑前一个单词的词性来对当前单词的概率:;实考前一个单词后缀对当前单词的影响:…..等等很多,这样我们给每一个赋予权重参数,就可以写成如下形式:
显然如果这样做的话,会非常的麻烦,那么如何做呢,见下面部分。
Log-Linear Models
基本定义:作为输入集,作为输出集(标签集,假设是一个有限集)。表示模型特征和参数的个数,函数表示任意一个对匹配的特征向量,参数向量.
将模型加上参数后定义的条件概率模型如下:
其中,读作在参数下,基于的的条件概率。
Features
关于上面提到的特征向量的计算如下图所示:
这里提到了trigram
模型的例子,如上面所示,如果词汇表的大小为,那么对trigram
模型来说将会有个特征,这里用表示将每一个trigram对应到一个独一无二的整数。同理bigram
模型,Unigram
模型也是如此,而且这三个模型对应的整数不重叠。
从上面来说,特征会非常的稀疏,这里我们只取值为1的特征:
这样就将特征的复杂度从降到,且,这样特征向量的求解就变成如下:
Parameter Estimation in Log-Linear Models
这里对上面的条件概率取对数就是我们的对数线性模型,假设我们有训练集,给定一个参数,对于任意的例子,其对数条件概率如下:
那么全部训练集中最大似然的对数条件概率和如下:
我们要找到使最大的,即:
这里举个例子,假设在训练集中的第100个例子中的trigram有:
在其它例子中都没有,我们的目的是希望最大,这样在就会取无穷大,那么对应例子的对数条件概率就会最大:
由于其它例子没有该特征,不会对其它例子产生影响,但是显然这样是不合理的,模型只会对当前的训练集起到很好的作用,即过拟合,泛化能力变差,我们需要模型的泛化能力变强,需要对参数进行约束,即加上惩罚项:
上面这个式子就是机器学习中的损失函数,使用梯度下降就可以找到最优解。
对求导:
关于上面的证明如下:
取其中的一部分分析
对上面的第一部分求导:
对上面第二部分(应该是看成以e为底,不过常数不影响):
这样就完了,后面两部分比较简单,都是在讲前面的模型用现在的对数线性模型替换后的结果及其对比,就不再做笔记了,此部分完结。。。