语言模型(属于generative model)

语言定义为字母表的某一子集
统计学语言模型在概率的角度看语言production,从词汇表分配随机的token序列
P(<w1,w2,…wn>)

  • generative model 不考虑condition,语言模型就是, 回答问题2,3(联合分布等),可以用于发现outlier
  • descrimitive 例如逻辑回归 classification model P(x|c),只能回答问题1

generative model 例子(贝叶斯)

nlp 意图 领域 nlp comprehensive_nlp 意图 领域

LM

V->vocalbularies
最近更多的subword 和字母基础的语言模型广泛应用
现在讨论word based language modeling
概率语言模型用于语法检查 预测输入 语音转换,chatbot,翻译,总结等

连续概率建模(token 序列)

nlp 意图 领域 nlp comprehensive_最小化_02


当你想要得出prob of the network,此时也是generative model:classification

nlp 意图 领域 nlp comprehensive_nlp 意图 领域_03


nlp 意图 领域 nlp comprehensive_sed_04


可以画出树形图->生成text

可能是sub-optimal(第一次选择时很大 后面都很小)

K=5 五个最大的->避免局部最优

Evalution

外部:作为spell checker的一部分
内在:分配的prob.与测试集的文本对应的如何

最常用-perplexity(依赖length)how surprising

nlp 意图 领域 nlp comprehensive_语言模型_05


连续prob.连乘(geometric mean)->all words in thecorpus

->log

nlp 意图 领域 nlp comprehensive_nlp 意图 领域_06


->平均交叉熵最小化/平均最大似然估计(MLE)/最小化模型的perplexity

N-gram based modelling

更经典的方式,用现有的counts获取最大似然估计

但是在实际应用时大部分文字不仅出现一次,而是有很多可能的文字。没有足够的data

nlp 意图 领域 nlp comprehensive_最小化_07


解决方案是转换为连续概率:

nlp 意图 领域 nlp comprehensive_sed_08

估计概率

nlp 意图 领域 nlp comprehensive_最小化_09


存在数据稀疏的问题

nlp 意图 领域 nlp comprehensive_最小化_10


限制序列的长度为K+1 为N-grams语言模型

nlp 意图 领域 nlp comprehensive_sed_11

Unigram模型

最简单的N-gram语言模型(w1,…,wn)

p(w1)p(w2)…p(wn)

nlp 意图 领域 nlp comprehensive_sed_12


忽略词的顺序,最可能的序列就是那些包含最频繁词的序列

Bigram模型(N=2)

nlp 意图 领域 nlp comprehensive_sed_13


计算序列概率 取出第一次乘以每个词和他前一个词的条件概率

nlp 意图 领域 nlp comprehensive_nlp 意图 领域_14

马尔科夫语言模型

N-gram 是finite state machines

增加N

实际应用时人类语言很复杂 更高的N才能有好的效果
概率是爆炸增长的
也会随之而来一些问题,如数据稀疏,模型size大

smoothing

1 additive smoothing,

每次count加上 theta,一般选择为1

分母加上theta V 保证概率和为1

nlp 意图 领域 nlp comprehensive_sed_15

2 interpolation 插入

加入一个weight-从unigram 频率得到的概率
nlp 意图 领域 nlp comprehensive_nlp 意图 领域_16