cw2vec: Learning Chinese Word Embeddings with Stroke n-gram Information
发布日期:2021-06-29 04:25:42 浏览次数:2 分类:技术文章

本文共 2976 字,大约阅读时间需要 9 分钟。

Abstract

我们提出了一种新的汉字嵌入学习方法cw2vec。根据我们的观察,笔划层次的信息对于提高汉字单词嵌入的学习是至关重要的。具体来说,我们设计了一种极简主义的方法来利用这些特征,通过使用笔画n-gram来捕捉汉字单词的语义和构词层面的信息。通过定性分析,我们证明了我们的模型能够提取现有方法无法捕获的语义信息。在单词相似性、单词类比、文本分类和命名实体识别任务方面的实验结果表明,该方法始终优于基于词的word2vec和GloVe、基于字符的CWE、基于组件的JWE和基于像素的GWE等最先进的方法

1. Introduction

近年来,词汇表征学习在自然语言处理领域得到了广泛的关注。与传统词语的独热表示不同,低维分布式词语表示(也称为单词嵌入)能够更好地捕获自然语言单词的语义。这类表示在某些下游NLP任务如文本分类,命名实体识别,机器翻译等任务中非常有用。因此,设计能够很好地捕捉单词语义的单词表示学习方法是至关重要的。

现有的方法只专注于基于上下文信息的表征学习,其中单词被视为原子标记。最近,研究人员也开始研究如何结合子词级信息来更好地捕捉词义。虽然这些方法被证明是有效的,但它们主要侧重于使用拉丁文字的欧洲语言,如英语、西班牙语和德语。因此,所开发的方法并不直接适用于使用完全不同的书写系统的语言,如汉语。

在汉语中,每一个单词的字符数通常少于英语,在英语中,每一个字符都传达着丰富的语义信息。鉴于汉语单词和汉字丰富的内部结构,人们提出了利用字符级信息的方法来学习汉语单词嵌入。然而,这些信息是否足以恰当地捕捉单词的语义信息呢?是否有其他有用的信息可以从单词和字符中提取以更好地对单词的语义建模?

对于词汇的内部结构信息,我们认为仅靠字符是不足以捕捉语义信息的。例如,如图2所示,两个单词“timber”和“forest”在语义上是紧密相关的。然而,“木材”是由“木材”和“材料”两个字组成的,而“森林”是由“树木”和“丛林”组成的。如果只考虑字符级别信息,则这两个单词之间不存在共享信息,因为它们由不同的字符组成。

而人工定义的提取偏旁部首等子词信息的规则可以被利用,这些信息可能是不完整和嘈杂的。如图1 (a)所示,“sun”是“intelligence”的部首,但它几乎不表达任何与其字符相关的语义信息。除了传统的部首外,HTTPCN3所总结的偏旁部首的超集合体还可以作为部首的补充。如图1 (b)所示,“智能”进一步分解为“箭头”、“嘴”、“太阳”三个分量。然而,所有这些组件可能与字符的语义无关。此外,基于像素的模型从字体图像中学习字符特征并没有显示出比原始的word2vec模型更好。汉语词汇的基本语义单位是什么,如何提取这些信息,是一个有待研究的问题。

虽然可以手工设计从汉字中提取语义特征的方法,但是自动特征学习可以作为一种替代方法。在这项工作中,我们开发了一种方法,可以自动获取与汉语单词相关的有意义的潜在表示,这需要对单词和字符的构造进行最小的预先假设。具体来说,我们采取的是一种极简主义的方法,即利用中文单词所传递的笔画的n-gram信息,灵活地捕捉单词的形态和语义信息。如图1(c)所示,我们提出的笔画n-gram“knowledge”就是“intelligence”这个字的形态结构,更多细节将在2.1节中给出。

我们进行了广泛的实验,通过定性和定量分析,结果表明,我们的模型比其他先进的方法能够更好地学习汉字表示,包括基于word2vec 和Glove,基于字符CWE,基于偏旁的JWE。据我们所知,这是第一个利用笔划层次信息来学习汉语单词嵌入的作品。

2. cw2vec Model

我们提供了cw2vec模型的快速高级概述。图3显示了该模型的总体架构,并给出了一个示例。在本例中,当前单词为“haze”,上下文单词为“manage”和“without delay”。

我们首先将当前单词缩减为2.1节中描述的笔画n-gram,其中每个笔画n-gram都有一个表示向量,即, stroke n-gram嵌入。此外,假定每个上下文单词都与相同维度的单词嵌入相关联。在我们的设置中,出现在语料库中不同位置的同一个单词具有相同的嵌入,同样的笔画n-gram也具有相同的嵌入。然后,对精心设计的目标函数进行优化,得到基于整个训练语料库的最终嵌入词和笔画n-gram嵌入,详见2.2节。

2.1 Stroke n-grams

在图4中,我们将笔画分为五种不同的类型。为了方便起见,我们为每个笔画分配一个整数ID,分别从1到5

中国的书写系统为每个汉字的笔画自然顺序提供了一些指导。有了这样的笔画顺序信息,就可以设计各种模型,在建模单词时利用这些顺序信息。例如,这里可以使用LSTM。然而,正如所指出的,这种模型通常涉及一个昂贵的培训过程。受word2vec工具包中构建的模型的启发,我们在这项工作中采用了一种更简单、更有效的方法,即使用笔画n-gram信息来刻画汉字。

如图4中所描述的,我们将汉字映射到笔画n-gram使用以下步骤:(1)将当前词划分为字符,(2)从每个字符序列中获取笔画,连接在一起,(3)使用笔画ID代表笔画序列,和(4)使用一个大小为n的滑动窗口生成笔画n-gram。

2.2 Objective Function

我们考虑计算一个单词与其上下文之间的相似性。在大多数以单词为原子单位的模型中,当前单词w与其上下文中某个单词c之间的相似性定义为sim (w, c) = w·c,其中\vec{w}\vec{c}分别是w和c的嵌入。在本工作中,我们为每一个笔画n-gram和每一个上下文单词分配一个嵌入,并基于当前单词和上下文单词的笔画n克的嵌入来定义w和c之间的相似性函数。

我们对语料库中的每个单词进行扫描,得到一个笔画n-gram字典S,用S(w)表示单词w的笔画n-gram的集合,我们定义w与c之间的相似函数如下:

                                                                                     sim(w, c)=\sum_{q\in S(w)}\vec{q}\cdot \vec{c}

其中q是集合S(w)的一个笔画n-gram元素,向量\vec{q}是q的嵌入。

类似于(Mikolov et al. 2013a;(Bojanowski et al. 2016),我们对使用当前单词w预测上下文单词c进行建模感兴趣,可以使用softmax函数对给定w下预测c的概率建模:

                                                                                   p(c|w)=\frac{exp(sim(w, c))}{\sum_{​{c}'\in V}exp(w, {c}')}

其中{c}'是词汇表V中的一个单词。直接计算分母可能非常耗时,因为它涉及到|V |操作。为了解决这个问题,我们采用负抽样方法,该方法是由Gumann和Hyvarinen提出的与噪声对比评价有关的方法,后广泛应用于字嵌入学习任务,测量语义文本相似度任务和节点嵌入学习任务。负抽样的关键思想是将代价高昂的分母替换为基于分布的上下文单词“负”抽样的集合。这就产生了以下在整个语料库中定义的目标函数:

                                                          L=\sum_{w\in D}\sum_{c\in T}log \sigma (sim(w,c)) + \lambda E_{​{c}'\sim P}[log \sigma(-sim(w, {c}'))]

λ是负样本的数量,E_{​{c}'\sim P}是期望,选择符合分布P的负样本{c}',可设置为这个词unigram分布U,在实践中,为了克服数据稀疏问题,之后,对U进行3/4次幂计算。激活函数σ是sigmoid函数:\sigma(x)=(1+exp(-x))^{-1}。其中T(w)是给定窗口内的当前单词的上下文单词集合,D是训练语料库中所有单词的集合。

我们使用基于标准梯度的方法对上述目标函数进行了优化。学习过程完成后,我们直接使用上下文词嵌入作为输出词嵌入。

具体代码实现和解析见另一篇文章:

原文地址:c

转载地址:https://blog.csdn.net/zhang2010hao/article/details/86093773 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Transformer:The base of BERT
下一篇:字符串相似度计算算法

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月02日 01时07分07秒