文章目录

  • 融入字典知识的神经中文分词
  • 一、背景
  • 二、 主要方法


融入字典知识的神经中文分词

一、背景

当前基于深度神经网络的中文分词方法直接从标注样本/句子中学习相关信息,缺乏处理稀有词以及和训练集来自不同领域的数据的能力。OOV(Out-of-vocabulary)问题是监督学习最主要的问题。

例如,中文句子“人工智能最近很火”,它的正确分割是“人工智能/最近/很火”。然而,如果“人工智能”没有出现在标注数据中或仅仅出现了几次,那么将有很大的概率该句子会被分割为“人工/智能/最近/很火”,因为“人工”和“智能”在标注数据中出现的频率很高。

对于稀有样例处理和领域偏移问题,人类知识可以提供有价值的信息。字典中既含有常见的词语,也含有不经常出现的词语, 所以将字典融入到神经网络模型中,可以使得模型能够更好地处理常见词、稀有词和领域专有词等。

ios 神经网络文本分类器模型 神经网络 中文分词_中文分词

二、 主要方法

1)《Neural Networks Incorporating Dictionaries for Chinese Word Segmentation》 AAAI 2018

本文提出了两个模型结构:

Model I:

ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_02


首先,将输入句子中的每个字符ios 神经网络文本分类器模型 神经网络 中文分词_权重_03转换为向量表示ios 神经网络文本分类器模型 神经网络 中文分词_中文分词_04,输入到一个Bi-LSTM中提取特征;同时为每个字构造对应的特征向量ios 神经网络文本分类器模型 神经网络 中文分词_权重_05,输入到另一个Bi-LSTM中提取特征。然后将两部分特征拼接在一起,再接一个CRF层进行解码。特征向量构造方法:

ios 神经网络文本分类器模型 神经网络 中文分词_权重_05是输入句子中第 i 个字符ios 神经网络文本分类器模型 神经网络 中文分词_权重_03对应的特征向量。对ios 神经网络文本分类器模型 神经网络 中文分词_权重_03构造以下8个特征模版:

ios 神经网络文本分类器模型 神经网络 中文分词_权重_09


对于输入句子中的每个字符,按照上述模版提取对应的子序列,如果提取的子序列出现在了给定的词典中,该子序列对应的位置标为1,否则标为0,最后为每个字符生成一个8维的特征向量。如下例所示(对于“委”这个字符):

ios 神经网络文本分类器模型 神经网络 中文分词_权重_10


Model II:

特征向量ios 神经网络文本分类器模型 神经网络 中文分词_权重_05表示不同的边界候选。在不同边界候选下,建模字符ios 神经网络文本分类器模型 神经网络 中文分词_权重_03的权重应该是不同的,而传统的LSTM,对于输入句子中的不同字符/不同时刻,权重是共享的。因此,本文提出了Model II。

ios 神经网络文本分类器模型 神经网络 中文分词_中文分词_13


如上图所示,底部的Bi-LSTM,用于为顶部的Bi-LSTM对应位置生成一个权重,从而使顶部Bi-LSTM对于输入句子中的不同字符,权重是不同的。底部Bi-LSTM的输入是每个字符对应的特征向量,计算过程如下(下式中的g表示顶部LSTM单元中各个门,ios 神经网络文本分类器模型 神经网络 中文分词_权重_14):

ios 神经网络文本分类器模型 神经网络 中文分词_权重_15


上式中蓝框中的部分是顶部Bi-LSTM原始的计算过程,其中参数ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_16对于各个字符是权重共享的;红框中的部分是由对应位置的底部Bi-LSTM生成的权重,对于每个字符生成的权重是不同的,让生成的权重对共享权重进行修改,从而使顶部Bi-LSTM对于输入句子中的不同字符,权重是不同的。

2)《Neural Chinese word segmentation with dictionary 》Neurocomputing 2019

前一篇工作需要手工设计特征模版,而且多引入了一个BiLSTM,增加了模型参数,使模型训练更困难。本篇工作做了一些改进,提出了一种end2end的融入字典信息的神经中文分词方法,不需要任何特征工程。

提出了两种融入字典信息的方法,一种是伪标注数据生成;另一种是构造额外的单词分类任务,进行多任务学习。最后本文把两种方法组合在一起,模型性能取得了进一步提高。

基本结构:

和之前工作不同的是,本篇工作指出局部上下文信息对于中文分词很重要,因此采用CNN对输入句子中的每个字符学习上下文表示。基本模型结构如下所示:

ios 神经网络文本分类器模型 神经网络 中文分词_权重_17


其中,ios 神经网络文本分类器模型 神经网络 中文分词_中文分词_18是卷积核,D是字符嵌入向量的大小,k是卷积核的大小。每个字符的隐藏状态ios 神经网络文本分类器模型 神经网络 中文分词_数据_19,F是卷积核的数量。然后将ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_20输入到CRF层进行标签推理。伪标注数据生成:

给定一个包含一系列中文单词的字典,随机采样U个单词,组成一个伪句子。例如,随机采样三个单词“很火”,“最近”和“人工智能”,然后组成伪句子“􏰐􏰑􏰌􏰏􏰅􏰉􏰊􏰋 很火最近人工智能”。由于这些单词的边界是已知的,所以伪句子的标签可以直接推断出来“BEBEBMME”。重复上述采样过程直到得到ios 神经网络文本分类器模型 神经网络 中文分词_权重_21个伪句子。把伪句子添加到标注数据集中来提升神经中文分词的表现。由于伪句子和人工标注句子有不同的信息,因此训练时,给两种不同类型的训练数据的损失设置不同的权重:

ios 神经网络文本分类器模型 神经网络 中文分词_权重_22


多任务学习:

文本设计了一个附加的单词分类任务,用于判断一个中文字符序列是否是一个中文词。例如,字符序列“人工智能”是一个中文词,而字符序列“人重智新”就不是一个中文词。该分类任务的正样本直接从给定的中文字典中采样;负样本也是从字典中随机采样一个词,该词中的每个字符以概率p被替换为一个随机选择的字符。重复上述过程多次,直到得到指定数量的样本。该单词分类任务和中文分词任务,共享底层的嵌入层和CNN特征提取层,CNN后面接max-pooling层和sigmoid输出层进行二分类。模型结构图如下:

ios 神经网络文本分类器模型 神经网络 中文分词_权重_23


单词分类任务的损失函数如下:

ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_24


其中,ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_25是单词分类任务训练样本的数量,ios 神经网络文本分类器模型 神经网络 中文分词_权重_26是第i个样本的预测分数,ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_27是第i个样本的分类标签(1 or -1)。

联合训练中文分词模型和单词分类模型,通过联合训练,共享层可以捕获中文字典中的单词信息,从而提高中文分词的性能。最终的总损失函数如下,对每个任务的损失设置不同的权重:

ios 神经网络文本分类器模型 神经网络 中文分词_数据_28


组成上述两种融入字典信息的方法:

伪标注数据生成和多任务学习以不同的方式利用字典信息,可以将他们组合起来,更好的利用字典知识。组合后最终的损失函数如下:

ios 神经网络文本分类器模型 神经网络 中文分词_数据_29

3)《Subword Encoding in Lattice LSTM for Chinese Word Segmentation 》 NAACL 2019

基本思想:

在中文分词中引入子词(subword)信息,首次证明了神经分词中子词的有效性。

首先通过BPE(byte pair encoding)算法从原始数据中构建子词列表,然后使用Lattice LSTM结构将子词信息融入到character-level LSTM表示中。

ios 神经网络文本分类器模型 神经网络 中文分词_权重_30


子词信息可以用来消除字符歧义,如上图所示,子词 “学院”可以推出字符“学”应该是一个名词,而不是一个动词。模型结构:

模型以character-level的BiLSTM-CRF为基础(黑色部分),lattice结构(红色部分)用来融入子词信息。

ios 神经网络文本分类器模型 神经网络 中文分词_中文分词_31


对于一个包含m个字符的输入句子ios 神经网络文本分类器模型 神经网络 中文分词_权重_32, ios 神经网络文本分类器模型 神经网络 中文分词_数据_33表示第 i个字符。 对于每个输入字符ios 神经网络文本分类器模型 神经网络 中文分词_数据_33,将其对应的unigram字符表示ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_35和bigram字符表示ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_36进行拼接作为Bi-LSTM的输入:

ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_37


使用BPE算法基于原始数据生成子词列表,保留子词列表中在给定字典中出现的子词(即保留一些合理的子词)。

lattice LSTM的输入有两部分,一个是子词ios 神经网络文本分类器模型 神经网络 中文分词_ios 神经网络文本分类器模型_38的嵌入表示,其中b表示子词的起始字符,e表示子词的终止字符;另一个是起始字符的隐藏状态ios 神经网络文本分类器模型 神经网络 中文分词_数据_39:

ios 神经网络文本分类器模型 神经网络 中文分词_数据_40


LSTMCell是LSTM单元的一个简化版本,只计算记忆向量ios 神经网络文本分类器模型 神经网络 中文分词_中文分词_41ios 神经网络文本分类器模型 神经网络 中文分词_中文分词_41链接到终止字符用于计算终止字符的隐藏状态。

如果某个字符有多个记忆cell输入,如上图中的“院”,他有两个子词记忆向量“学院”,”科学院“作为输入,此时为每个子词输入设计一个门,来控制它的贡献。

最后将隐藏状态输入到CRF层进行标签推理。