一、相关概念

开放域对话:不太严谨的定义可以理解为 ,在不确定用户意图前的各种瞎聊,你不知道用户会问什么样千奇百怪的问题,但是chatbot都能接住,然后和用户进行对话,这种就是开放域的对话。
填槽:填槽指的是为了让用户意图转化为用户明确的指令而补全信息的过程。
准入条件:从一个开放域转入到封闭域,或者从一个封闭域转入到另一个封闭域,中间的跳转是需要逻辑判断的,而这个逻辑判断就是准入条件。
封闭域对话:封闭域对话是指识别用户意图后,为了明确用户目的(或者称为明确任务细节)而进行的对话。
澄清话术:当用户的需求中缺乏一些必要条件时,需要对话系统主动发问,把必要条件全部集齐之后再去做最终的满足执行。

二、槽与槽位

1.槽的定义

填槽的专业表述:从大规模的语料库中抽取给定实体(query)的被明确定义的属性(slot types)的值(slot
fillers)——网络文章定义

所以这里槽可以理解为实体已明确定义的属性。例如打车中的,出发地点槽,目的地槽,出发时间槽中的属性分别是“出发地点”、“目的地”和“出发时间”。

2.槽与槽位

槽是由槽位构成的,一个槽位就是一种填槽的方式。

(1)槽位的属性:接口槽与词槽

词槽,通过用户对话的关键词获取信息的填槽方式
接口槽,通过其他方式获取信息的填槽方式

(2)槽位的属性:槽位优先级

当有多个槽位的时候,槽该采用那个信息,这时候有个优先级。
还是之前的出发地点槽,如果用户通过词槽指定了出发地点是A,优先级就应该是最高的,其次才是通过不同的接口槽获取的B,C等。

3.槽的属性:可默认填写/不可默认填写

有些槽是不可默认填写的,不填没办法继续下去,有些即使不填,有默认值也可。

4. 槽的属性: 澄清话术

当槽不可默认填写同时又没有填写的时候,就要进行澄清

为了澄清而表达的内容,就是澄清话术

不同槽的澄清话术不同,例如打车三槽中,目的地的澄清话术可能是“请告诉我您的目的地”,而出发时间的槽可能是“请告诉我您的出发时间”

5. 槽的属性:澄清顺序

当有多个槽需要澄清的时候,就存在先后顺序的问题,所以需要一个澄清顺序,先问什么,再问什么。

6. 槽的属性:平级槽或依赖槽

根据槽和槽之间是否独立,后续的槽是否依赖前面槽的结果。

可以将槽之间的关系分为

平级槽,槽与槽之间没有依赖,例如打车中的三槽

依赖槽,后续的槽是否依赖前面槽的结果,例如手机号码槽,不同国家手机号码格式不同(槽的属性不同),所以国家槽会影响选择哪个手机号码槽。

7. 槽的能力:多轮记忆状态

它能在对话的过程中,在被打断回到之前的封闭域对话后,能记住原有填槽的内容,减少重复填槽。

参考网址:
Chatbot中的填槽(Slot Filling)
填槽与多轮对话:AI产品经理需要了解的AI技术概念

三、槽填充

任务型对话系统的语言理解部分,通常使用语义槽来表示用户的需求,如出发地、到达地、出发时间等信息。通常把领域识别和用户意图检测当做文本分类问题,而把槽填充当做序列标注(Sequence Tagging)问题,也就是把连续序列中每个词赋予相应的语义类别标签。 因此可以使用序列标注模型来抽取语义槽。
很多机器学习算法都能够解决序列标注问题,包括HMM/CFG,hidden vector state(HVS)等生成式模型,以及CRF, SVM等判别式模型。
CRF (条件随机场)是过去经常使用的序列标注模型,但是受限于马尔科夫假设,它无法很好的处理长距离依赖问题。
随着深度学习方法的流行,人们使用循环神经网络,如双向 LSTM 来解决长距离依赖问题,同时还避免了繁琐的特征工程工作。
最近,人们将这两种方法进行融合,即双向 LSTM-CRF 模型,进一步提高了槽填充的准确率。

1.基于RNN的槽填充

本次实验主要参考论文《Using Recurrent Neural Networks for Slot Filling in Spoken Language Understanding 》 ,基于RNN来实现语义槽填充。
本次实验基于ATIS(Airline Travel Information Systems )数据集。顾名思义,ATIS数据集的领域为"Airline Travel"。ATIS数据集采取流行的"in/out/begin(IOB)标注法": "I-xxx"表示该词属于槽xxx,但不是槽xxx中第一个词;"O"表示该词不属于任何语义槽;"B-xxx"表示该词属于槽xxx,并且位于槽xxx的首位。
总的来说,将槽填充问题当做序列标注问题是一种有效的做法,而RNN能够较好的对序列进行建模,提取相关的上下文特征。双向RNN的表现优于单向RNN,而LSTM的表现优于Simple RNN。
从实验设置可以看出,本次实验没有过多的调参。如果想取得更好的结果,可以进行更细致的调参,包括 :
改变词向量维度和隐状态维度;
考虑采用预训练词向量,然后固定或者进行微调;
采用正则化技术,包括L1/L2, Dropout, Batch Normalization, Layer Normalization等;
尝试使用不同的优化器(如Adam),使用mini-batch,调整学习率;
增加epoch次数。
此外,可以考虑在输入时融入词性标注和命名实体识别等信息,在输出时使用Viterbi算法进行解码,也可以尝试不同形式的门控RNN(如GRU,LSTM变体等)以及采用多层RNN,并考虑是否使用残差连接等。
参考网址:“你什么意思”之基于RNN的语义槽填充(Pytorch实现)

2.使用Attention-Based RNN模型识别意图和槽填充

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

这篇文章主要介绍了使用Attention-Based RNN模型识别意图和槽填充(slot filling)。意图识别通常使用分类的方法将句子分为相应的意图种类。槽填充则可以看做是序列标注问题,即对于给定的句子中的每个词分别打上相应的标签。
槽填充既可以用RNN模型也可以用encoder-dedoder 模型解决。即源输入是句子序列,目标输出则是标注序列,同时意图识别也可以用encoder-dedoder 模型解决。即源输入是句子序列,目标输出则是意图种类。但是对与槽填充来说,句子与相应的标签是一 一对应的,也就是说有“explicit alignment”。作者提出了两种模型,一种是将“alignment information”加入到encoder-dedoder 模型中,另一种就是将“alignment information”和”attention“加入到RNN模型中来解决槽填充和意图识别问题。
参考网址:意图识别与槽填充

3.基于BLSTM-CNN-CRF 的联合槽填充和意图识别模型

该模型使用来自ATIS 数据集中所有可用问句及其对应的语义帧进行训练,模型的输入是问句的序列编码(如 one-hot编码),并利用 BLSTM 训练出的标签向量与通过CNN 得到的特征向量进行拼接,然后将其组合送至CRF 层解码出包含意图信息和槽值信息的完整语义帧。
参考文献:基于 BLSTM-CNN-CRF 模型的槽填充与意图识别_华冰涛,袁志祥,肖维民,郑 啸

知识图谱与KBQA——槽填充相关推荐

  1. Java实现话术词槽匹配_知识图谱与KBQA——槽填充

    一.相关概念 开放域对话:不太严谨的定义可以理解为 ,在不确定用户意图前的各种瞎聊,你不知道用户会问什么样千奇百怪的问题,但是chatbot都能接住,然后和用户进行对话,这种就是开放域的对话. 填槽: ...

  2. 知识图谱问答 | (1) 针对复杂问题的知识图谱问答(KBQA)最新进展

    原文地址 1. 背景介绍 知识图谱问答(KBQA)利用图谱丰富的语义关联信息,能够深入理解用户问题并给出答案,近年来吸引了学术界和工业界的广泛关注.KBQA 主要任务是将自然语言问题(NLQ)通过不同 ...

  3. 知识图谱:【知识图谱问答KBQA(五)】——P-tuning V2

    Abstract Prompt tuning仅使用冻结的语言模型调整连续提示,大大减少了训练时每个任务的存储和内存使用,然而,在 NLU 的背景下,先前的工作表明,对于正常大小的预训练模型,promp ...

  4. 容联云AI科学院研发先进KBQA能力,问鼎大规模中文知识图谱问答权威性测评

    容联云AI科学院研发的KBQA算法,凭借其对中文语言及知识图谱的精准语义解析和推理能力,夺得权威中文语言评测CLUE中的大规模中文知识图谱问答KgCLUE榜单的第一名. KgCLUE是中文语言理解领域 ...

  5. KBQA(知识图谱问答)和QG(问题生成)的paper调研总结

    前段时间做了一些KBQA和QG方面的研究,虽然没有落到实处来,但是想着还是把利用过的资源给记录分享下,方便后来者可以查阅. (一)关于kbqa的: 1. GitHub - chenjun0210/QA ...

  6. 图谱实战 | 医学知识图谱的价值与应用场景

    转载公众号 | OMAHA联盟 随着技术的进步和市场的逐渐成熟,人工智能在医疗等领域的应用日益广泛和深入.而知识图谱技术作为一种从海量文本和图像中抽取结构化知识的手段,正在成为推动人工智能发展的核心驱 ...

  7. 图谱实战 | 为什么我们需要医学知识图谱?

    转载公众号 | OMAHA联盟 人工智能正在变得司空见惯.在医疗领域,医生也越来越重视人工智能所带来的疾病诊断效率和治疗价值的提升.要实现医疗人工智能,需要构建医学知识图谱以满足医疗领域对知识的应用需 ...

  8. 知识图谱最新权威综述论文解读:知识图谱应用部分

    知识图谱在人工智能的许多领域都发挥了重要作用,综述论文的这一章引入多个最新的基于深度学习的知识驱动方法,主要包括的应用领域有自然语言理解,推荐系统和问答系统. 1 自然语言理解 知识感知的自然语言理解 ...

  9. 知识图谱实践篇(五):KBQA Demo

    作为实践篇的最后一篇,我们将介绍如何用Python完成一个简易的问答程序.下图是demo的展示效果: 查询结果为空,回答"I don't know.":不能理解问句,回答" ...

最新文章

  1. JAVAspringboot微服务b2b Spring MVC+mybatis+spring cloud+spring boot+spring security
  2. java中的servlet是线程安全的嘛_Java面试题:Servlet是线程安全的吗?(转)
  3. CSS3动画之百度钱包
  4. ArcGIS网络分析之Silverlight客户端最近设施点分析(四)
  5. Linux 命令之 cd 命令-切换目录
  6. c 将html导出pdf文件,将HTML页面转换为PDF文件并导出
  7. 2016西安教师职称计算机考试,2016教师职称计算机考试模块.doc
  8. 三星30pin引脚_USB3.0针脚定义、引脚定义(精校版本)
  9. 一名软件测试工程师的日常
  10. SpringBoot RestTemplate 发送请求 忽略证书不安全
  11. 年薪 200w 的华为员工了解一下
  12. 塔尔萨大学计算机科学专业,塔尔萨大学有哪些专业_专业排名(USNEWS美国大学排名)...
  13. CSS 权威指南 读书笔记(五)
  14. PyCharm 不能自动生成函数注释
  15. 喇叭的灵敏度代表什么
  16. 笔记本linux蓝牙驱动怎么安装程序,如何安装蓝牙设备的驱动程序
  17. 《Learning Unsupervised Metaformer for Anomaly Detection》论文阅读笔记
  18. Spring Security oAuth2创建认证服务器模块
  19. about s3c44b0
  20. oracle数据库emp表的内容,oracle数据库emp表

热门文章

  1. 微信:item_search_seller - 搜索公众号列表
  2. Raki的读paper小记:OFA: UNIFYING ARCHITECTURES, TASKS, AND MODALITIES THROUGH A SIMPLE Seq2Seq FRAMEWORK
  3. C# TextBox获取焦点
  4. 还贷的那些事III——等额还贷的计算
  5. bcdedit添加linux引导,利用Bcdedit创建Linux系统引导
  6. 一步一步实现商城微信小程序(四)
  7. 路由器无法登上管理IP地址
  8. 北京航空航天大学计算机学院 孙,北京航空航天大学计算机学院导师教师师资介绍简介-孙磊磊...
  9. oracle12c安装卡住_记一次oracle12c安装过程问题及处理方法
  10. Push还是Pull,这是个问题么?