78 Chapter 2. 统计语言建模基础 肖桐 朱靖波
2.5 小结及拓展阅读
本章重点介绍了如何对自然语言处理问题进行统计建模,并从数据中自动学
统计模型的参数,最终使用学习到的模型对新的问题进行处理。之后,将这种思想应
用到语言建模任务中,该任务与机器翻译有着紧密的联系。通过系统化的建模,
以发现:经过适当的假设和化简,统计模型可以很好地描述复杂的自然语言处理
题。进一步,本章对面向语言模型预测的搜索方法进行了介绍。相关概念和方法
会在后续章节的内容中被广泛使用。
此外,有几方面内容,读者可以继续深入了解:
n-gram 语言模型中,由于语料中往往存在大量的低频词以及未登录词,
型会产生不合理的概率预测结果。因此本章介绍了三种平滑方法,以解决上述
问题。实际上,平滑方法是语言建模中的重要研究方向。除了上文中介绍的三
种平滑方法之外,还有如 JelinekMercer 平滑
[59]
Katz
平滑
[60]
以及
Witten
Bell
平滑等等
[61, 62]
的平滑方法。相关工作也对这些平滑方法进行了详细对比
[42, 63]
除了平滑方法,也有很多工作对 n-gram 语言模型进行改进。比如,对于形态
学丰富的语言,可以考虑对单词的形态变化进行建模。这类语言模型在一些
机器翻译系统中也体现出了很好的潜力
[64, 65, 66]
此外,如何使用超大规模数据
进行语言模型训练也是备受关注的研究方向。比如,有研究者探索了对超大
语言模型进行压缩和存储的方法
[45, 67, 68]
另一个有趣的方向是,利用随机存储
算法对大规模言模型进有效存储
[69, 70]
,比如,在语言型中使用 Bloom
Filter 等随机存储的数据结构。
本章更多地关注了语言模型的基本问题和求解思路,但是基于 n-gram 的方法
并不是语言建模的唯一方法。从现在自然语言处理的前沿看,端到端的深度
学习方法在很多任务中都取得了领先的性能。语言模型同样可以使用这些方
[71]
而且在近些年取得了巨大成功。例如,最早提出的前馈神经语言模型
[72]
和后来的基于循环单元的语言模型
[73]
基于长短期记忆单元的语言模型
[74]
及现在非常流行的 Transformer
[23]
。关于神经语言模型的内容,会在第九章进
行进一步介绍。
最后,本章结合语言模型的序列生成任务对搜索技术进行了介绍。类似地,
器翻译任务也需要从大量的翻译候选中快速寻找最优译文。因此在机器翻译
任务中也使用了搜索方法,这个过程通常被称作解码。例如,有研究者在基
于词的翻译模型中尝试使用启发式搜索
[75, 76, 77]
以及贪婪搜索方法
[78] [79]
,也有
研究者探索基于短语的解码方法
[80, 81]
。此外,解码方法还包括限状态机
[82] [83]
[84, 85, 86, 87, 88]
十四章进行介绍。