语言模型(Language Model)问题

发布时间:2016-01-16  栏目:自然语言处理  评论:0 Comments

语言模型,即用来计算一个句子出现概率的模型。

 

主要应用场合:

(1)语音识别(Speech Recognition)。同样的发音可能识别出很多可能的句子,使用它们出现的概率,取最大的概率来作为是别的结果。

(2)光学字符识别(Optical Character Recognition)

(3)手写识别(Handwriting Recognition)

(4)机器翻译

语言模型对NLP中的很多问题的都很有帮助。

 

用语言模型中最常用的是Trigram Language Model,对应的是二阶马尔科夫链。

在马尔科夫过程中,定义x-1=x0=*, xn=STOP,则

P(X1=x1, X2=x2, …, Xn=xn) = ∏i=1~n P(Xi=xi|Xi-2=xi-2, Xi-1=xi-1)

 

一个trigram LM由如下部分组成:

1. 一个有限集V (比如词汇表)

2. 对每一个trigram: u,v,w,都有一个参数q(w|u,v),使得w∈V∪{STOP},并且u.v∈V∪{*}

针对每一个句子x1,x2,…,xn,其中xi∈V,i=1,2,…,n且xn=STOP,根据trigram模型,句子的概率为:

p(x1,x2,…xn)=∏i=1~n q(xi|xi-2,xi-1)

其中x-1=x0=*

 

根据trigram LM, 句子出现的概率,就可以分解成每个单词在前两个单词出现的情况下出现的概率问题,这个问题可以根据最大似然估计计数来进行计算,但是会有稀疏性问题(参数过多出现零值分母为零无法计算等)问题,由此引出各种平滑(smoothing)方法。

 

语言模型构造完成后,如何确定好坏呢? 目前主要有两种评价方法:

  • 实用方法:通过查看该模型在实际应用(如拼写检查、机器翻译)中的表现来评价,优点是直观、实用,缺点是缺乏针对性、不够客观;
  • 理论方法:迷惑度/困惑度/混乱度(preplexity),其基本思想是给测试集赋予较高概率值的语言模型较好。

语言模型的性能进行评价主要使用困惑度(perplexity)或者交叉熵(cross-entropy),困惑度或者交叉熵越小,则语言模型越好。

 

 

数据平滑(data smoothing)是用来调整最大似然估计,使之产生更准确的概率(解决零概率问题)的一种技术,包括很多种:

(1)加法平滑算法(additive smoothing)

(2)古德-图灵(Good-Turing)估计法

(3)Katz平滑方法

(4)Jelinek-Mercer平滑方法(Linear Interpolation)

(5)Written-Bell平滑方法

(6)绝对减值法(Discounting Methods)

(7)Kneser-Ney平滑方法

 

留下评论

You must be logged in to post a comment.

相册集

pix pix pix pix pix pix

关于自己

杨文龙,微软Principal Engineering Manager, 曾在各家公司担任影像技术资深总监、数据科学团队资深经理、ADAS算法总监、资深深度学习工程师等职位,热爱创新发明,专注于人工智能、深度学习、图像处理、机器学习、算法、自然语言处理及软件等领域,目前发明有国际专利19篇,中国专利28篇。

联系我

个人技术笔记

welonshen@gmail.com

2015 in Shanghai