[UIM]论文解读:subword Regularization: Multiple Subword Candidates

news2024/12/24 0:37:56

文章目录

    • 一、完整代码
    • 二、论文解读
      • 2.1 介绍
      • 2.2 NMT
      • 2.3 Unigram language model
      • 2.4 subword 抽样
      • 2.5 效果
    • 三、整体总结

论文:Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates
作者:Taku Kudo
时间:2018

一、完整代码

这里我们使用python代码进行实现

# 完整代码在这里
有时间再来写;

二、论文解读

2.1 介绍

根据论文标题,subword regularization,类似于其他的regularization,其目的是为了增强结果的robust,这里的目标是利用多种分割方式产生的结果来改善NMT的效果;

subwords是一个解决NMT中的oov问题有效的方法,但是其在切词的时候会出现一个问题,就是说单个词可能被切割成多种形式,这给切割带来了模糊性,这里论文考虑能否利用切割的模糊性作为噪声来增强结果的鲁棒性;

论文中利用概率抽样的方式对多种分割方式进行抽取数据来进行训练;

BPE segmentation gives a good balance between the vocabulary size and the decoding efficiency, and also sidesteps the need for a special treatment of unknown words.

BPE能够很好的平衡词表大小和模型转化效率,但是其弊端在于同一个词可能有多种的分割方式;如图所示:

同一个词的多种分词方式可能会造成语意不明确,但是我们可以利用这个弊端,把其看作噪声进行训练;实验证明这种处理方式可以得到显著的改进;

2.2 NMT

NMT其本质是一个语言模型,给定一个序列 x = ( x 1 , x 2 , … , x 3 ) x=(x_1,x_2,\dots,x_3) x=(x1,x2,,x3), y = ( y 1 , y 2 , … , y 3 ) y=(y_1,y_2,\dots,y_3) y=(y1,y2,,y3),语言模型就是使

概率达到最大,本质使用的是最大似然估计MLE,在给定语料 D = { < X ( s ) > , < Y ( s ) > } s = 1 ∣ D ∣ D=\{<X^{(s)}>,<Y^{(s)}>\}_{s=1}^{|D|} D={<X(s)>,<Y(s)>}s=1D时,对总体,其Loss,就可以对 p p p,求log得到:

但是由于在分词的时候 x x x y y y可能会被分为多个subwords,所以这里我们可以把模型修改为

其中 P ( x ∣ X ) P(x|X) P(xX) P ( y ∣ Y ) P(y|Y) P(yY) x x x y y y的分割概率,这个稍后会讲解是如何计算的;

由于分词数量相对于句子的长度呈现指数型增长,所以我们不可能把所有的分词都计算出来,我们只使用一部分,比如都只使用 k k k个分词结果,得到最后的公式为:

在decoding阶段,由于我们只有一个 x x x的分割序列,我们选出概率最大的 x x x作为best decoding,或者我们选出前几个概率最大的 x x x作为best decoding,后一种由于有不同的分割 x i x_i xi,会产生不同的 y i y_i yi,所以我们需要选择一个好的 y i y_i yi来做最终的 y y y;这里论文给了一个评分公式:

这里 ∣ y ∣ |y| y是指 y y y的subwords的个数; λ \lambda λ是其惩罚参数;

2.3 Unigram language model

BPE分割方式是在NMT任务中运用较为广泛的一种方式,该方法可以有效平衡词表大小和模型转化效率,同一个词可能有多种的分割方式,这是我们需要利用的点,但是如何给出每种分割方式的概率很困难;

为了解决这个问题,这里提出了一个新的分割方法,利用Unigram language model去计算每个分割的subwords的分割概率;

首先定义 P ( x ) P(x) P(x)

这里要满足上述条件,最简单的方式就是统计一段文本中subword出现的次数,然后用次数除以总次数得到 P ( x i ) P(x_i) P(xi)

这里再定义 S ( x ) S(x) S(x) x x x的所有分割序列;

因为文本越长,subword就呈现指数型增长,这里并不好直接计算,但是可以利用Viterbi算法快速求到;

在给定词表vocabulary的情况下,我们接着定义:

通过EM估计最大化似然函数 L L L,再结合上面 P ( x ) P(x) P(x)的定义等式条件,我们可以估计出每一个 P ( x i ) P(x_i) P(xi)

Unigram language model的步骤如下所示:

  1. 先从训练语料中建立一个种子词表,最自然的方式便是结合所处出现的字符以及最常见的字符串,由于UIM是从大表到小表,所以说初始表要尽可能的大才行;这里使用the Enhanced Suffix Array 算法,可以在O (T)时间和O(20T)空间中枚举频繁的子字符串,这里T是语料库的大小;然后选择出现次数排在前面的字符串便可;要值得注意的是,必须要包括所有的单个字符;
  2. 重复这一步直到vocabulary的大小符合预期;首先在词表给定的情况下,通过EM估计每一个 P ( x i ) P(x_i) P(xi),然后计算在vocabulary中删除了 x i x_i xi后似然函数 L L L的变化 l o s s i loss_i lossi,把 l o s s i loss_i lossi从大到小排列,选择排在前面的 η \eta η%的 x i x_i xi构建新的词表;在这里必须要保证单个字符在词表内;

这样UIM的步骤就完成了!

最终的词汇表vocabulary包含了语料库中的所有单个字符,语言模型的分词可以看作是charwordsubword的概率混合;

2.4 subword 抽样

如上文介绍,抽样我们是从 P ( x ∣ X ) P(x|X) P(xX)分布中抽取,首先抽取 l − b e s t l-best lbest分割,这是我们主要考虑的分割;

P ( x ∣ X ) P(x|X) P(xX)分布如下,做了一些平滑处理,其中 α \alpha α是平滑因子:

l l l趋近于无穷的时候,即充分考虑所有的分割,单个计算是不显示的,这里可以使用FFBS算法进行优化;

2.5 效果

效果如图所示,有一点点提升:

三、整体总结

noise regularization技术在神经网络中比较常见;

seq2seq中添加噪声:

  • 通过改变句子顺序添加噪声 DAEs(Lample et al., 2017; Artetxe et al., 2017)
  • 用word embeding的平均来表示word sequence,在平均之前,随机删除某些单词 Word dropout (Iyyer et al., 2015)
  • 随机改变wordcharacter的顺序(Belinkov and Bisk, 2017)(Xie et al., 2017)

subword regularization背后的基本思想和动机与之前的工作相似。为了提高robust,通过随机改变句子的内部表示方式,向输入的句子注入噪声。然而,以往的方法往往依赖于启发式方法来产生合成噪声,这些噪声并不总是反映训练和推理时的真实噪声;此外,这些方法只能应用于源句(编码器),因为它们不可逆地重写了句子的表面。另一方面,subword regularization是用底层语言模型生成合成的子词序列,以更好地模拟噪声和分割错误。由于subword regularization是基于可逆转换的,我们可以安全地将其应用于源句和目标句。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1289326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

策略梯度简明教程

策略梯度方法 (PG&#xff1a;Policy Gradient) 是强化学习 (RL&#xff1a;Reinforcement Learning) 中常用的算法。 1、从库里的本能开始 PG的原理很简单&#xff1a;我们观察&#xff0c;然后行动。人类根据观察采取行动。 引用斯蒂芬库里的一句话&#xff1a; 你必须依靠…

SQL Server 数据库,创建数据库并使用索引查询学员考试成绩

5.1索引 索引提供指针以指向存储在表中指定列的数据值&#xff0c;然后根据指定的次序排列这些指针&#xff0c;再跟随 指针到达包含该值的行。 5.1.1什么是索引 数据库中的索引与书籍中的目录类似。在一本书中&#xff0c;无须阅读整本书&#xff0c;利用目录就可以快速查 找…

如何实现加盐加密

自己实现 传统MD5可通过彩虹表暴力破解&#xff0c; 加盐加密算法是一种常用的密码保护方法&#xff0c;它将一个随机字符串&#xff08;盐&#xff09;添加到原始密码中&#xff0c;然后再进行加密处理。 1. 每次调用方法产生一个唯一盐值&#xff08;UUID &#xff09;密码…

海关查验到底查些什么,又有哪些注意事项呢?

“海关查验”是什么&#xff1f; 海关查验是指海关在接受报关单位的申报后&#xff0c;依法为确定进出境货物的性质、原产地、货物状况、数量和价值是否与货物申报单上已填报的详细内容相符&#xff0c;对货物进行实际检查的行政执法行为。查验是国家赋予海关的一种依法行政的…

显卡算力总结

2023年12月 显卡天梯图 FP32浮点性能 性能排行榜 | TopCPU.net2023年12月 最新的显卡天梯图和 FP32浮点性能 性能排行榜&#xff0c;包括浮点性能排名、测试得分和规格数据。跑分对比、基准测试比较。 https://www.topcpu.net/cpu-r5 显卡显存&#xff08;G&#xff09;浮点算…

电商用户行为可视化分析

1、导包 import pandas as pd import numpy as np import seaborn as sns import matplotlib.pyplot as plt import pyecharts.options as opts from pyecharts.charts import Line from pyecharts.charts import Grid 2、导数据 t_f_user pd.read_csv("tianchi_fresh…

提高企业邮箱安全性的策略与技巧

提高企业邮箱的安全性的方法大体相同&#xff0c;每家邮箱供应商也可能会有自己独有防护措施。 为了增强Zoho Mail企业邮箱的安全性&#xff0c;您可参考以下建议&#xff1a; 采用强密码&#xff1a;创建包含大写字母、小写字母、数字和特殊字符的复杂密码&#xff0c;并定期…

基于SSM的图书馆管理系统运行部署教程

基于SSM的图书馆管理系统运行部署教程 1、下载2、数据准备-导入sql文件3、项目导入idea4、项目运行5、测试6、日志乱码问题 1、下载 源码下载地址&#xff1a; https://download.csdn.net/download/weixin_44796239/85072348下载之后&#xff0c;会得到一个压缩包&#xff1a; …

Windows驱动中校验数字签名(使用 ci.dll)

1.背景 对于常规应用程序来说&#xff0c;校验数字签名认证在应用层可以使用 WinVerifyTrust, 在驱动层使用常规的 API无法使用&#xff0c;自己分析数据又太麻烦。 在内核中 ci.dll 包装了数据签名验证相关的功能&#xff0c;我们可以使用该 dll 来实现我们的数字签名验证。 详…

2023年度亚太客户中心产业发展论坛——鸿联九五荣获亚太区卓越客服大赛客户运营管理类铂金大奖

11月27-28日&#xff0c; 2023年度亚太客户中心产业发展论坛暨亚太区卓越客服大赛在马来西亚吉隆坡举行。来自中国、澳大利亚、马来西亚、新加坡、中国香港、印度尼西亚和泰国等多个国家及地区的优秀企业代表齐聚吉隆坡。 论坛首日活动以“Experience Excellence, Meet the Cha…

JavaScript代码压缩的功效与作用

JavaScript代码压缩可实现3大功能&#xff1a;减小体积、优化逻辑、提升执行效率 专业的JavaScript代码压缩&#xff0c;绝不仅仅是去除回车使代码挤到一行&#xff0c;而是用真正的技术减小代码体积、提升代码性能。 下面&#xff0c;以JShaman的JavaScript代码压缩功能为例…

辐射校正、辐射定标、大气校正关系

文章目录 前言一、基本概念二、辐射校正三、辐射定标四、大气校正 1.是否需要大气校正2.大气校正模型 五、参考链接 前言 完整的辐射校正包括遥感器校准、大气校正、太阳高度和地形校正。本文主要介绍辐射校正基本概念及区分辐射校正、辐射定标、大气校正。 一、基本概念 DN&a…

Java 将word转为PDF的三种方式和处理在服务器上下载后乱码的格式

我这边是因为业务需要将之前导出的word文档转换为PDF文件&#xff0c;然后页面预览下载这样的情况。之前导出word文档又不是我做的&#xff0c;所以为了不影响业务&#xff0c;只是将最后在输出流时转换成了PDF&#xff0c;当时本地调用没什么问题&#xff0c;一切正常&#xf…

挂耳式蓝牙耳机性价比排行榜吗,排名靠前的几款耳机推荐

当涉及挂耳式蓝牙耳机的选择时&#xff0c;消费者常常陷入选择困境&#xff0c;面对市场上琳琅满目的产品&#xff0c;很难找到性价比兼具的理想之选&#xff0c;为了帮助大家在众多选择中快速定位高性价比的耳机&#xff0c;我们精心整理了一份挂耳式蓝牙耳机性价比排行榜&…

javaWebssh图书系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

系统前景 图书有很多&#xff0c;老的图书书的管理靠纸介质&#xff0c;浪费人力和物力&#xff0c;给图书管理者带来极大的资源浪费。随着计算机信息化的普及&#xff0c;对图书的管理带来本质的改变&#xff0c;图书的销售情况以及&#xff0c;图书管理&#xff0c;以及年终对…

搜不到你想找的资料?那是你还没有掌握这些搜索技巧

文章目录 Google搜索命令sitefiletypeintitleinauthor:define:related:OR:- (减号):.. (两个点):weather:stocks:movie:link: 示例site:filetype:intitle:inauthor:define:related:OR:- (减号):.. (两个点):*** (星号):**cache:info:weather:stocks:movie:link: 补充 Google搜索…

解析操作系统是如何启动起来的?

操作系统被称为“第一个程序”&#xff0c;the first programme&#xff0c;原因很简单&#xff0c;只有当操作系统启动起来后才能运行我们编写的程序&#xff0c;那么你有没有想过这个问题&#xff1a;操作系统是怎样启动起来的呢&#xff1f;实际上这个过程就像发射火箭一样有…

解决vue ssr服务端渲染运行时报错:net::ERR_PROXY_CONNECTION_FAILED

现象&#xff1a; 从代码里找了半天也没有找到问题&#xff0c;但是由于ssr服务端渲染配置本身非常复杂&#xff0c;步骤又繁琐&#xff0c; 而且报错又很多&#xff0c;不知道哪里出了问题。 感觉是header或者cookie丢失造成的&#xff0c;因为据说ssr本身有这样的缺陷&…

NHN和SuiFrens合作的限量版配饰正式发售

SuiFrens那些可爱、富有想象力的生物&#xff0c;即将迎来全新装扮&#xff0c;而你也可以一同享受。今天&#xff0c;限量版NHN x SuiFrens Pebble City幸运配饰系列正式推出&#xff0c;同时还有机会在SuiFrens商店免费领取独家限量版NHN帽子。 NHN x SuiFens Pebble City配饰…

17、pytest自动使用fixture

官方实例 # content of test_autouse_fixture.py import pytestpytest.fixture def first_entry():return "a"pytest.fixture def order():return []pytest.fixture(autouseTrue) def append_first(order, first_entry):return order.append(first_entry)def test_s…