[论文阅读] Breaking the Representation Bottleneck of Chinese Characters{colon}Neural Machine Translation with Stroke Sequence Modeling
Pre
title: Breaking the Representation Bottleneck of Chinese Characters:Neural Machine Translation with Stroke Sequence Modeling
accepted: EMNLP 2022
paper: https://arxiv.org/abs/2211.12781
code: https://github.com/zjwang21/StrokeNet
关键词:NMT(neural machine translation), stroke sequence modelling
阅读理由:想看看到底是怎么表示笔画,以及用唯一的笔画序列去表示一个字
Idea
本文方法StrokeNet:根据笔画出现的频次将其映射成对应频次的拉丁字母——允许相似的汉字有相似的拉丁表达,主要用于NMT(神经机器翻译)任务中
Motivation&Solution
当前汉字表达遭遇两个瓶颈:
- 表示瓶颈:无法有效利用汉字内部的特征(组件笔画等)
- 参数瓶颈:每个笔画都用一个唯一的向量表示(信息密度低?)
Background
拉丁语言有词缀一说,而中文里有偏旁的概念,一个汉字通常包括一个偏旁跟几个组件。
chinese wrod segmentation (CWS): 将文本切成单词序列,一种主流的字符级别表示范式
sub-character level: 表示就是把字进一步拆分成组件笔画那种
stroke level information: 利用笔画信息的
other: 还有用字形或拼音的
byte pair encoding (BPE): NLP里面的一种编码方式,通过贪心的方式合并token,减少词汇表大小,以得到较优的编码方式
Method(Model)
Overview

表1 StrokeNet示意

图1 StrokeNet总体框架
图1中几个框里面是不同的处理部分,从上到下首先拉丁字母化,然后划分组件/子序列,共享子序列嵌入,最后进行按频率的循环移位数据增强,即 frequency-aware ciphertext-based data augmentaion (FCDA)
通过本文的方法使非拉丁语言也能用上一些拉丁语言处理的技术,比如拉丁语言可以进行 subword modeling,而中文如果以汉字为基本单位则无法实现该操作;此外汉字很多,词汇表大,容易过拟合;而且进一步还可以共享源语言跟目标语言中相同的 subword embedding,以及实现数据增强
注意到少部分汉字会有相同的笔画序列,如“开”/“井”,“土”/“士”,作者说就在笔画序列后面加上数字以示区分
Experiment
Training Detail
挑了几种翻译任务里的Transformer模型来测试该方法,具体训练设置略
Dataset
都是机器翻译任务的数据集:NIST Chinese-English, WMT17 Chinese-English, IWSLT17 Japanese-English
其中使用mecab去做japanese pseudonyms(日本假名)的分词,但作者只是把日语里的汉字用StrokeNet处理,并没有动假名(那不跟中文一样吗??)
Results

表2 NIST Zh-En上模型参数跟BLEU分数 Emb.是嵌入层参数

表3 三种语料上的词汇表大小。StrokeNet共享两种语言的嵌入,能减小词汇表

表4 Ja-En跟大规模WMT17 Zh-En基准上的BLEU分数,说明了StrokeNet的有效性

图2 验证集跟测试集上不同BPE合并操作数的BLEU分数,说明StrokeNet对BPE操作鲁棒

图3 普通baseline跟StrokeNet的学习曲线

图4 NIST Zh-En 不同规模训练数据对BLEU的影响
从图3图4可以看出随着epoch、数据量增加,StrokeNet效果会被追平,但总体来说还是有优势的

表5 消融研究 NIST Zh-En基准上不同模型变体的性能

表6 NIST Zh-En 共享subword的统计数据,按频率映射或随机映射,BPE操作都是相同的30K次
从表5来看靠频率去映射可以减少信息损失,表现为BLEU分数提高,不用共享词汇就导致参数增加而且性能略微下降。根据信息论,高频词的信息较少,因为lexical marker(BPE合并后的token?)更少
表6则表明按频率去映射有利于提高token的共享率,增加共享的字词的长度,带来更短的序列

表7 不同频度词的预测精度,表明StrokeNet对中高频词的效果较好
Conclusion
该方法似乎是专为NMT设计的,简单有效,但感觉不是很适合其他需要笔画信息的任务。作者提到表7中对低频词效果不佳,是因为低频词会导致过度分割,信息不完整,比如“劑”会被分成“oeot@@ a@@ stt@@
m@@ n@@ ta@@ eea@@ r”。至于怎么提高低频词的效果就留给将来的工作了。
Critique
笔画序列拉丁字母化就本身包含的信息而言,如果不是做汉英翻译,好像跟直接用25个数字去代表笔画差别不大。同笔画的字靠加数字去区分稍显生硬,那个加上的数字不包含有意义的信息,无法只通过该表达重建/唯一确定一个汉字
实验倒是很多,感觉还没够到我对顶会的预期
Unknown
本文作者:心有所向,日复一日,必有精进
本文链接:https://www.cnblogs.com/Stareven233/p/17300092.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2023-12-04 [pytorch] 余弦退火+warmup实现调研
2023-12-04 [论文速览] Randomized Quantization@ A Generic Augmentation for Data Agnostic Self-supervised Learning