04 统计语言模型(n元语言模型)
预训练
预先训练
我们有两个相似的任务 A 和 B,任务 A 已经完成了得到了一个模型 A
任务 B(数据量小)
用到了一个特性:CNN 浅层参数通用
任务 B 就可以使用模型 A 的浅层参数,后面的参数通过任务 B 训练--》1. 冻结(浅层参数不变)2. 微调(变)
任务 B(大数据)可以训练出模型 B(我还可以使用模型 A 的浅层参数,节省训练时间,节省成本)
统计语言模型
语言模型
语言(人说的话)+模型(表示某个东西,完成某个任务)
- P(“判断这个词的词性”),P(“判断这个词的磁性”)
- “判断这个词的
______
”
统计语言模型
用统计的方法去解决上述两个问题
“判断这个词的词性” = “判断”,“这个”,“词”,“的”,“词性”
这句话是序列(有顺序的)
用了一个条件概率的链式法则(概率论)
![image-20220611203051818](../../Library/Application Support/typora-user-images/image-20220611203051818.png)
通过这个法则,我们可以求出每一个词出现的概率,然后连乘,就是这句话出现的概率
解决第二个问题:
“判断这个词的__
”
P(w_next | “判断”,“这个”,“词”,“的”) (1)
词库(词典)V--》新华字典,高处一个集合,把所有词装到集合 V 里
把集合里的每一个词,都进行上一步(1)的计算
词库 V = { “词性”, “火星”}
P(词性| “判断”,“这个”,“词”,“的”)
P(火星| “判断”,“这个”,“词”,“的”)
P(词性| “判断”,“这个”,“词”,“的”,……, “……”)
![image-20220611203813910](../../Library/Application Support/typora-user-images/image-20220611203813910.png)
n 元统计语言模型
P(词性|“这个”,“词”,“的”)
P(火星| “这个”,“词”,“的”)
P(词性|“词”,“的”)
P(火星|“词”,“的”)
P(词性|“的”)
P(火星|“的”)
把 n 个词,取 2 个词(2 元),取 3 个词(3 元)
如何去计算
“词性是动词”
“判断单词的词性”
“磁性很强的磁铁”
“北京的词性是名词”
𝑃(词性|的) = \(\frac{cout(词性,的)}{count(的)}\) = \(\frac{2}{3}\)
平滑策略
P(策略|平滑) = \(\frac{0}{0}\)
![image-20220611204401168](../../Library/Application Support/typora-user-images/image-20220611204401168.png)
统计语言模型
语言模型:计算一句话的概率,计算下一个词可能是什么
统计语言模型:统计的方法去解决语言模型的问题(条件概率)
a 元语言模型:只取 a 个词(马尔科夫链)
平滑策略:
下节课:神经网络语言模型
统计语言模型:神经网络的方法去解决语言模型的问题