计算机系统应用  2022, Vol. 31 Issue (11): 207-214   PDF    
改进的SemBERT特征重组模型
龚安靖, 陈红英     
华南师范大学 计算机学院, 广州 510631
摘要:SemBERT模型实现了对BERT模型的提升, 但存在两个明显的缺陷. 第一, 模型获得向量表示的能力不足. 第二, 没有从特征的种类出发, 直接使用传统特征进行任务分类. 针对这两个缺陷, 提出了一种新的特征重组网络. 该模型在SemBERT内部添加自注意力机制, 外接特征重组机制, 得到更好的向量表示并且重新分配特征权重. 实验数据表明新的方法在MRPC数据集上比经典的SemBERT模型在F1值上提高了1%. 实现在小数据集上的明显提升, 并且超越了大多数优秀模型.
关键词: 特征重组    向量表示    自注意力机制    特征权重    深度学习    自然语言处理    
Improved SemBERT-based Feature Reorganization Model
Gong An-Jing, CHEN Hong-Ying     
School of Computer, South China Normal University, Guangzhou 510631, China
Abstract: Although the SemBERT model is an improved version of the BERT model, it has two obvious defects. One is its poor ability to obtain vector representation. The other is that it directly uses conventional features to classify tasks without considering the category of the features. A new feature reorganization network is proposed to address these two defects. This model adds a self-attention mechanism into the SemBERT model and obtains better vector representation with an external feature reorganization mechanism. Feature weights are also reassigned. Experimental data show that the F1 score of the new method on the Microsoft Research Paraphrase Corpus (MRPC) dataset is one percentage point higher than that of the classical SemBERT model. The proposed model has significantly improved performance on small datasets, and it outperforms most of the current outstanding models.
Key words: feature reorganization     vector representation     self-attention mechanism     feature weight     deep learning     natural language processing (NLP)    

自然语言处理任务的关键就是学习序列的表示, 因此前人不断的改进模型以提升向量表示的能力. 早期的词袋模型, 例如使用one hot表示单词, 这种方法会形成稀疏矩阵, 过于低效. Mikolov等[1]提出了Word-2Vec模型, 通过无监督学习得到了词向量, 这是一种预训练模型, 提升了词向量的表示精度和效率. Shi等[2]提出双向LSTM网络, 提高模型捕捉上下文信息的能力, 得到更加精准的词向量表示. 但这种表示有明显的缺陷, 当句子的长度超出一个量级时, LSTM会出现梯度消失的问题, 并且文本的局部信息表达能力有限. Mnih等[3]提出了在传统循环神经网络中加入注意力机制, 这使得模型可以更好地捕捉局部信息, 突出局部特征, 学会更好的向量表示. 虽然使用双向LSTM得到了前后文的信息, 但是严格意义来说, 时间片t的计算依赖t–1时刻的计算结果, 而无法获取t后的计算结果, 所以模型得到的词向量表示并没有包括完整的上下文信息.

为解决这个问题, Vaswani等[4]提出了Transformer模型, 并提出了自注意力机制. Transformer通过自注意力机制, 实现了真正意义上的获取前后文信息. 自注意力机制通过设置QKV三种向量, 实现每个单词对一个句子所有单词的信息采集, 得到包含完整上下文信息的词向量. Devlin等[5]提出的BERT模型正是基于Transformer编码部分改进得到, 并且是现在大多数模型的核心编码器.

虽然BERT模型取得了一系列的成果, 但是其编码时只考虑语境信息, 缺少结构化语义信息, 限制了模型的表示能力. 语义角色标注技术提供一种句子级语义分析的方法, 如格文法, 可以得到句法结构与语义之间的关系, 为模型添加了更丰富的语义信息. FrameNet[6]和PropBank[7]提出形式化的语义框架, 可以实现将语义关系表现为谓词-参数结构, 并且解析谓词-参数结构, 是现在常用的语义角色标注框架.

Ganin等[8]引入了梯度反转层 (GRL)来获取公共特征. 公共特征是指在语义信息中, 对于分类是没有明确指示作用的, 例如: 电脑、手机、音响这些词在情感分类中, 起不到明确指示作用. 而纯净特征是相对于公共特征的概念, 如果信息对于分类标签有着很明确的指示作用, 如: 完美、开心表达了积极的分类语义, 糟糕、难过表达了消极的分类语义, 这类特征称之为纯净特征. 通过公共特征实现将域适应嵌入到学习表示的过程中, 使最终的分类决策对域的变化具有更强的鉴别性和不变性, 而不受两个域之间位移的影响.

BERT模型出现后, 自然语言处理任务的研究进入了一个新的阶段. 近两年, 许多以BERT为基础的优秀模型被提出. SemBERT模型[9]将语义角色标注方法与BERT模型相结合, 增加了显式语义结构, 获得了更丰富的语义信息. ELECTRA[10]提出将BERT模型中mask标记换成替代词, 这样做既解决了预训练和微调之间的不匹配问题, 又解决了每批次训练数据中只有 15%的标记被预测导致数据利用率不足的问题. XLNet[11]提出使用自回归模型代替自编码模型, 使用双流注意力机制, 并且引入了transformer-xl机制, 避免了BERT模型中mask方法带来的弊端. LIMIT-BERT[12]提出了语言学信息的多任务BERT, 采用半监督学习策略, 提供与语言模型训练相同的大量语言任务数据, 不仅提高了语言学任务的性能, 而且还受益于正则化效应和一般表征的语言学信息, 实现提升适应新的任务和领域的能力. SAIN[13]的推理模块将显式语境化语义作为补充输入, 通过注意机制实现对语义线索的一系列推理, 提高了模型的理解性能. 除此之外, Qin等[14]提出了使用纯净特征完成分类的方法. 以BERT为特征提取器并借助梯度反转层, 提取了公共特征, 然后在公共特征上做映射, 获得纯净特征, 并送入分类层完成任务.

然而这些方法大部分都只是提升了模型对文本内容的理解, 提高了模型的向量表示能力, 但是却没有从特征的种类出发, 而是直接使用传统特征或者纯净特征进行任务分类, 没有根据实际任务改变纯净特征和公共特征的权重以实现特征重组, 从而得到更合适的特征向量.

因此, 本文基于SemBERT模型, 使用两种思路构建模型. 一方面, 增加自注意力机制来提升模型向量表示的能力. 另一方面, 添加特征重组层, 提取公共特征和纯净特征, 再通过注意力机制改变共同特征与纯净特征的权重, 完成对模型的构建.

1 模型方法

图1描述了模型框架. 由特征提取部分和特征重组部分组成. 图2所示的P-net和C-net是特征提取部分, 内部结构完全一样(讲解模型时将以P-net为例), 用于提取传统特征(包含了公共特征和纯净特征). 特征重组部分则由梯度反转层(GRL), 特征映射层(OPL), 简单注意力机制(Simple_Attention)组成. 梯度反转层用于提取公共特征, 特征映射层用于提取纯净特征, 简单注意力机制用于重组共同特征和纯净特征.

图 1 改进的SemBERT特征重组模型

图 2 特征提取器(P-net/C-net)

P-net可以处理多个序列输入, BERT将序列进行分词处理, 得到向量表示, 然后再通过卷积神经网络卷积池化合并成原始词, 得到左边的向量表示(为了去对齐语义标签部分).

与此同时, 右边部分也将通过语义角色标注在句子中找到谓词, 然后进行参数标记, 得到语义标签. 接着将标注的序列嵌入到向量表示, 经过BiGRU层后, 进行一个自注意力机制(这也是我们与SemBERT模型的重要区别), 获得一个更好的向量表示, 最后与左边部分的向量表示进行拼接, 将拼接的结果进行自注意力机制, 形成了联合表示. 再将联合表示送入到模型的特征重组部分, 进入到GRL和OPL后, 得到公共特征和纯净特征, 再将纯净特征与公共特征进行简单自注意力, 得到重组后的特征向量, 也就完成了下游任务的最终表示. 其整体更新过程如算法1所示.

算法1. 特征重组模型算法

输入: D: 包含n个句子对的数据集

输出: PD (释义|D)

1) 通过get_train/dev/test/label _ex-amples()函数, 获得训练集, 验证集, 测试集和标签集;

2) 通过convert_examples_to_features()和transform_tag_features()函数, 加载数据, 并且进行数据预处理;

3) For each iteration b=1, 2, …, Mdo;

4)   C-net部分:

5)  将数据送入模型特征提取器;

6)  使用BERT加载每个分词对应的embedding, 得到嵌入矩阵Xi;

7)  用padding将每个词的分词填充到相同的长度;

8)  使用卷积+池化将分词合并成原始词e(xi);

9)  将预训练好的语义映射为向量Vi;

10)  将向量Vi送入BiGRU层和self-attention层得到e(vi);

11)  将e(xi)和e(vi)两边数据进行拼接, 然后送入self-attention层得到传统特征向量 Hi;

12)  将特征向量H1i (第1次为传统特征, 之后为公共特征)经过GRL;

13)  执行分类;

14)  P-net部分:

15)  重复步骤5)–步骤11)得到传统特征向量Hi;

16)  使用传统特征Hi和公共特征H1i做特征映射, 得到纯净特征H2i;

17)  将纯净特征H2i和公共特征H1i送入到Simple_Attention层进行特征重组得到重组后的向量final_vi;

18)  执行分类;

19)  C-net, P-net参数更新;

20) End for

1.1 语义角色标签

在数据预处理过程中, 使用预先训练的语义标记器将句子的每个单词注释上标签. 对于一个特定的句子, 会有多个谓词-参数结构. 如图3所示, 对于序列“a person is at a diner, ordering an omelette”, 会被语义标记器, 增添两组语义角色标签. 这两组语义角色标签最后会随着编码层一起进行向量表示, 丰富语义, 提供更多的文本信息.

1.2 编码

P-net的BERT部分将原始文本序列送到预先训练的BERT模型. 输入句子X = {x1, …, xn}是长度为n的单词序列, 它首先被切成很多个子词. 然后, BERT内部的Transformer通过自注意力机制获取子词的上下文信息, 得到每个子词的词向量表示.

图 3 语义角色标签示例

语义标签部分, 每个谓词有m组标注序列, T = {t1, …, tm}, 其中第i组标注序列ti包含n个标签, 表示为 $\{ label_1^i,\;label_2^i,\;\cdots,\;label_n^i\} $ . 标签是单词级的, 而不是分词级, 所以长度等于句子X的原始长度n. 将语义信息进行嵌入, 将这些标签映射到向量 $\{ v_1^i,\;v_2^i, \;\cdots ,\;v_n^i\} $ , 并送入到BiGRU层获得m组标签序列在空间中的标签表示:

$ e\left( {{t_i}} \right){\text{ }} = {\text{ }}BiGRU({v^i}_1{\text{, }}{v^i}_2, \cdots , {v^i}_n) $ (1)

其中, $0 \lt i \leqslant m$ . 再对e(ti)使用自注意力机制获得更好的表示ea(ti):

$ {e_a}\left( {{t_i}} \right){\text{ }} = {\text{ }}Attention\left( {e\left( {{t_i}} \right)} \right) $ (2)

对于m组标签, 让L代表单词Xi, e(Li) = {ea(t1), …, ea(tm)}, 将m组标签的得到的结果进行拼接, 并将它们送到全连接层, 以获得更加精简的表示 $e' (L_i) $ :

$ e' (L_i){\text{ }} = {\text{ }}{W_1} \cdot e\left( {{L_i}} \right) + {b_1} $ (3)

其中, W1b1都是可训练的参数, 整个序列的表示则为et:

$ {e^t} = {\text{ }}\{ e'\left( {{L_1}} \right), \cdots , e'\left( {{L_n}} \right)\} $ (4)
1.3 整合

当序列经过了左边部分BERT层的编码和右边部分语义的显式标注、BiGRU层与自注意力层的信息提取, 接着需要将两边的信息进行整合. 由于BERT模型基于子词的训练, 而语义标注模块是基于原始词, 所以两边的序列长度不同, 需要一个对齐的过程. 如果将语义标注的序列进行拆分与左边对齐, 将会失去意义, 例如像标注的逻辑主体, 开始的位置等这种信息进行拆分, 不符合逻辑. 所以选择把子词合并成原始词的方法. 将每个单词的子单词进行分组, 并且使用卷积加池化的方式来获得原始词的表示. 以一个词为例, 假设单词Xi由一系列子词[s1, s2, …, sl]组成. 其中, l为单词Xi的子单词数.

(1)将来自BERT的子词sj表示为e(sj), 使用一个Conv1D层:

$ {e'_{{i}}} = {}{W_2}[e({s_{{i}}}), e({s_{{{i}} + {{1}}}}), \cdots , e({s_{{{i}} + {{k}} - {{1}}}})] + {}{b_2} $ (5)

其中, W2b2是可训练参数, k是核大小.

(2)将ReLU和max pooling应用到xi的输出嵌入序列中:

$ {e''_{{i}}} = {\text{ }}ReLU\left( {{{e'}_{{i}}}} \right) $ (6)
$ e\left( {{x_{{i}}}} \right){\text{ }} = {\text{ }}MaxPooling({e'' _1}, \cdots , {\text{ }}{e'' _{{{l}} - {{k}} + {{1}}}}) $ (7)

经过上述操作, 序列X的表示为ew= {e(x1), …,e(xn)}∈Rn×dw, dw表示词向量维度. 实现了把子词合并成原始词, 完成了与语义标注部分的对齐.

(3)将左右部分连接起来得到向量h = ew||et, 并将h送入到自注意力机制中:

$ H{} = {}Attention{}\left( h \right) $ (8)

最后, 将得到的向量H作为文本信息的传统特征向量表示送入到特征重组机制中.

1.4 特征重组

把P-net模型得到的H称为H1, C-net得到的H称为H2, 两个向量得到的过程是一样的. 现在需要将H2送入到GRL层. 这部分网络便是通过梯度反转层来学习公共特征.

GRL是在梯度反向传播的过程中让梯度反转, 求导值添加负号, 让它不向最优解靠拢. 之所以这样做是因为, 公共特征通常是分类器无法区分的特征, 其提取过程如下:

(1)通过数学公式, 梯度反向层被两个不相容的方程定义, 式(9)和式(10)描述了其正向和反向传播行为:

$ GRL(x) = x $ (9)
$ \frac{{\partial GRL(x)}}{{\partial x}} = - \lambda { I} $ (10)

其中, x为向量表示, I为梯度, $ \lambda $ 为超参数.

(2)将特征向量H2通过GRL层处理后, 得到 $ GRL\left( {{H_2}} \right) = {\widetilde H_2} $ . 然后再将 $ {\widetilde H_2} $ 送到分类器中:

$ {Y_{{\rm{GRL}}}} = {\text{ }}{\textit{Softmax}}({\widetilde H_2} \cdot {W_3} + {\text{ }}{b_3}) $ (11)
$ Los{s_c} = {{ - }}\left( \begin{gathered} {Y_{{\rm{truth}}}} \cdot \log ({Y_{{\rm{GRL}}}}) + \\ (1 - {Y_{{\rm{truth}}}}) \cdot \log (1 - {Y_{{\rm{GRL}}}}) \\ \end{gathered} \right) $ (12)

其中, W3, b3为权重, Ytruth是样本标签, 式(12)描述了预测值f(x)与真实值Y的不一致程度. 分类器进行分类后, 再通过反向传播和优化函数得到公共特征的向量表示.

当完成了右边的公共特征提取, 将 $ {\widetilde H_2} $ 送到特征映射层完成纯净特征的提取. 简单的思路就是, 将H1投影到 $ {\widetilde H_2} $ 的正交方向上. 与公共特征正交的特征空间是完全纯净的, 借助特征映射层(OPL)来完成这一目标:

(1)将H1 $ {\widetilde H_2} $ 上做投影, 得到了 $ {H_1}^\prime $ :

$ {H_1}^\prime = {\text{ }}Proj({H_1}, {\widetilde H_{_2}}) $ (13)

其中, Proj是一个投影公式:

$ Proj\left( {x, y} \right){\text{ = }}\frac{{x \cdot y}}{{\left| y \right|}} \cdot \frac{y}{{\left| y \right|}} $ (14)

其中, x, y都是向量.

(2)当完成了H1 $ {\widetilde H_2} $ 上的投影得到 $ {H_1}^\prime $ 后, 由数学知识可得到纯净的分类向量 $  {\widetilde{H}}_{1} $ :

$  {\widetilde{H}}_{1}=\text{ }{H}_{1}-{H}_{1}{}^{\prime } $ (15)

最后使用一个简单的注意力机制将公共特征和纯净特征重组.

(1)将纯净特征向量和公共特征向量分别送入到线性层, 各自得到一个权重:

$ {w_p} = {\text{ }}({\widetilde H_1} \cdot {W_4} + {\text{ }}{b_4}) $ (16)
$ {w_c} = {\text{ }}({\widetilde H_2} \cdot {W_5} + {\text{ }}{b_5}) $ (17)

其中, W4、b4、W5、b5是可训练参数

(2)把两个权重拼接, 然后Softmax, 于是就得到了两个向量各自对应的权重:

$ w{\text{ }} = {\text{ }}{\textit{Softmax}}\left( {\left[ {{w_p}, {w_c}} \right]} \right) $ (18)

(3)将对应的权重和向量相乘, 得到了重新分配后的纯净特征向量和公共特征向量:

$ at{t_p}{\text{ }} = {\text{ }}w\left[ 0 \right] \cdot {\widetilde H_1} $ (19)
$ at{t_c}{\text{ }} = {\text{ }}w\left[ 1 \right] \cdot {\widetilde H_2} $ (20)

(4)最后把它们相加得到了重组后的向量:

$  final\text{ }=\text{ }at{t}_{p}+at{t}_{c} $ (21)

(5)得到这重组后的向量再送入分类器中:

$ {Y_{{\rm{OPL}}}} = {\text{ }}{\textit{Softmax}}(final \cdot {W_6} + {\text{ }}{b_6}) $ (22)
$ Los{s_p} = {{ - }}\left( \begin{gathered} {Y_{{\rm{truth}}}} \cdot \log ({Y_{{\rm{OPL}}}}) + (1 - {Y_{{\rm{truth}}}}) \cdot \log (1 - {Y_{{\rm{OPL}}}}) \\ \end{gathered} \right) $ (23)

其中, W6b6是可训练参数, Ytruth是样本标签. 式(23)述了预测值f(x)与真实值Y的不一致程度.

2 实验 2.1 实验设置

实验基于SemBERT的PyTorch框架实现. 其中, 使用的是基础型BERT, 将预训练好的BERT权值, 送入下游任务进行微调. 学习率初始值设置为1E–5, 预热学习率为0.1, L2正则化为0.01. 批量大小设置为24. 设置的epoch值为10. 语义标签的组数, 设置为3. SRL的向量维度为64. 使用这些参数, 获得了最好的实验结果.

2.2 数据集

数据集选取Glue[15]的微软研究院释义语料库 (Microsoft research paraphrase corpus, MRPC), 相似性和释义任务, 是从在线新闻源中自动抽取句子对, 并人工注释句子对中的句子是否在语义上等效. 类别并不平衡, 其中68%的正样本, 使用F1值(平衡F分数)为评价准则, 其中F1的定义如下所示:

$ {F1}=2\times \frac{precision\times recall}{precision+recall} $ (24)

其中, precision是精准率, recall是召回率, 定义如下:

$ precision=\frac{{TP}}{{TP+}FP} $ (25)
$ recall=\frac{{TP}}{{TP+}FN} $ (26)

其中, TP表示预测为1, 实际为1, 预测正确; FP表示预测为1, 实际为0, 预测错误; FN表示预测为0, 实际为1, 预测错误.

该数据集的样本个数: 训练集3668个, 开发集408个, 测试集1725个.

2.3 实验结果

表1显示了实验结果, 在MRPC数据集上, 本文模型比SemBERT模型在F1值上提升了1%, 从88.2%提升到了89.2%, 这个结果也超过了之前的优秀模型. 因此可以说明, 在无法获得大量数据的时候, 可以使用两种方法提升模型的能力: 第一, 通过自注意力机制获得更丰富的语义和更好的向量表示; 第二, 通过特征重组机制, 修改纯净特征与公共特征的权重, 让得到的数据特征表示更加准确.

表 1 数据集的基准测试结果和本文模型的数据结果(结果来自于GLUE官网) (%)

2.4 消融实验和分析

为了分别研究这两个方法带来的效果, 进行了消融实验, 来验证这两个方法是否都能提高模型的性能. 除此之外, 进行一组直接使用纯净特征完成任务的实验, 因为纯净特征直接表达了句子感情, 例如, 我很开心, 用“开心”就可以表达整个句子的感情, 所以可能会让任务完成的更高效. 作为对比, 再添加一个直接使用共同特征完成任务的实验. 消融实验使用的仍然是MRPC数据集, 结果如表2 所示. 为了达到更加直观的效果, 所有实验的参数(包括完整模型)都使用了相同的大小.

表 2 消融实验结果 (%)

首先, 去掉了简单注意力机制部分, 直接使用纯净特征来完成任务, 得到的F1值为82.3%, 仅提升了0.1%. 这与猜想不一致, 按照之前的分析, 纯净特征是可以取得不错的效果. 但是忽略了如果只使用纯净特征, 可能会使得句子不完整, 语义不清. 例如, 我开心地哭了. 直接使用纯净特征, 就剩下“开心, 哭”, 这两个词, 让模型无法区分情感. 所以尽管共同特征不重要, 却是不可缺少的一部分, 否则会使得句子失去完整语义, 让模型得不到很好的提升.

然后, 也尝试直接使用公共特征来完成任务, 得到的实验结果F1值仅为79.9%, 比基础模型SemBERT低了8.3%, 比本文模型低了9.3%, 这个结果和本文猜想一致, 所有类别都有的特征无法起到好的指示作用, 例如, 情感分类中的 “你我他”, 这些词是很难起到很好的指示作用的. 因此根据这两个消融实验, 就说明了使用简单的注意力机制将纯净特征和公共特征重新组合的必要性, 也说明了模型的合理性.

其次, 去掉了特征重组部分, 使用了SemBERT+self-attention组合, 这里没有拆分两个自注意力机制, 而是把他们看做一个整体. 因为, 这两个自注意力机制都是用来获得更好的向量表示, 都属于第一个方法. 通过实验的结果, 自注意力机制的确能够提高模型的性能, 在MRPC数据集上提升了0.5%. 这个结果分析可以得到两个结论, 第一, 自注意力机制起到作用, 经过之前的分析, 能够确定自注意力机制帮助模型更好地获得向量表示, 更好地获得文本信息; 第二, 更好的向量表示可以帮助模型提升对文本的理解, 帮助提高模型的性能.

接着, 保留了特征重组的部分, 去除了自注意力机制, 研究改变纯净特征和公共特征的权重比, 对模型产生的影响. SemBERT + Restructuring feature 组合在MRPC上取得了88.6%的F1值, 提升了0.4%. 这个结果分析可以得到3个结论, 第一, 特征重组机制起到了积极作用. 第二, GRL和OPL能够提取共同特征、纯净特征, 简单的注意力机制也能实现改变纯净特征和共同特征的权重比, 并且帮助模型实现重组特征得到更合适的特征向量; 第三, 纯净特征与公共特征对任务起到的作用应该是不同的, 改变纯净特征和共同特征的比重确实能提高模型的性能.

最后, 将5个模型的训练损失值, 验证损失值, 还有验证集的F1结果画成了折线图进行比较, 如图4图6所示. 重点关注横坐标epoch_2、epoch_3、epoch_4对应的结果, 因为那是几个模型取得最好结果的epoch值, 可以发现完整模型的3个结果均不是最好的那个, 尤其是在训练损失值是最高的. 虽然参数最多, 但能在测试集得到最好的结果, 这说明完整模型最不容易过拟合, 可以间接体现模型的有效参数更多, 这也体现了模型的优越性.

图 4 消融实验5个模型的训练损失值变化曲线

将部分模型与完整模型进行对比, 明显发现这两个组件叠加在一起会产生更好的效果. 通过消融实验也能证明, 本文提升模型的两种方法的正确性, 并且自注意力机制和特征重组也能起到优化向量表示和改变特征比重的作用.

图 5 消融实验5个模型的验证损失值变化曲线

图 6 消融实验5个模型的验证集结果F1值变化曲线

3 结论

本文提出了一种新的特征重组网络. 该方法从更好地获取语义信息、向量表示和重新分配特征权重出发, 在SemBERT内部添加自注意力机制, 外接特征重组机制, 实现了在MRPC数据集上对SemBERT的提高. 这证明了方法的正确性, 自注意力机制和特征重组机制的有效性. 未来的研究将继续从两个角度出发进行改进, 在特征重组方面, 目前使用改进的SemBERT+GRL提取公共特征, 会使得模型过于复杂, 参数量过大, 所以尝试寻求一个新的特征提取器, 让模型可以更加简洁高效的提取公共特征. 除此之外, 尝试去改善特征重组的方法, 现在使用的是一个简单的注意力机制, 下一步希望找到更好的方法去重组公共特征和纯净特征, 使得重组的特征更加有效. 从语义信息的角度出发, 希望能够进一步优化特征提取器, 让模型获得更好的向量的表示, 提取到更丰富的传统特征.

参考文献
[1]
Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space. Proceedings of the 1st International Conference on Learning Representations. Scottsdale, 2013.
[2]
Shi XJ, Chen ZR, Wang H, et al. Convolutional LSTM network: A machine learning approach for precipitation nowcasting. Proceedings of the 28th International Conference on Neural Information Processing Systems. Montreal: MIT Press, 2015. 802–810.
[3]
Mnih V, Heess N, Graves A, et al. Recurrent models of visual attention. Proceedings of the 27th International Conference on Neural Information Processing Systems. Montreal: MIT Press, 2014. 2204–2212.
[4]
Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need. Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach: Curran Associates Inc., 2017. 6000–6010.
[5]
Devlin J, Chang MW, Lee K, et al. BERT: Pre-training of deep bidirectional transformers for language understanding. Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. Minneapolis: ACL, 2019. 4171–4186.
[6]
Baker CF, Fillmore CJ, Lowe JB. The Berkeley FrameNet project. Proceedings of the 36th Annual Meeting of the Association for Computational Linguistics and 17th International Conference on Computational Linguistics. Montreal: ACL, 1998. 86–90.
[7]
Palmer M, Gildea D, Kingsbury P. The proposition bank: An annotated corpus of semantic roles. Computational Linguistics, 2005, 31(1): 71-106. DOI:10.1162/0891201053630264
[8]
Ganin Y, Lempitsky V. Unsupervised domain adaptation by backpropagation. Proceedings of the 32nd International Conference on Machine Learning. Lille: PMLR, 2015. 1180–1189.
[9]
Zhang ZS, Wu YW, Zhao H, et al. Semantics-aware BERT for language understanding. Proceedings of the 34th AAAI Conference on Artificial Intelligence. New York: AAAI Press, 2020. 9628–9635.
[10]
Clark K, Luong MT, Le QV, et al. ELECTRA: Pre-training text encoders as discriminators rather than generators. Proceedings of the 8th International Conference on Learning Representations. Addis Ababa: OpenReview.net, 2020.
[11]
Yang ZL, Dai ZH, Yang YM, et al. XLNet: Generalized autoregressive pretraining for language understanding. Proceedings of the 33rd International Conference on Neural Information Processing Systems. Vancouver, 2019. 517.
[12]
Zhou JR, Zhang ZS, Zhao H, et al. LIMIT-BERT: Linguistics informed multi-task BERT. Proceedings of the Findings of the Association for Computational Linguistics: EMNLP 2020. ACL, 2020. 4450–4461.
[13]
Zhang SL, Zhao H, Zhou JR, et al. Semantics-aware inferential network for natural language understanding. Proceedings of the AAAI Conference on Artificial Intelligence. Palo Alto: AAAI Press, 2020. 14437–14445.
[14]
Qin Q, Hu WP, Liu B. Feature projection for improved text classification. Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics. ACL, 2020. 8161–8171.
[15]
Wang A, Singh A, Michael J, et al. GLUE: A multi-task benchmark and analysis platform for natural language understanding. Proceedings of the 7th International Conference on Learning Representations. New Orleans: OpenReview.net, 2019.
[16]
Radford A, Narasimhan K, Salimans T, et al. Improving language understanding by generative pre-training. https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf. 2018.