论文学习笔记:Building Task-Oriented Dialogue Systems for Online Shopping

首先,该篇论文是北航与微软小冰团队合作的,该对话系统旨在帮助网购用户完成各种与购物相关的任务,为用户推荐更多相关产品和产品信息,同时还支持闲聊。

对话系统一般能分为两类:

1、聊天型系统旨在与用户进行交谈,并提供有趣的,与上下文相关的合理回复。

2、任务型系统旨在帮助用户完成特定任务目标(例如找餐厅)。

 

本文设计的是任务型对话系统,该系统由4部分组成:DS={QU,ST,DM,PKB}

QU:查询语句理解。旨在理解用户意图(推荐,比较,询问意见,QA),识别产品类别和产品属性<n,v>

ST:对话状态追踪

DM:对话管理,根据对话状态选择合适的行为。

PKB:产品知识库,包含一系列的产品三元组<p,n,v>. p:产品名(例如,华为P9),n:产品属性名(例如,屏幕尺寸),v:产品属性值(例如,5.2英寸)。

一、数据源

1、产品知识库,包括结构化产品信息,由电商方提供。

2、搜索日志,与产品,自然语言查询和用户选择(鼠标点击)行为紧密相关。

3、社区网站,用户以自然语言发布意图,可用于挖掘与购物相关的意图和产品相关的释义。

二、查询语句理解

给定一句谈话Qt,自然语言理解模块产生一个表示Mt=<I,C,A>

I代表用户的意图,其决定DM应该执行什么行为(例如,推荐或QA)

C代表Qt中谈及的产品类别,它能决定DM应该对什么产品产生行为。

A代表从Qt中抽取出的产品属性,包括<n,v>

查询语句理解包括三个步骤:

1、用户意图识别:

      1.1用户意图检测

           作者选择四类出现最频繁的意图作为本文意图检测模块要检测的意图:

意图名例子
推荐请推荐给我一个.....
比较#和#,哪一个更好
询问意见#产品怎么样
问答华为P9是多大的尺寸

 

      1.2 意图短语挖掘

            用户通常利用不同短语来表达不同的意图。因此本文意图挖掘的目的就是要挖掘出能代表上文四个意图的短语词。

            作者认为用户经常在社区网站上贴出自己的购买意图,因此作者从百度知道上爬取了3,146,063个问题。

            挖掘意图短语词的步骤如下:

            1)利用与产品相关的项(如产品名,品牌和类别名)来选择与产品相关的问题

            2)基于短语划分语料句子,即将问题句子划分成短语。该算法首先统计Q中满足最小阈值的所有短语数量。然后采用合并算法,贪婪合并语料库中分割的最佳可能短语。

            3)在基于短语划分的语料上运行phrase-level主题模型,即根据主题进行聚类。

            最终,总共得到1116个意图短语,每个短语被一个意图名标注。

      除此之外,作者还考虑了3个与会话相关的意图:

      1)添加过滤条件:该意图表明在多轮对话中,用户尝试通过添加过滤条件来告诉机器人他/她真正想要的。例如,“太贵了”,“较小一个”等。

      2)看更多:这意味着基于当前的过滤条件(如,‘另一个’,‘下一个’),用户想看更多系统检索回的产品信息。

      3)消极意图:该条件如“不好”,“不喜欢”等,表明用户对当前推荐的产品不满意。

      以上三个意图在单轮对话中基本不可能完成,因此作者基于与挖掘意图短语词相同的算法从多轮对话日志文件中挖掘出这三类意图短语词。

      1.3 意图分类

             每类意图包含2000问题句子,每个句子至少包含一个意图短语词。同时还有 2000没有任何购买意图的问题句子。也就是说正负样本比为1:1.

2、产品类别检测

      该任务实质上是个分类任务,目标是预测用户谈话中谈及的产品类别。本文采用的是CNN模型。

      但是,考虑到中文词的one-hot向量size较大,学习模型参数的成本很高,因此作者把每个词表示成字符的计数向量。把该向量作为输入。

      实质上就是用字向量来表示词向量,滤波器尺寸设置为3,池化层采用最大池化,激活函数采用tanh,同时采用SGD优化器

      本文中CNN模型的一个特点是:先机损Q和每个类别Ci之间的余弦相似度得分,然后再经过softmax层得到后验概率P(Ci).而训练目标是最大化P(Ci | Q)。

3、产品属性抽取

      这其实可以看做段落抽取任务。本文将产品属性挖掘分为了2步。

      1)从产品搜索日志数据中挖掘出产品属性名n。该搜索日志数据由电商提供。因为我们经常在电商网站上通过产品名来直接检索产品。我们可以从日志中获得<q,url_{p}>对,其中q表示查询问句,url表示产品名为p的链接。因此,我们需要计算的是link(p|q),以此作为q是产品名称p的替代表达的分数。

       2)对于其它属性名和属性值,我们从多种数据源挖掘。包括知识库中的实体别名,web文档中的文本,wiki重定向表以及通过开放信息抽取方式抽取的同义词。

 

查询语句理解是问答系统和对话系统的核心,基于规则的方法在可扩展性和标记成本方面存在缺点。而数据驱动的方式,如HMM,CRF,SVM,RNN等,都严重依赖标记好的数据。本文探索了一种替代方法,在目标领域使用现有资源,标记域类数据来对数据进行细化。

三、对话状态追踪

ST的工作如下:

 1、基于公式SessionAwareIntentU pdate(Mt, Ht−1)来更新意图状态^{M_{t}\cdot I}。该公式根据以下规则更新Mt的意图:

       1)如果M_{t}\cdot I\in I不是会话状态意图,则^{M_{t}\cdot I}不变。

        2)若M_{t}\cdot I\in I是会话状态意图,并且H_{t-1}\cdot I=Recommendation,则设置^{M_{t}\cdot I}=Recommendation

        3)其它情况,则设置^{M_{t}\cdot I}=Chit-chat

2、若谈话被检测为Chit-chat,则不更新,H_{t}=H_{t-1}

3、若当前谈话检测出的产品类别与存储在H_{t-1}的产品类别相同,则H_{t}将继承H_{t-1}存储的所有信息。否则,H_{t}的内容将基于M_{t}更新,包括类别,意图和属性。

注意:若连续chit-chat谈话的数量超过了预定数量,或者两个连续谈话之间的间隔超过了时间t的预定长度,那么H_{t}将被清除,这被当做一种遗忘机制。

四、对话管理

对话管理模块在多轮对话中至关重要。对话状态H_{t}是它的输入,然后根据H_{t}来执行不同的行为,并输出相关的结果作为响应。在本文网购场景中,主要包括一下几种行为:

1、推荐 ,当^{H_{t}\cdot I}=Recommendation时,系统将根据产品类别和H_{t}中的属性值从产品数据库中检索产品

2、比较,当^{H_{t}\cdot I}=Comparison或者H_{t}中检测到相同类别的产品/品牌名有多个时,系统将根据消费者给出的积极和消极反馈的百分比来比较目标产品/品牌,并由电商伙伴记录

3、意见总结^{H_{t}\cdot I}=Ask Opinion,系统将总结存储在H_{t}中的目标产品/品牌的意见,该产品意见数据由电商方提供的

4、问答,当在H_{t}中检测到产品名和属性名,但缺失了属性值时,系统将从产品数据库中查找缺失的属性值,返回给用户。该任务可以当作是单轮KB-QA任务。

5、主动提问,当检测到推荐意图,检测到一个类别,而没有检测其它限制条件到或H_{t}中不存在其它限制条件时,系统将主动提问。这些问题是由人工制定的模板。

6、闲聊,当没有检测到任何与购买相关的意图时,将触发该行为。该行为给出的回复是基于信息检索方式生成的。过程如下:

1)找到相似的q'。 2)返回q'的回复作为q的回复。

闲聊模块在对话系统和问答系统中是很重要的,它能够避免用户提出的问题或谈话,机器人无法回复而造成的体验差的情形。

 

总的来说这篇文章更像是产品设计文档,只不过没有提供代码而已。

 

思考:

1、意图识别一直是比较难的任务,本文考虑了四类意图,通过检测意图短语来预测意图。但是由于用户描述的不规则性,模糊性,输入的问题通常不包含主观意图。若把这类问题都归结为chit-chat,则用户体验将变得很差。例如:“冬天骑行绑腿上的东西”。这句话是用户对某件产品的功能的描述,按照本文的意图检测方法,只能归类为chit-chat。那么用户可能根本就找不到想要的产品,导致用户体验极差。

2、本文对我的一个启发就是挖掘意图短语来代表问题的意图。若问句中不止一类意图短语词时,系统将如何反应,作者并没有提到该情况。

3、对于产品名称,属性名称,属性值的挖掘,可否用命名实体识别和实体关系抽取技术实现呢?

总之,本文让我了解到了NLP技术该如何应用到实际产品中,在实际产品中考虑的更多的是实用性以及资源成本。本文就合理利用了电商方的各种资源,以这些资源为基础来找到更高效的方法。

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值