- 给定文本序列x1,…,xT, 语言模型的目标是估计联合概率 $p(x_1,\dots, x_T) $
- 应用
- 预训练模型 (eg. BERT, GPT-3)
- 生成本文, 给定前面几个词, 不断的使用xt∼p(xt∣x1…,xt−t)生成后续文本
- 判断多个序列中哪个更常见, e.g. “to recognize speech?vs “to wreck a nice beach"
N 元语法
当序列很长时, 因为文本量不够大, 很可能n(x1,…,xT)≤1
使用马尔科夫假设可以缓解这个问题:
马尔科夫假设:假设当前当前数据只跟 t 个过去数据点相关
一元语法:p(x1,x2,x3,x4)=p(x1)p(x2)p(x3),p(x4)
二元语法:p(x1,x2,x3,x4)=p(x1)p(x2∣x1)p(x3∣x2),p(x4∣x3)
三元语法:p(x1,x2,x3,x4)=p(x1)p(x2∣x1)p(x3∣x2,x1),p(x4∣x3,x2)
语言模型估计文本序列的联合概率
使用统计方法时常采用n元语法
衡量一个语言模型的好坏可以用平均交叉熵
π=n1i=1∑n−logp(xt∣xt−1)
- p是语言模型的预测概率, xt是真实词
历史原因 NLP 使用困惑度 exp(π) 来衡量,
是平均每次可能选项
语言模型本质上是 n 次分类问题