词法分析器源码(词元分析算法(三) —ULM(unigram languange model) 算法)

本篇文章是词元分析算法的最后一篇文章,与前面文章中 BPE 算法和 wordpiece 算法不一样的是,前面两种算法是不断扩充词表,ULM 算法是从一个较大的词表集合中,逐步删掉概率较低的子词,满足最终要求的词表大小,具体论文中算法步骤如下:

ULM 算法步骤

论文具体想表达解释一下:

1.初始时,建立一个足够大的词表。一般可用语料中的所有字符加上常见的子字符串初始化词表,也可以通过BPE算法初始化。

2.重复下面步骤,直到词表大小减少到设定期望范围。

a) 针对当前词表,用EM算法求解每个子词在语料上的概率。

b) 对于每个子词,计算当该子词被从词表中移除时,总的loss降低了多少,记为该子词的loss电信大流量卡

c) 将子词按照loss大小进行排序,丢弃一定比例loss最小的子词(比如20%),保留下来的子词生成新的词表。这里需要注意的是,单字符不能被丢弃,这是为了避免OOV情况。

由于缺少网络资料讲解这里的EM 算法,这里串讲一下如何求解每个子词的概率分布:

由于单词出现次数服从多元多项式分布:

先设定几个符号:

单词出现的次数分布

每个词出现的概率

词分布次数服从多项式分布

所以这里假设 p 服从狄利克雷分布记为Dir

词分布概率服从含有参数a 的狄利克雷分布

共轭关系表达式

上述共轭关系我们可以这样理解,先验Dirichlet分布参数为α,多项式分布实验结果为m,则后验Dirichlet分布的参数为α+m。

下面分电信大流量卡析EM算法核心步骤:

下面是文档集合W出现的极大似然概率表达式:

极大似然估计

归一化因子

目标是寻找文档集合W最大概率出现时候的分布:

每个词出现的概率

EM 算法步骤:

参数初始化,BPE算法生成子词序列,并将子词数量作为狄利克雷分布先验参数 a 的初始参数 ,在0~1 之间随机初始化pi。

E step: 在初始化 p 的情形下,计算下面后验分布概率和p(W) 取对数的期望.

单词分布后验概率

M step: 固定上述后验分布参数,在观测变量最大p(W,a) 最大时候,调整分布参数 p(p|a)

不断重复上述E、M 步骤,直至p(W) 收敛;最终得到p 的分布如下:

最终参数取值


友情提醒: 请添加客服微信进行免费领取流量卡!
QQ交流群:226333560 站长微信:qgzmt2

原创文章,作者:sunyaqun,如若转载,请注明出处:https://www.dallk.cn/66573.html

(0)
sunyaqunsunyaqun
上一篇 2024年11月9日
下一篇 2024年11月9日

相关推荐

发表回复

登录后才能评论