语言模型学习-统计语言模型 神经语言模型

语音识别

语音识别: 声音-> 文本

声音本质是一种波

将波按时间段切分很多帧,如25ms一段

之后进行声学特征提取,将每一帧转化成一个向量

以声学特征提取后的向量为输入,经过声学模型,预测得到音素

音素与拼音类似,但要考虑声调

音素序列对应多条文本序列,由语言模型挑选出成句概率最高的序列

使用beam search 或维特比的方式解码

手写识别

识别模型将图片中文字转化为候选汉字,再有语言模型挑选出成句概率最高的序列

输入法

输入即为拼音序列,每个拼音自然的有多个候选汉字,根据语言模型挑选高概率序列

输入法是一个细节繁多的任务,在语言模型这一基础算法上,需要考虑常见的打字手误,常见误读,拼音缩略,中英混杂,输出符号,用户习惯等能力

手写输入法,语音输入法同理

语言模型的分类

由简单到复杂

统计语言模型(SLM) ngram语言模型等

神经语言模型(NLM) rnn语言模型等

预训练模型(PLM) Bert,GPT等

大语言模型(LLM) ChatGPT等

N-gram语言模型

用S代表句子,w代表单个字或词

S=w1w2w3w4w5..wn

P(S)=P(w1,w2,w3,w4,w5,...wn)

成句概率 -> 词W1~Wn按顺序出现的概率

P(w1,w2,w3,..wn) = P(w1)P(w2|w1)P(w3|w1,w2)...P(wn|w1,...,wn-1)

N-gram语言模型怎么计算呢

以字为单位

P(今天天气不错) = P(今)*P(天|今)*P(天|今天)*P(气|今天天)*P(不|今天天气)*P(错|今天天气不)

以词为单位

P(今天 天气 不错) = P(今天)* P(天气|今天)*P(不错|今天 天气)

N-gram的困难

句子太多了

对任意一门语言,N-gram数量都非常庞大,无法穷举,需要简化

那么有没有缓解的办法:

有个不太好的解决办法,马尔科夫假设:

P(wn|w1,...,wn-1)≈ P(wn|wn-3,wn-2,wn-1) 一般常见的是3,4,5

假设第n个词出现的概率,仅受其前面有限个词影响

P(今天天气不错) = P(今)*P(天|今)*P(天|今天) * P(气|天天) * P(不|天气) * P(错|气不)

但是马尔科夫假设的缺陷也很明显:

1.影响第n个词的因素可能出现在前面很远的地方

例如: 我读过关于马尔科夫生平的书

2.影响第n个词的因素可能出现在其后面

3.影响第n个词的因素可能并不在文中

但是马尔科夫假设下依然可以得到非常有效的模型

但是有个问题就是 如何给出预料中没有出现过的词或ngram概率

就比如这个预料 ,P(今天 天气 糟糕) = P(今天)*(天气|今天)*P(糟糕|天气)

但是糟糕并没有出现过,那么概率是应该是0,那么问题来了,如果是0合适吗,模型的泛化性太低了,那么模型几乎不合格

那么有什么策略可以解决

平滑策略,这个问题也被称为平滑问题

理论上,任意的词组合成的句子,概率都不应当为零

如何给没见过的词或ngram分配概率即为平滑问题,也称折扣问题

平滑方法

1.回退(backoff)

当三元组a b c 不存在时,退而寻找b c 二元组的概率

P(c|a b) = P(c|b) * Bow(ab)

Bow(ab) 称为二元组a b 的回退概率

回退概率有很多计算方式,甚至可以设定为常数

回退可以迭代进行,如序列 a b c d

P(d|a b c) =P(d | b c) *Bow(abc)

P(d|bc) = P(d|c) * Bow(bc)

P(d|c) = P(d) * Bow(c)

平滑方法迭代的最后会回退到单字或词,但如果没存在怎么办

加1平滑 add - one smooth

对于1gram概率P(word) = Count(word) +1 / Count(totalword) +V

V为词表大小

对于高阶概率同意可以 PAdd-1(wi|wi-1) = C(wi-1,wi) +1 /C(wi-1)+V

还有另一种方法

将低频词替换为<UNK>

预测中遇到的未见过的词,也用<UNK>代替

P(<UNK>|一语成)

这是一种nlp处理为的登陆词(OOV)的常见方法

语言模型的评价指标

困惑度 perplexity

神经语言模型

与n-gram相比,神经网络语言模型优势

向量化表示语义信息优化字符统计,泛化性更好

例如: 猫和狗,两向量相似度极高,但是n-gram只是统计

输入长度不影响模型大小,长距离建模优势

例如 n-gram 计算 今天天气不错 ,P(wn) = P(wn| wn-3,wn-2,wn-1) 根据马尔科夫假设只考虑前 n-3个词,不能考虑太多

softmax带来的自带平滑

对下游任务的适配更加方便

两类语言模型的对比

NN语言模型需要进行矩阵计算,NN语言模型慢

其他上面好像有

相关推荐
汀、人工智能2 小时前
AI Compass前沿速览:聚焦 GPT-Image-2、Qwen3.6-Max-Preview、ClawLess 与 AgentScope Tuner
人工智能·gpt·chatgpt
IT观测2 小时前
2026年视频格式转换器哪个好?国内视频音频格式转换软件功能对比与选型指南
人工智能·音视频
醉卧考场君莫笑2 小时前
NLP(基于统计的任务范式与单词向量化)
人工智能·自然语言处理
xiaotao1312 小时前
03-深度学习基础:LangChain应用开发
人工智能·深度学习·langchain
knight_9___2 小时前
RAG面试题4
开发语言·人工智能·python·面试·agent·rag
newsxun2 小时前
布局大湾区“黄金内湾”,HECHTER CAFE亚洲首店落子万象滨海购物村
大数据·人工智能
Y学院2 小时前
Spring AI Alibaba 高质量实战教程(从入门到企业级落地)
java·人工智能·spring·自然语言处理
国科安芯2 小时前
抗辐照DCDC电源模块在商业卫星通信载荷中的应用
网络·人工智能·单片机·嵌入式硬件
武汉唯众智创2 小时前
唯众人工智能实训装置:AIoT教学落地的全能解决方案,从入门到实战一步到位
人工智能·aiot·人工智能实训室·人工智能实训装置·职校实训室解决方案