AAAI-21的一篇文章:
论文主要是提出了一个 CoGAT 模型,用来联合学习 DCR 和 SC。模型的核心部分是提出了一个 协同的图交互层(co-interactive graph interaction layer),用来同时建模 上下文信息 和 交互信息。
Abstract
在对话系统中,对话行为识别和情感分类是获取说话者意图的两个相关任务,其中对话行为和情感可以分别表示说话者的显性和隐性意图。对话上下文信息(上下文信息)和交互信息是这两个相关任务的两个关键因素。但是,现有的方法都没有同时考虑这两个重要的信息来源。在本文中,我们提出了一个协同交互式图形注意网络(CoGAT)来共同完成这两项任务。模型的核心模块是提出的协同交互图交互层,其中交叉话语连接和交叉任务连接被构建并彼此迭代更新,实现同时考虑两种类型的信息。在两个公共数据集上的实验结果表明,我们的模型成功地捕获了这两个信息,并达到了最先进的性能。此外,我们发现上下文信息和交互信息的贡献并不完全与单词的上下文特征重复(即,使用 BERT 等预训练模型能进一步提升 CoGAT 模型性能) (BERT,Roberta,XLNet)。
Introduction
主要介绍两个任务 & 两种信息特征。
对话行为识别和情感分类是对话系统中正确理解说话者话语的两个相关任务。
-
对话行为识别(Dialog act recognition,DAR):旨在获取对话中每句话语的语义标签,它代表了说话者的显示意图。
-
情感分类(Sentiment classification,SC):旨在检测对话中每句话语的情感,它代表了说话者的隐式意图。
问题定义
更具体的说:
- DAR 可以被看作一个 序列分类任务,它将话语序列 ( u 1 , u 2 , . . . , u N ) (u_1, u2, ..., u_N) (u1,u2,...,uN) 映射为对应的 话语序列 DA 标签 ( y 1 d , y 2 d , . . . , y N d ) (y_1^d, y_2^d, ..., y_N^d) (y1d,y2d,...,yNd),其中 N 表示对话中的语句数量。
- SC 也可以被看为一个 句子级情感分类任务,它用来预测对话中话语对应的情感标签 ( y 1 s , y 2 s , . . . , y N s ) (y_1^s, y_2^s, ..., y_N^s) (y1s,y2s,...,yNs)。
有两种信息,对 DCR 和 SC 预测起重要作用:
- 交互信息:两个任务(DCR & SC)之间的交互信息;
- 上下文信息:同一个对话中话语之间的上下文信息。
举个栗子:
如图2 所示,为了预测 User B 的情感标签,User B 的交互信息(即,DA Label “Agreemet”,红色部分)以及上下文信息(即,User A 的情感标签,蓝色部分)都对当前情感标签(黄色部分)起到重要作用。
现有方法不足
- 现有方法要么只考虑了一种信息,要么是以流水线形式同时考虑两种信息(DCR-Net)。
- 流水线的缺点:分别建模两种信息。
本文模型
基于现有方法的不足,本文提出用于联合 DCR 和 SC 的协同交互式图注意网络(CoGAT)。
模型的核心部分是提出了一个 协同的图交互层(co-interactive graph interaction layer),它能同时建模以上两种信息。
其中图的边主要有两种类型:
- cross-utterances connection
- 其中,同一个对话中所有语句节点均相连,用来获取上下文信息
- cross-tasks connection
- 其中,一个任务中的当前节点和另一个任务中所有节点相连,用来建模交互信息。
最终,这两种类型的边的信息在同一个框架中同步更新,即在同一个模型中同时考虑了交互信息和上下文信息。
Contribution
- 我们首次尝试同时结合上下文信息和交互信息进行联合对话行为识别和情感分类;
- 我们提出了一种协同交互的图注意网络,其中交叉任务连接和交叉话语连接相互迭代更新,实现了同时包含上下文信息和交互信息的模型;
- 在两个公开数据集上的实验表明,我们的模型获得了实质性的改进,达到了最先进的性能。此外,使用预先训练的模型(BERT,Roberta,XLNet)时,本文的模型性能会进一步提升。
Approach
CoGAT 模型主要包含 3 个部分:
- shared hierarchical speaker-aware encoder
- 用来 encode 对话信息 & 说话者信息
- stack of co-interactive graph layer
- 用来同时考虑上下文信息和交互信息
- decoders
- 两个独立解码器,分别用来 DCR 和 SC
- 两个独立解码器,分别用来 DCR 和 SC
Vanilla Graph Attention Network
这里介绍标准的 GAT 模型
Hierarchical Speaker-Aware Encoder
hierarchical speaker-aware encoder 被 DCR 和 SC 共享,用来利用隐含的共享知识。
主要包含两个部分:
- 首先,利用一个 BiLSTM 来捕捉 words 之间的临时关系;
- 然后,利用一个 speaker-aware GAT 来合并说话者信息。
Utterance Encoder with BiLSTM
符号定义:
- 对话 C = ( u 1 , u 2 , . . . , u N ) C = (u_1, u_2, ..., u_N) C=(u1,u2,...,uN),包含 N 个语句;
- 每条语句 u t = ( w 1 t , w 2 t , . . . , w n t ) u_t = (w_1^t, w_2^t, ..., w_n^t) ut=(w1t,w2t,...,wnt) ,包含 n 个单词。
首先,进行词嵌入表示;
然后,将 BiLSTM 的最终隐藏状态
h
n
t
h_n^t
hnt 作为
u
t
u_t
ut 的特征表示
e
t
e_t
et。
对话 C 中的 N 句话可以被表示为 E = ( e 1 , e 2 , . . . , e N ) E = (e_1, e_2, ..., e_N) E=(e1,e2,...,eN).
Speaker-Level Encoder
提出使用一个 Speaker-aware GAT 来建模说话者信息,这使得模型能够更好地理解同一说话者的情绪和行为意图是如何变化的。
图的结构:
-
顶点
- 对话中每个语句作为一个顶点,被初始化为 E = ( e 1 , e 2 , . . . , e N ) E = (e_1, e_2, ..., e_N) E=(e1,e2,...,eN) (即,BiLSTM 的输出)
-
边
- 为了显示建模对话中说话者信息,对话中属于同一个说话者的顶点要连接起来。
- 即, A ∈ R N ∗ N A \in R^{N * N} A∈RN∗N。 A i j = 0 A_{ij} = 0 Aij=0, if node i and nod j 属于同一个说话者。
Speaker-aware GAT 堆叠 m 层后, 我们获得了 speaker-aware encoding features
E
m
=
(
e
1
m
,
e
2
m
,
.
.
.
,
e
N
m
)
E^m= (e_1^m, e_2^m, ..., e_N^m)
Em=(e1m,e2m,...,eNm).
最后,利用两个 BiLSTM 将 E m E^m Em 划分为关于 DCR 和 SC 的两个任务相关的两个部分:
- D 0 = B i L S T M ( E m ) D^0 = BiLSTM(E^m) D0=BiLSTM(Em),其中 D 0 = ( d 1 0 , . . . , d N 0 ) D^0 = (d_1^0, ..., d_N^0) D0=(d10,...,dN0);
- S 0 = B i L S T M ( E m ) S^0 = BiLSTM(E^m) S0=BiLSTM(Em),其中 S 0 = ( s 1 0 , . . . , s N 0 ) S^0 = (s_1^0, ..., s_N^0) S0=(s10,...,sN0)
Stacked Co-Interactive Graph Layer
模型的核心优点是:在同一个框架中建模交互信息和上下文信息,并同时更新二者。
具体来说,该模块采用了一个 GAT 来建模 cross-utterances connection 和 cross-tasks connection
-
顶点:
- 由于同时考虑两个任务,所以这里需要 2N 个 nodes。其中,N 个用来 DCR,另外 N 个用来 SC。
- 初始化: 采用 Speaker-aware encoding features 来初始化顶点状态,即 H 0 = [ D 0 ; S 0 ] = [ d 1 0 , . . . , d N 0 , s 1 0 , . . . , s N 0 ) H^0 = [D^0;S^0] = [d_1^0, ..., d_N^0, s_1^0, ..., s_N^0) H0=[D0;S0]=[d10,...,dN0,s10,...,sN0)
-
边
- 图中主要存在两种类型的边:
- cross-utterances connection:同一个对话中的所有节点均相连,即 DCR 的 N 个节点都相连;
- cross-tasks connection:不同任务之间的顶点均相连,即一个任务的顶点和另一个任务中的 all nodes 都是有边连接的。
最终,更新公式为:
- d i ( l ) d_i^{(l)} di(l) 表示 DCR 中第 l 层的第 i 个节点;
-
s
z
(
l
)
s_z^{(l)}
sz(l) 表示 SC 中第 l 层的第 z 个节点;
Decoder for Dialog Act Recognition and Sentiment Classification
为了学习深层特征,我们应用了多层 stacked graph attention network。经过 L 层后,我们获得最终特征: E L = [ D L ; S L ] E^L = [D^L; S^L] EL=[DL;SL]。
为了使特征更任务化,这里对对 D L ; S L D^L; S^L DL;SL做了一下变换:
- S L S^L SL 采用一个线性变换,即 S L ′ = L i n e a r ( S L ) S^{L'} = Linear(S^L) SL′=Linear(SL);
- D L D^L DL 经过一个 LSTM,即 D L ′ = L S T M ( D L ) D^{L'} = LSTM(D^L) DL′=LSTM(DL)
最后,分别采用两个独立的 decoder 来进行 DCR 和 SC:
Joint Training
最终的联合优化目标函数为:
Experiments
dataset
Daily-dialogues dataset | Mastodon dataset | |
---|---|---|
train set | 11,118 | 1,000 |
dev set | 1,000 | 239 |
test set | 1,000 | 266 |
- Daily-dialogues dataset
- train set:11,118 次对话
- dev set:1,000
- test set:1,000
- Mastodon dataset
- train set:1,000 次对话
- dev set:239
- test set:266
Experimental Settings
- hidden units:256
- embedding dimensionality:
- Mastodon:800
- Dailydialog:128
- L2 正则化: 1 × 1 0 − 8 1 × 10^{−8} 1×10−8
- GAT 中增加 residual connection,减少过拟合
- optimizer:Adam
- stacked number of GAT
- Mastdon dataset: 2层
- Dailydialog dataset :3层
- epoch number:
- Mastodon:300
- Dailydialog:100
- 在 dev set 上挑选 best model
Overall Results
- 评价标准:Precision、Recall 和 F1 score。
- baseline中,第一栏只考虑 DAR,第二栏只考虑 SC,第三栏同时考虑 DAR & SC;
- 结果分析:
- 在两个数据集上,本文模型在 3 个评价标准上优于所有单任务的模型(第一、二栏);
这表明本文模型能考虑 交互信息 和 上下文信息,可以使模型性能得到改善;
- 和联合任务模型相比,本文模型也有很大改善:
- 在 Mastdon dataset 上,和 DAR-Net 相比时,本文模型的 F1 score 在 DAR 和 SC 分别提升了 3.0% 和 1.9%;
- 在 Dailydialog dataset 上,也提升了
这表明同时考虑、更新 交互信息 和 上下文信息的有效性(DAR-Net 是分别考虑二者的)
- 在两个数据集上,本文模型在 3 个评价标准上优于所有单任务的模型(第一、二栏);
Analysis
消融试验
采用消融试验,验证模型各个部分的有效性:
- without cross-tasks connection
- 验证交互信息的有效性
- 做法:在图中,移除 cross-tasks connection
- without cross-utterances connection
- 验证上下文信息的有效性
- 做法:在图中,移除 cross-utterances connection
- separate modeling
- 验证同时建模两种信息的有效性
- 做法:移除 co-interactive interaction layer,而是才用两个独立的 sub GAT 来建模 cross-utterance connection and cross-task connection
- co-attention mechanism
- 验证同时建模两种信息优于采用 pipeline 的形式分别建模二者;
- 做法:将 co-interactive interaction layer 替换为 DCR-Net 中的 co-attention mechanism
- without speaker information
- 验证捕获说话者信息的有效性;
- 做法:移除 speaker-aware encoder,仅仅采用 BiLSTM 进行 encode
预训练模型
- 验证使用预训练模型能进一步提升本文模型的性能;
- 做法:将 hierarchical speaker-aware encoder 替换为 BERT
预训练模型能提供 丰富的语义特征…
在 Mastodon dataset 上的结果,如图4 所示:
为了进一步验证预训练模型能进一步提升本文模型的性能,我们还使用了 Roberta, XLNet 预训练模型进行试验对比,结果如表3 所示:
Conclusion
在本文中,我们提出了一个协同交互图注意力网络,其中交叉话语连接和交叉任务连接相互迭代更新,实现了在一个模型中同时建模上下文信息和相互交互信息。在两个数据集上的实验表明了所提模型的有效性,我们的模型达到了最先进的性能。此外,我们分析了在我们的联合模型中加入预训练模型的效果,发现当与预训练模型(BERT,Roberta,XLNet)结合时,我们的模型性能能得到进一步提升。