1. 基本概念

1.1语言模型的概念

生成文本序列的通常方式是训练模型在给定所有先前词/字符的条件下预测下一个词/字符出现的概率。此类模型叫作统计语言模型.
任意语言模型的主要目的都是学习训练文本中字符/单词序列的联合概率分布,即尝试学习联合概率函数。从而捕捉训练文本的统计结构。

记W=w1K=(w1,...,wK)W=w_1^K=(w_1,...,w_K)W=w1K​=(w1​,...,wK​)表示由K个词w1,...,wKw_1,...,w_Kw1​,...,wK​按顺序构成的一个句子。则这个句子的概率为P(W)=P(w1K)=P(w1,...,wK)//联合概率=P(w1)P(w2∣w1)P(w3∣w1,w2)…P(wK∣w1,w2,...,wK−1)=P(w1)P(w2∣w11)P(w3∣w12)...P(wK∣w1K−1)//记为向量形式=∏iP(wi∣w1i−1)P(W)=P(w_1^K)=P(w_1,...,w_K)//联合概率 \\=P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)…P(w_K|w_1,w_2,...,w_{K-1}) \\=P(w_1)P(w_2|w_1^1)P(w_3|w_1^2)...P(w_K|w_1^{K-1})//记为向量形式\\=\prod_{i}P(w_i|w_1^{i-1})P(W)=P(w1K​)=P(w1​,...,wK​)//联合概率=P(w1​)P(w2​∣w1​)P(w3​∣w1​,w2​)…P(wK​∣w1​,w2​,...,wK−1​)=P(w1​)P(w2​∣w11​)P(w3​∣w12​)...P(wK​∣w1K−1​)//记为向量形式=i∏​P(wi​∣w1i−1​)

1.2马尔可夫假设

一个词出现的概率只与它前面的n-1个词有关
P(wi∣w1i−1)≈P(wi∣wi−n+1i−1)P(w_i|w_1^{i-1})\approx P(w_i|w_{i-n+1}^{i-1})P(wi​∣w1i−1​)≈P(wi​∣wi−n+1i−1​)
因此:
P(W)=P(w1K)=P(w1,...,wK)=P(w1)P(w2∣w1)P(w3∣w1,w2)…P(wK∣w1,w2,...,wK−1)≈∏iP(wi∣wi−n+1i−1)//马尔可夫n元假设≈P(w1)P(w2∣w1)P(w3∣w1,w2)…P(wn∣wn−2,wn−1)//马尔可夫三元假设≈P(w1)P(w2∣w1)P(w3∣w2)...P(wn∣wn−1)//马尔可夫假设二元模型P(W)=P(w_1^K) = P(w_1,...,w_K)\\ =P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)…P(w_K|w_1,w_2,...,w_{K-1}) \\\approx \prod_i P(w_i|w^{i-1}_{i-n+1})//马尔可夫n元假设 \\\approx P(w_1)P(w_2|w_1)P(w_3|w_1,w_2)…P(w_n|w_{n-2},w_{n-1})//马尔可夫三元假设 \\\approx P(w_1)P(w_2|w_1)P(w_3|w_2)...P(w_n|w_{n-1})//马尔可夫假设 二元模型P(W)=P(w1K​)=P(w1​,...,wK​)=P(w1​)P(w2​∣w1​)P(w3​∣w1​,w2​)…P(wK​∣w1​,w2​,...,wK−1​)≈i∏​P(wi​∣wi−n+1i−1​)//马尔可夫n元假设≈P(w1​)P(w2​∣w1​)P(w3​∣w1​,w2​)…P(wn​∣wn−2​,wn−1​)//马尔可夫三元假设≈P(w1​)P(w2​∣w1​)P(w3​∣w2​)...P(wn​∣wn−1​)//马尔可夫假设二元模型由大数定理,概率用频率近似:P(wi∣wi−1)=P(wi−1,wi)P(wi−1)≈count(wi−1,wi)count(wi−1)P(w_i|w_{i-1})=\frac{P(w_{i-1},w_i)}{P(w_{i-1})}\approx \frac{count(w_{i-1},w_i)}{count(w_{i-1})}P(wi​∣wi−1​)=P(wi−1​)P(wi−1​,wi​)​≈count(wi−1​)count(wi−1​,wi​)​

1.3语言模型的目标函数

极大似然法max∏w∈CP(w∣Context(w))=∑w∈ClogP(w∣Context(w))max\prod_{w\in \mathcal C}P(w|Context(w))\\=\sum_{w \in \mathcal C}logP(w|Context(w))maxw∈C∏​P(w∣Context(w))=w∈C∑​logP(w∣Context(w))
其中Context(w)Context(w)Context(w)等价于上面的wi−n+1i−1w^{i-1}_{i-n+1}wi−n+1i−1​

1.4语言模型的评价指标

1.4.1实用方法

通过查看该模型在实际应用(如拼写检查、机器翻译)中的表现来评价

  • 优点:直观、实用
  • 缺点:缺乏针对性、不够客观

1.4.2理论方法:困惑度(preplexity)

  • 基本思想:给测试集的句子赋予较高概率值的语言模型较好,当语言模型训练完之后,测试集中的句子都是正常的句子,那么训练好的模型就是在测试集上的概率越高越好
  • 公式表示:

2. n元语法模型(n-gram)

由于n-gram语言模型的优异性能和高效实现,其作为统治性的语言建模方法已经有数十年了。

2.1缺点:

  • 一是数据稀疏性,鲁棒性参数估计需要复杂的平滑技术。
  • 二是在于n阶马尔科夫假设,预测的词概率值依赖于前n-1个词,这样更长距离上下文依赖就被忽略了。

3. 循环神经网络语言模型(RNNLMs)

RNNLMs将每个词映射到一个紧凑的连续向量空间,该空间使用相对小的参数集合并使用循环连接来建模长距离上下文依赖。
从而RNNLMs就为n-gram的两个关键问题提供了解决方案。并且,RNNLMs在语音识别任务中相对于n-gram语言模型表现出了重大的提升,这导致了其大范围的应用。

3.1缺点:

  • 训练RNNLMs对计算量要求苛刻
  • 处理大量数据时缓慢的训练速度限制了RNNLMs的使用。

4. 长短期记忆网络(LSTM)

4.1优点:

使用LSTM模型可以更好的捕捉到较长距离的依赖关系。因为LSTM通过训练过程可以学到记忆哪些信息和遗忘哪些信息。

4.2缺点:

利用LSTM对句子进行建模时无法编码从后到前的信息

5. 双向长短期记忆网络(BiLSTM)

通过BiLSTM可以更好的捕捉双向的语义依赖。

参考资料:

  • 从字符级的语言建模开始,了解语言模型与序列建模的基本概念
    https://baijiahao.baidu.com/s?id=1597625921226025278&wfr=spider&for=pc

语言模型总结(待完善)相关推荐

  1. 【自然语言处理】自然语言处理(NLP)知识结构总结

    感谢原创博主,转自:https://blog.csdn.net/meihao5/article/details/79592667 自然语言处理知识太庞大了,网上也都是一些零零散散的知识,比如单独讲某些 ...

  2. 语音识别技术综述(转)

    语音识别是一门交叉学科,语音识别正逐步成为信息技术中人机接口的关键技术,语音识别技术与语音合成技术结合使人们能够甩掉键盘,通过语音命令进行操作.语音技术的应用已经成为一个具有竞争性的新兴高技术产业. ...

  3. 语音识别技术是什么 语音识别基本方法介绍【图文】

    语音识别技术,语音识别技术是什么意思 语音识别技术,也被称为自动语音识别Automatic Speech Recognition,(ASR),其目标是将人类的语音中的词汇内容转换为计算机可读的输入,例 ...

  4. 自然语言处理基本问题

    自然语言处理知识太庞大了,网上也都是一些零零散散的知识,比如单独讲某些模型,也没有来龙去脉,学习起来较为困难,于是我自己总结了一份知识体系结构,不足之处,欢迎指正.内容来源主要参考黄志洪老师的自然语言 ...

  5. python自然语言处理路线图_python自然语言处理(一)

    自言语言处理基础知识 参考:https://blog.csdn.net/meihao5/article/details/79592667 英文资料: http://github.com/lovesof ...

  6. 《统计自然语言处理》知识结构总结

    一.自然语言处理概述 1)自然语言处理:利用计算机为工具,对书面实行或者口头形式进行各种各样的处理和加工的技术,是研究人与人交际中以及人与计算机交际中的演员问题的一门学科,是人工智能的主要内容. 2) ...

  7. 【总结】自然语言处理(NLP)算法:概述与分类

    摘要:NLP概述.主要参考自然语言处理(NLP)知识结构总结和知乎上的一些问答. 目录 NLP界神级人物 NLP知识结构 1.概述 2.形式语言与自动机 3.语言模型 4.概率图模型,生成模型与判别模 ...

  8. NLP领域基本名词、算法

    0.NLP前言 ·NLTK(Python自然语言工具包)用于诸如标记化.词形还原.词干化.解析.POS标注等任务.该库具有几乎所有NLP任务的工具. ·Spacy是NLTK的主要竞争对手.这两个库可用 ...

  9. GPT-3 不够 Open,BigScience 构建开放语言模型,规模小 16 倍

    编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 大约一年前,总部位于纽约布鲁克林的自然语言处理初创公司 Hugging Face 推出了 BigScience.这是一个拥有 9 ...

  10. 270亿参数、刷榜CLUE,阿里达摩院发布最大中文预训练语言模型PLUG(开放测试)...

    转自:机器之心 经历「大炼模型」后,人工智能领域正进入「炼大模型」时代.自去年 OpenAI 发布英文领域超大规模预训练语言模型 GPT-3 后,中文领域同类模型的训练进程备受关注.今日,阿里达摩院发 ...

最新文章

  1. CVPR 2021:记一次神奇的 Rebuttal 经历
  2. Android 自定义控件一 带圆形进度的按钮 ControlButton2
  3. SAP OData Service group - get entity set
  4. Android之提示androidx.recyclerview.widget.LinearLayoutManager@51ddcd is already attached to a RecyclerV
  5. 为什么我要转载文章?
  6. 进击的Kubernetes调度系统(一):SchedulingFramework
  7. Fragment容器Activity
  8. 【幽默】工作搞不好的原因
  9. php 密匙加密解密,带密匙的php加密解密示例分享
  10. Thrift java.net.SocketException: Broken pipe问题分析定位
  11. 【ShaderLab学习】AlphaTest AlphaBlend理解[2]
  12. Notion,一款优秀的程序员记笔记软件,值得推荐!
  13. 制作u盘winpe启动盘_如何制作纯净的系统U盘启动盘
  14. spring静态资源配置
  15. B2C,B2B,c2c是什么?
  16. 2022中元节前后几天不出门?前三天后三天不能出门是真的吗?
  17. 微信小程序对接蓝牙设备连接全过程
  18. ffmpeg中支持的音频互相转换的采样格式和声道分布
  19. Spring——DAO层、Spring JDBC、Spring事务控制
  20. TensorRT debug及FP16浮点数溢出问题分析

热门文章

  1. Nokia 920板砖自救(理论上通用,升级Win10成板砖也可以用这个恢复)
  2. 使用Sqlserver事务发布实现数据同步(转)
  3. Apache Prefork、Worker和Event三种工作模式分析
  4. C#一个方法返回多个值
  5. Spring的bean管理(注解注入属性)
  6. python复杂非线性方程_python – 如何解决Sympy中的非线性方程?
  7. 多边形面积的求法(已知每个点的坐标)hdu2036
  8. STM32——库函数版——数码管流动显示程序
  9. SLAM--BA优化
  10. 如你以安全模式启动计算机,如何以安全模式启动计算机?