本篇文章是词元分析算法的最后一篇文章,与前面文章中 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