Glyce 一种针对中文汉字结构信息抽取的Embedding策略

这篇博客主要参考了香侬科技公司李纪为大神团队的paper《Glyce: Glyph-vectors for Chinese Character Representations》,其主要面对的是中文(类象形文字)从构字法的角度来对中文的汉字进行分析。之前看过的包括自己研究的从构字法角度研究中文的主要参考的是五笔拼音输入法,一个汉字会被拆分成一个部首序列,这种方法由于汉字复杂性和现代汉字的简洁性,使提取到的汉字构字信息大大折扣。而本篇paper提出的方法很好的解决了这个问题。

从整体来看,这篇paper一共有三个很大的创新点,整个论文的结构也是围绕介绍着三个创新点来展开的:

1 同一汉字不同形式字体的使用。
对于一个汉字来说,使用的不仅仅是现代汉字的形式(中华文明上下5000年,随着时间的发展,汉字变的越来越容易写,但是同时丧失了作为象形文字所具备的形态上的很多特征信息)。同时参考了汉字在历史上的各个时期的形式,具体如下图所示:
Glyce 一种针对中文汉字结构信息抽取的Embedding策略_第1张图片
从图中可以看出,针对同一个汉字分别提取了金文,隶书,纂书,魏碑,繁体中文,简体中文,草书等形式。同时和之前方法不同的是,不再依赖于类似五笔输入法这种对于原始字体的拆分策略,而是直接使用汉字的图片形式,直接从图片的像素中抽取信息。具体从图片中抽取汉字信息的结构是本文第二个创新点。

2 一种面向低像素图片的信息抽取结构。
由于不同的汉字都是以图片的形式提供的,因此必须设计网络结构从图片中抽取信息。之前的面向图片的抽取结构都是deep CNNs,即很多卷积层+max pooling层。如果直接拿过来提取汉字的图片特征,作者发现会有很大的问题,因为:1 汉字图片的像素比较低12 * 12,远远低于Imagenet数据集中的800*600;2 中文的话总共大概只有1万多个不同的汉字,而Imagenet中的分类样本数量则达到了百万量级。基于上面两个原因,作者针对这种情况专门设计了提取汉字图片特征的网络结构:
Glyce 一种针对中文汉字结构信息抽取的Embedding策略_第2张图片
输入层是一个汉字对应的图片,是三维的结构,channel维指代的是同一个汉字不同时期形式下的字体。具体的网络参数说明如下:
Glyce 一种针对中文汉字结构信息抽取的Embedding策略_第3张图片
其实整个网络结构相对于传统的deep CNNs 系列网络模型结构来说是比较简单,而且层数比较少的。(毕竟样本数量少,过于复杂的网络结构很容易过拟合)。需要注意的是倒数后两层中同一个汉字的像素变成了2 * 2,作者将其和我们小学时用到的田字格联系到了一起,就给这个网络结构起名叫做tianzige-cnn(我个人感觉这个只是包装paper用到的概念,其具体概念感觉和真正的田字格的用法还是有一定出入的)。

3 使用汉字图片分类损失作为辅助的训练策略。
为了进一步降低整个网络过拟合的风险,作者将汉字图片分类损失函数作为辅助损失函数来辅助整个网络的训练过程,假设 h i m a g e h_{image} himage即上图中对应的最后一层输出向量(1024 *1 *1)代表了某个汉字的Embedding,z是该汉字对应的ID,那么辅助损失函数就是一个多分类问题,即为 L ( c l s ) = − l o g p ( z ∣ x ) = − l o g L(cls)= -log p(z|x) = -log L(cls)=logp(zx)=log s o f t m a x ( W ∗ h i m a g e ) softmax(W * h_{image}) softmax(Whimage)
那么整个网络的损失则为: L = ( 1 − λ ( t ) ) L ( t a s k ) + λ ( t ) L ( c l s ) L = (1-\lambda(t))L(task)+\lambda(t)L(cls) L=(1λ(t))L(task)+λ(t)L(cls)。其中 L ( t a s k ) L(task) L(task)是下游任务,可能是文本分类,命名实体识别,中英文翻译等。其中 λ ( t ) = λ 0 λ 1 t \lambda(t)=\lambda_0 \lambda_1^t λ(t)=λ0λ1t λ 0 \lambda_0 λ0代表了start value,而 λ 1 \lambda_1 λ1则代表了衰减速率,它们两个都是[0,1]之间的浮点数。 t t t是epoch数目。

最终根据下游任务的不同,整个网络结构可以大致有2个类别:
Glyce 一种针对中文汉字结构信息抽取的Embedding策略_第4张图片
上图中的模型是针对character level 的下游任务,从图中可以看出Glyph Emb 就是本文提出的模型,而char-Id Emb就是每一个汉字对应的普通Embedding,它们两个结合起来就可以作为整个汉字完整的Embedding,结合的方式可以是拼接,fully connected network, highway network等。

Glyce 一种针对中文汉字结构信息抽取的Embedding策略_第5张图片
上图中的模型是针对word level 的下游任务,其他部分和character level部分是一致的,唯一不同的是在生成完整的character Embedding之后,会将一个词语中不同的character Embedding通过max-pooling方式结合起来生成该词语对应的word Embedding。

作者将上述结构运用到了语言模型、机器翻译、命名实体识别、情感分类、中文分词等多达13个不同的中文领域中的下游任务里,并通过大量的对比实验证明了Glyce中文汉字构结构的有效性。

你可能感兴趣的:(深度学习,机器学习)