[NLU] DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation

总述:

最大的特色就是将GCN用在了对话情感识别上,这里的coversation可能是不止两个人的。然后故事写得很好,inter-dependency和intra-dependency还有self-dependency唬的我一愣一愣的。

主要模型:

inter-depencency   intra-dependency

所谓的inter-dependency其实就是说某一个speak对其他speaker情感的影响,或者说当前这个speaker受到其他speaker的影响(反正是受到外界的影响),而intra-dependency或者那个self-dependency就是受到自己前面说的话的影响。在这里作者就是一个用其他人说的话做了个encoder,一个用自己以前说的话做encoder(模型很简单故事很精彩,如果我理解错了,请各位大佬不吝赐教)

模型:

如图:主要模型分为三个部分,一个encoder部分,将用户的话语encoder成向量。第二个是个speaker-level context encoder部分,就是分用户进行encoding,也是建立所谓的inter-dependency和intra-dependency的时候,实质是通过gcn的传播找到各句话之间的联系。第三个部分就是一个emotion classify层了,这个十分简单。我觉得最有意思的一点就在于,建图方式

[NLU] DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation_第1张图片

第一部分:

先用glove embedding和cnn抽取了每一个句子的特征,得到了句向量。然后再把整个对话塞给GRU,得到了最终每一句话的句向量。

第二部分:建图很有意思

首先,每一句话是一个节点,并且第一阶段得到的句向量作为node embedding。

建边的方式也挺简单的,因为没一个节点是一句话,那么一句话的上面N句话和下面F句话就是(N+F)个节点,当前这句话代表的节点和这(N+F)个节点有边QAQ

边的权值:就是看一下当前这个节点的embedding gi和哪个节点的embedding最相近,过一层softmax归一化一下就是边的权值

[NLU] DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation_第2张图片

接下来还有个边的关系:因为讲的故事中有涉及到两种dependency,所以图的边还有了一种新的属性--关系,其实给每两个不同人说的话定义一个关系,然后又考虑到这两个人说的两句话的先后关系,所以两个人之间实际上有两种关系。一种A在B前面说话,一种B在A前面说话。然后这样子的话M个人其实就有M平方种关系了(考虑自己和自己)。

总算把图建好了,这个图就有个连接的权值矩阵,有个关系矩阵。

做GCN的过程:

[NLU] DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation_第3张图片

[NLU] DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation_第4张图片

其中r是关系,阿尔法是权值,Wr是关系矩阵,gi是初试node embedding。N表示临接节点。

第三部分:

然后用这两个矩阵做一做GCN得到每一个node的embedding,然后再用这个embedding做分类就好了

[NLU] DialogueGCN: A Graph Convolutional Neural Network for Emotion Recognition in Conversation_第5张图片

 

一句话总结:

本文用对话中的句子作为节点,引入了inter-dependency和intra-dependency的概念,扩展了GCN中Graph的内容,在情感分类任务上实现了最佳效果。

亮点:

建图方式,讲故事的合理性与新颖性。

你可能感兴趣的:(对话系统,NLP,GCN,dialogue,Emotion,Classify,情感识别)