这部分有些资料被称为
SLU(Spoken Language Understanding)
,有的资料也称为NLU(Natual Language Understanding)
,甚至LU(Language Understanding)
。
对于面向任务的对话系统来说,NLU模块主要任务是将用户输入的自然语言映射为用户的意图和响应的槽位值。因此,在面向任务的对话系统中,NLU模块的输入是用户对话语句,输出是解析后得到的用户动作。该模块涉及到的主要技术是意图识别和槽位填充,这两种技术分别对应用户动作的两项结构化参数,即意图和槽位。
这部分主要根据自然文本的结果,判断用户意图。
从含义角度来说,输出的是,三部分内容:
SLOT(S):问题所需要的数据参数
INTENT:用户意图
DOMAIN:意图领域
注:用户意图这部分也被称为Dialogue Act Type,即对话行为类型
如 Syntax or Semantics? Knowledge-Guided Joint Semantic Frame Parsing [Chen et al., 2016] 的例子:
W: tell vivian to be quiet
S: contact=vivian, message=be quiet
D: communication
I: send_text
也就是用户输入了tell vivian to be quite
之后,这句话的DOMAIN是communication
,INTENT是send_text
,有两个slot,分别是联系人concat=vivian
还有信息内容message=be quite
。
从SLU中完整解析出的内容,即包括Domain、Intent、Slots,我们把这些结果统称为从句子中解析的User Action。
1. 意图和槽位定义:
要使一个面向任务的对话系统能正常工作,首先要设计意图和槽位。
用户输入示例: “今天广州天气怎么样?”
用户意图定义: “询问天气,Ask_Weather”
槽位定义
槽位一:时间,Date
槽位二:地点,Location
“询问天气”的需求对应的意图和槽位如图所示:
然而在真实的业务场景中,一个面向任务的对话系统往往需要能够同时处理若干个任务,例如气象台除了能够回答 “询问天气” 的问题,也应该能够回答 “询问温度” 的问题。
对于同一个系统处理多种任务的复杂情况,一种优化策略是:定义更上层的领域,如将 “询问天气” 意图和 “询问温度” 意图均归属于 “天气” 领域。
定义领域并先进行领域识别的有点是:
- 约束领域知识范围,减少后续意图识别和槽位填充的搜索空间。
- 利用好任务及领域相关的特定知识和特征,往往能够显著地提升NLU模块的效果。
下图进行改进,加入 “天气” 领域。
用户输入示例
- “今天广州天气怎么样”
- “广州现在气温多少度”
领域定义:天气,Weather
用户意图定义
- 询问天气,Ask_weather
- 询问温度,Ask_Temperature
槽位定义
槽位一:时间,Date
槽位二:地点,Location
改进后的“询问天气”的需求对应的意图和槽位如图:
2. 意图识别和槽位填充功能实现
意图识别:分类问题;
槽位填充:实体识别问题|序列标注问题;
进行意图识别和槽位填充的传统方法是使用串行执行方式,即先进行意图识别,再根据意图识别的结果进行槽位填充任务。这种方式主要缺陷是:
- 可能产生错误传递,导致错误放大。
因为串行执行方式存在上述问题,所以研究人员改为使用联合学习(joint learning)
方式进行意图识别和槽位填充。
另外,需要特别注意:在一次天气询问任务处理完成后,用户又问“那明天呢”时,实际上可以认为第二个问句是开始了另一次“询问天气”任务,只是其中的“时间”槽位是指定的,而“地点”槽位则需要重复利用(继承)上一次任务中的值。
对意图识别模块和槽位填充模块的主要评价指标包括:
- 意图识别的准确率,即分类的准确率。
- 槽位填充的F1-score。
3. 诸多问题
4. 甜点部分
4.1 NLP是什么?
NLP = NLU + NLG
- NLU(Natural Language Understanding): 语音/文本 -> 意思(meaning)
- NLG(Natural Language Generation): 意思 -> 语音/文本
4.2 NLP比CV难
NLP: 所见非所得
CV: 所见即所得
4.3 挑战
- 多种表达方式(意思一样)
- 周杰伦创作了单曲《稻香》。
- 周杰伦新出了单曲《稻香》。
- 单曲《稻香》是周杰伦创作的。
- Ambiguity(一词多义)
- 今天参加了
苹果
公司发布会。 - 现在正好是
苹果
的季节。
4.4 如何解决一词多义问题?
4.5 NLP经典应用场景(问情机自聊信)
- 问答系统
- 情感分析
- 股票价格预测
- 舆情监控
- 产品评论
- 事件监测
- 机器翻译
- 自动摘要
- 聊天机器人
- 信息抽取
4.6 NLP关键技术(四个维度)
Phonetics(声音)->Morphology(单词)[分词、Pos(词性)、NER]->Syntax(句子结构)[句法分析、依存分析]->Semantic(语义)[NLU、机器学习]
- Word Segmentation(分词)
江州市长江大桥参加了长江大桥的通车仪式
江州/市长/江大桥/参加/了/长江大桥/的/通车/仪式
- Part-of-Speech(词性)
- Named Entity Recognition(命名实体识别)
- Parsing(句法分析)
- Dependency Parsing(依存分析)
- Relation Extraction(关系抽取)
5. 任务:
保证写1万行AI程序
参考文献
- Zhang, X., & Wang, H. (2016). A Joint Model of Intent Determination and Slot Filling for Spoken Language Understanding. Ijcai.
- Liu, B., & Lane, I. (2016). Attention-Based Recurrent Neural Network Models for Joint Intent Detection and Slot Filling. Interspeech. http://doi.org/10.21437/Interspeech.2016-1352
- Goo, C.-W., Gao, G., Hsu, Y.-K., Huo, C.-L., Chen, T.-C., Hsu, K.-W., & Chen, Y.-N. (2018). Slot-Gated Modeling for Joint Slot Filling and Intent Prediction. Naacl-Hlt.
- Li, C., Li, L., & Qi, J. (2018). A Self-Attentive Model with Gate Mechanism for Spoken Language Understanding. Emnlp.
- Wang, Y., Shen, Y., & Jin, H. (2018). A Bi-Model Based RNN Semantic Frame Parsing Model for Intent Detection and Slot Filling. Naacl-Hlt.
- Chen, M., Zeng, J., & Lou, J. (2019). A Self-Attention Joint Model for Spoken Language Understanding in Situational Dialog Applications. CoRR.
- Chen, Q., Zhuo, Z., & Wang, W. (2019, February 28). BERT for Joint Intent Classification and Slot Filling. arXiv.org.