暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

意图识别和槽填充论文汇总

机器学习记事本 2019-08-11
2068
人机对话是自然语言处理中一个重要的领域,比如机器人客服、订餐、订票等等,其中最关键的是要让机器理解人说话的含义,即自然语言理解。当前最流行的方法是先识别语句所涉及的领域(domain),然后识别在该领域中的意图(intent),最后找出该意图中需要的实体,叫做槽位(slot),多数情况下一个意图有多个槽位。
下图是一个具体例子,人对机器说了一句“请在12:30订一份重庆小面”,机器首先要能识别到这是一个餐饮领域相关的请求,一般机器人都是针对具体领域的,这样的话领域就不用识别了,或者说你对一个只针对餐饮领域的机器人说一句教育领域的话,那么它也处理不了。确定领域后,需要识别意图,比如是订餐还是餐馆推荐等等。最后就是在具体意图中填充对应的槽位,对于订餐意图,其槽位就是订餐的时间和名称。所有这些都搞定后,机器就知道了你要叫它干什么了。当然这只是举一个简单的例子说明概念,真实的场景要复杂得多。

因为工作的原因,最近搜集整理了从2013年到现在关于意图识别和槽位填充的主要论文、思路总结,以及github相关的实现,分享在公众号里,对刚好需要材料的同学可以节省不少时间。内容按时间先后排列,github实现主要查找了我重点关心的论文。


2013年

标题:Convolutional neural network based triangular CRF for joint intent detection and slot filling

链接:https://ieeexplore.ieee.org/document/6707709

主要思路:底层CNN,上层用CRF做槽位填充,用分类器比如Logistic Regression做意图识别


2014年

标题:Joint semantic utterance classification and slot filling with recursive neural networks

链接:https://ieeexplore.ieee.org/abstract/document/7078634/

主要思路:基于树的递归神经网络


2016年-1

标题:Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling

链接:https://arxiv.org/abs/1609.01454

主要思路:这是我搜集资料过程中觉得大家谈论最多的一篇文章,之后很多文章的模型结构都和它类似,论文采用seq2seq模型,encoder使用双向LSTM,decoder用了LSTM加Attention机制预测槽位,意图识别直接在encoder的最后一个隐藏层输出上通过前馈网络预测,模型结构很清晰。

github实现:有不少相关实现,我只列举一部分:

1)论文作者实现:https://github.com/HadoopIt/rnn-nlu

2)基于tensorflow 1.3的实现,带jupyter notebook解释:https://github.com/applenob/RNN-for-Joint-NLU

3)和2)类似的简洁版:https://github.com/HarryWuxh/Attention_Based_RNN_for_Intent_Detetaction_and_Slot_Filling


2016年-2

标题:Multi-Domain Joint Semantic Frame Parsing using Bi-directional RNN-LSTM

链接:https://www.csie.ntu.edu.tw/~yvchen/doc/IS16_MultiJoint.pdf

主要思路:用双向LSTM,可以预测多领域


2017年

标题:Multi-Domain Adversarial Learning for Slot Filling in Spoken Language Understanding

链接:https://arxiv.org/abs/1711.11310

主要思路:用对抗学习,能同时处理多领域和槽位,作者同2016 attention based论文作者


2018年-1

标题:Slot-Gated Modeling for Joint Slot Filling and Intent Prediction

链接:https://www.aclweb.org/anthology/N18-2118

主要思路:提出一种槽门slot-gate学习意图和槽位之间的关系,改进了预测性能

github实现:基于Tensorflow 1.4https://github.com/MiuLab/SlotGated-SLU


2018年-2

标题:Joint Slot Filling and Intent Detection via Capsule Neural Networks

链接:https://arxiv.org/abs/1812.09471

主要思路:通过胶囊网络学习意图和槽位之间的关系


2018年-3

标题:A Self-Attentive Model with Gate Mechanism for Spoken Language Understanding

链接:https://www.aclweb.org/anthology/D18-1417

主要思路同时用gate和attention机制学习意图和槽位之间的联系,实验效果好于2016 attention based论文

github实现:基于pytorch 0.3 and python 2.7:https://github.com/NinedayWang/Self-Attentive-and-Gated-SLU


2019年-1

标题:BERT for Joint Intent Classification and Slot Filling

链接:https://arxiv.org/abs/1902.10909

主要思路:用了2018大火的BERT,论文实验结果很好

github实现:

1)基于pytorch, 包含2016 attention论文:https://github.com/sz128/slot_filling_and_intent_detection_of_SLU

2)基于tensorflow:https://github.com/zhenwenzhang/BERT-SLU


2019年-2

标题:Joint Multiple Intent Detection and Slot Labeling for Goal-Oriented Dialog

链接https://www.aclweb.org/anthology/papers/N/N19/N19-1055/

主要思路:处理多意图和槽位填充,总体结构和2016 attention based论文类似,这是包括以上所有论文中唯一一篇处理多意图识别的。


以上就是整个列表,难免还有一些相关的论文被漏掉了,但主要的都包括了。

文章转载自机器学习记事本,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论