当前位置:   article > 正文

机器翻译中分词方法--BPE(Byte Pair Encoding)_机器翻译bpe

机器翻译bpe

参考文章:深入理解NLP Subword算法:BPE、WordPiece、ULM
使用API:

前言

Subword算法如今已经成为了一个重要的NLP模型性能提升方法。自从2018年BERT横空出世横扫NLP界各大排行榜之后,各路预训练语言模型如同雨后春笋般涌现,其中Subword算法在其中已经成为标配。所以作为NLP界从业者,有必要了解下Subword算法的原理。

1.与传统空格分隔tokenization技术的对比

  • 传统词表示方法无法很好的处理未知或罕见的词汇(OOV问题)
  • 传统词tokenization方法不利于模型学习词缀之间的关系
    • E.g. 模型学到的“old”, “older”, and “oldest”之间的关系无法泛化到“smart”, “smarter”, and “smartest”。
  • Character embedding作为OOV的解决方法粒度太细
  • Subword粒度在词与字符之间,能够较好的平衡OOV问题

总结:即传统的按空格分词方法对于词的泛化能力不够

2.Byte Pair Encoding (Sennrich et al., 2015)

BPE(字节对)编码或二元编码是一种简单的数据压缩形式,其中最常见的一对连续字节数据被替换为该数据中不存在的字节[2]。 后期使用时需要一个替换表来重建原始数据。OpenAI GPT-2 与Facebook RoBERTa均采用此方法构建subword vector.

  • 优点
    可以有效地平衡词汇表大小和步数(编码句子所需的token数量)。
  • 缺点
    基于贪婪和确定的符号替换,不能提供带概率的多个分片结果。

2.1 算法

1.准备足够大的训练语料
2.确定期望的subword词表大小
3.将单词拆分为字符序列并在末尾添加后缀“ </ w>”,统计单词频率。 本阶段的subword的粒度是字符。 例如,“ low”的频率为5,那么我们将其改写为“ l o w </ w>”:5
4.统计每一个连续字节对的出现频率,选择最高频者合并成新的subword
5.重复第4步直到达到第2步设定的subword词表大小或下一个最高频的字节对出现频率为1

注意:貌似不采用后缀"</ w>"也可,例如调用的subword api 中使用的方法是在非词尾加上_,只要能区分出词尾和中间词,主要是用于word合并?

每次合并后词表可能出现3种变化:

  • +1,表明加入合并后的新字词,同时原来的2个子词还保留(2个字词不是完全同时连续出现)
  • +0,表明加入合并后的新字词,同时原来的2个子词中一个保留,一个被消解(一个字词完全随着另一个字词的出现而紧跟着出现)
  • -1,表明加入合并后的新字词,同时原来的2个子词都被消解(2个字词同时连续出现)

实际上,随着合并的次数增加,词表大小通常先增加后减小。

例子

输入:

{
   'l o w </w>': 5, 'l o w e r </w>': 2, 'n e w e s t </w>': 6, 'w i d e s t </w>': 3}
  • 1
  • 2

Iter 1, 最高频连续字节对"e"和"s"出现了6+3=9次,合并成"es"。输出:

{
   'l o w </w>': 5, 'l o w e r </w>': 2, 'n e w es t </w>': 6, 'w i d es t </w>': 3}
  • 1
  • 2
Iter 2, 最高频连续字节对"es""t"出现了6+3=9, 合并成"est"。输出:
  • 1

Iter 3, 以此类推,最高频连续字节对为"est"和"" 输出:

{
   'l o w </w>': 5, 'l o w e r </w>': 2, 'n e w est</w>': 6, 'w i d est</w>': 3}
  • 1
  • 2

2.2 BPE实现

import re, collections

def get_stats(vocab):
    pairs = collections.defaultdict(int)
    for word, freq in vocab.items
  • 1
  • 2
  • 3
  • 4
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/一键难忘520/article/detail/953074
推荐阅读
相关标签
  

闽ICP备14008679号