【论文阅读】IndoBERTweet,如何高效的进行领域适配分词

领域大模型的训练,首先需要进行领域适配分词,Domain-Adaptive Tokenization。借助Kimi,继续快速学习一篇相关论文。
在这里插入图片描述
文章标题为“IndoBERTweet: A Pretrained Language Model for Indonesian Twitter with Effective Domain-Specific Vocabulary Initialization”,由Fajri Koto、Jey Han Lau和Timothy Baldwin撰写,来自墨尔本大学计算与信息系统学院。文章提出了IndoBERTweet,这是一个针对印尼语推特数据的大型预训练模型。这个模型通过在单语种训练的印尼语BERT模型基础上增加特定领域的词汇来训练,特别关注在词汇不匹配情况下的高效模型适应性,并通过不同的方式初始化BERT嵌入层来适应新词类型。

IndoBERTweet是针对印尼语Twitter数据的预训练模型,其开发是为了解决特定于社交媒体文本的自然语言处理(NLP)任务。尽管IndoBERT作为一个单语种印尼语BERT模型已经存在,但IndoBERTweet基于以下几个原因进行扩展:

■社交媒体语言特性: 社交媒体文本(如Twitter)通常包含大量非正式、口语化的语言,以及特定于平台的词汇和表达方式。这些特性在传统的新闻文章或Wikipedia等来源的文本中可能不太常见。

■领域特定词汇:Twitter等社交媒体平台上的印尼语使用可能包含特定于领域的新词、缩写、表情符号、网络用语等,这些可能不包含在IndoBERT的预训练词汇中。

■更有效的模型适应性:IndoBERTweet通过扩展IndoBERT的词汇表,特别是通过平均池化BERT子词嵌入的方法来初始化新词,从而提高了模型对社交媒体文本的适应性。

■提高任务性能:通过专门针对印尼语Twitter数据的预训练,IndoBERTweet能够更好地处理与社交媒体相关的NLP任务,如情感分析、情绪分类、仇恨言论检测和命名实体识别等。

■数据集规模:IndoBERTweet使用了比IndoBERT预训练时更大的数据集,这使得模型能够学习到更多的语言特征和模式。

■预训练效率:文章中提到,使用平均池化方法初始化新词的嵌入可以显著加快预训练的速度,并且比从头开始训练模型更有效。

总的来说,IndoBERTweet的开发是为了更好地理解和处理印尼语社交媒体文本,通过增加特定于Twitter的词汇和表达,以及优化模型的预训练过程,从而在相关的NLP任务上获得更好的性能。

面临的主要问题

■领域特定文本的高质量上下文表示:对于特定领域(如生物医学、社交媒体和法律)的数据源,获取高质量的上下文表示是一个挑战。

■领域适配预训练的词汇不匹配问题:领域特定的词汇往往不在预训练词汇中,导致这些词汇的标记(tokenization)效果不佳。

解决方法

■扩展BERT词汇:文章提出了通过平均池化(average-pooling)BERT子词嵌入来初始化特定领域的词汇,这种方法比从头开始预训练或基于word2vec的投影初始化更有效。

■IndoBERTweet模型:利用IndoBERT(一种单语种印尼语BERT模型)作为通用领域模型,开发了针对印尼语推特的预训练领域特定模型IndoBERTweet。

■数据集构建:通过官方Twitter API爬取了一年内的印尼语推文,涵盖了经济、健康、教育和政府等四大主题,并使用WordPiece技术提取词汇。

■模型训练:训练了5个IndoBERTweet模型,其中一个从头开始预训练,其余四个基于领域适配预训练,并探索了不同的词汇适应策略。

■实验设置:使用了7个印尼语推特数据集进行实验,包括情感分析、情绪分类、仇恨言论检测和命名实体识别等任务。

■领域适配预训练与词汇初始化:通过领域适配预训练,并将领域通用词汇替换为领域特定词汇,探索了四种新词类型的初始化策略。

文章的主要贡献在于发布了IndoBERTweet模型,并通过广泛的实验比较了不同的领域特定词汇初始化方法,发现简单平均子词嵌入的方法比之前提出的方法更有效,并且将领域适配预训练的开销减少了80%。

文章还讨论了在英语上进行类似实验的结果,并将IndoBERTweet的方法与BERTweet进行了比较,发现虽然在英语上的效果没有印尼语那么显著,但通过领域适配预训练和特定词汇初始化,仍然可以有效地提高模型性能。

最后,文章得出结论,通过领域适配预训练和特定词汇的初始化,可以非常高效地(比从头开始预训练快5倍)适应现成的预训练模型,并且取得了更好的平均性能。

领域适配分词的嵌入方法
经过领域适配分词后,在IndoBERTweet词汇表中,有14,584 种(46%)新类型和17,400 种 (54%)与IndoBERT 共享的WordPiece 类型。

文章中提到了四种不同的方法来初始化领域特定词汇嵌入,这些方法被用于领域适配预训练的IndoBERTweet模型。以下是这四种方法的简要说明:

  1. 随机初始化(Random Initialization from U(-1,1)):
  • 使用均匀分布U(-1,1)来随机初始化新词类型的嵌入向量。
  1. 随机初始化(Random Initialization from N(μ, σ)):
  • 从正态分布N(μ,σ)中随机初始化,其中μ(均值)和σ(标准差)是从IndoBERT嵌入中学习得到的。
  1. 线性投影(Linear Projection via fastText Embeddings):
  • 使用fastText嵌入来初始化新词汇。首先在印尼语Twitter语料上训练fastText嵌入,然后通过学习一个线性变换,将fastText嵌入映射到与IndoBERT嵌入相同的空间。
  1. 平均池化(Averaging IndoBERT Subword Embeddings):
  • 对于IndoBERTweet中的新词汇,通过取其在IndoBERT分词器产生的所有WordPiece标记的嵌入向量的平均值来初始化。

具体看一下公式。IndoBERT 的词汇表用VIB表示,IndoBERTweet 的词汇表用VIBT表示。

方法3(线性投影)的公式表示如下,从公式可以看出,需要先在印尼语Twitter语料上训练fastText 嵌入,然后在两个词汇表的交集上训练从fastText嵌入到 IndoBERT 嵌入的线性投影矩阵。
在这里插入图片描述
方法4(平均池化)的新词汇嵌入的公式表示:
在这里插入图片描述
公式中,TIB(x)是IndoBERT的Token生成器为新单词x生成的一组WordPiece的Token表示。

文章的实验结果表明,使用IndoBERT子词嵌入的平均值来初始化新词汇的方法(即第四种方法)在减少领域自适应预训练的开销方面最为有效,并且与从头开始预训练的模型相比,在多个下游任务上表现出更好的性能或相似的性能。

这些方法的比较不仅展示了不同词汇初始化策略的效果,而且还突显了在特定领域预训练语言模型时,如何高效地处理领域特定词汇的重要性。

在自然语言处理中,分词(Tokenization)是将原始文本转换为模型可以理解的格式的过程。对于BERT等基于Transformer的模型,这通常意味着将单词转换为更小的、预定义的子单位,这些子单位可以是子词(Subwords)、字符等。WordPiece是一种流行的子词分词方法,它通过将词汇分割成更小的片段来处理词汇,使得模型能够更有效地处理未见过的词汇或罕见词汇。

平均池化方法的举例说明
IndoBERT分词器使用WordPiece算法来处理印尼语文本。在WordPiece分词中,每个单词都被分割成一系列的子词标记。这个过程通常是基于一种贪心算法,它试图最小化整体词汇的分词数量,同时确保每个子词标记都在词汇表中。

假设有一个印尼语单词 “pengguna”(意为 “user” 或 “使用者”)。

  1. 未分割前的单词: pengguna

  2. WordPiece分词过程:

  • 分词器会检查词汇表中是否存在 pengguna 这个单词。

  • 如果不存在,它会尝试分割成较小的部分,比如:

    √  `peng` + `guna`
    
    √  `pengguna` 分割为 `peng` 和 `guna` 是因为这两个部分都在词汇表中,且这种分割方式可能在训练数据中出现得更频繁。
    
  1. 最终的WordPiece标记序列:##peng + guna
  • 请注意,## 前缀通常用于表示单词的开始部分之后的子词标记,以区分单词的开始和中间/结尾部分。

通过这种方式,即使是未见过的或罕见的单词也可以被有效地表示,因为模型学会了将这些子词标记组合起来理解整个单词的含义。这对于处理像Twitter这样的社交媒体文本特别有用,因为这些文本中可能包含大量的新词、缩写、表情符号等。

在IndoBERTweet的上下文中,当遇到新词(即不在IndoBERT词汇表中的词)时,可以使用IndoBERT的WordPiece分词器来生成相应的子词标记序列,然后利用这些序列来初始化新词的嵌入表示。文章中提到的“平均池化”方法,就是将这些子词标记的嵌入向量取平均,以生成新词的初始嵌入表示。这种方法利用了已有的IndoBERT模型的知识,以更高效地适应新词汇。

fastText嵌入
fastText是一种开源的自然语言处理库,由Facebook AI Research开发。它主要用于学习词嵌入(word embeddings),即将单词转换为向量的技术。这些向量能够捕捉单词之间的语义关系,因此被广泛用于各种NLP任务,如文本分类、语义相似性分析和词性标注等。

fastText的关键特点包括:

子词分词(Subword Tokenization): fastText使用一种高效的分词算法,可以处理未知词汇和罕见词汇。这种方法通过将单词分解为子词(subwords)来生成更细粒度的词嵌入,从而允许模型更好地处理词汇的多样性和复杂性。

词嵌入学习: fastText通过神经网络架构来学习词嵌入,该架构专为处理文本数据而设计。它使用浅层前馈网络,并通过负采样和层次化softmax来优化大规模词汇表的学习。

高效性: fastText的设计注重于效率,使其能够快速训练大规模文本语料库,并生成高质量的词嵌入。

多语言支持: fastText支持多种语言,能够为不同语言生成特定的词嵌入,这对于构建多语言NLP系统非常有用。

(欢迎关注公众号:老无谈藏书票)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值