Quantcast
Channel: 冯志伟文化博客
Viewing all articles
Browse latest Browse all 562

智能会话代理:对话管理系统

$
0
0

     


    智能会话代理:对话管理系统

               冯志伟


自然语言处理技术中最具知名度的问答系统的实例,我们在《外国语》发表的“自然语言问答系统的发展与现状”中已经做过介绍。当前会话智能代理的应用实例还包括航空旅行信息系统、基于语音的饭店向导系统、以及电子邮件或日程表的电话界面等。

对话管理是这类会话智能代理的重要组成部分之一,它的功能包括控制对话流,在一个较高的层次确定智能代理的会话应该如何进行,询问或陈述有关问题,以及确定在什么时间提出这些问题。

最简单的对话管理系统是基于有限状态自动机(Finite State AutomateFSA)的系统。例如,一个普通的旅行航班系统,它的任务就是询问用户的出发城市、目的城市、时间,从而向用户提供优先的航班信息。

通过这种方式完全控制会话的系统叫做“单一主动”(single initiative)的系统,或者叫做“系统主动”(system initiative)的系统。尽管这个简单的对话管理架构对于某些任务(例如,电话自动应答系统,或简单的地理信息语音界面)是足够的,但是对于基于语音的旅行智能代理系统来说,这种方式可能存在过多的限制,使得用户感到不方便。其中一个原因是用户更喜欢采用能够一次回答多个问题的更复杂的句子,比如下面的ATIS中的例子:

 

I want a flight from Milwaukee to Orlando one way leaving after five p.m. on Wednesday.

 

在这种情况下,由于用户一口气提出了多个问题,单一主动的系统就难以对付了。

许多基于语音的问答系统,都是以用于旅行航班计划的GUS系统为基础,并引入了基于框架(frame)或模板(template)的较新的ATIS系统以及其他的旅行和饭店向导系统。

例如,一个简单的旅行航班系统的目标是帮助用户发现合适航班。这可以表示为一个带有各式各样用户需要指定的信息槽(slot)的框架。下面是一些信息槽以及事先指定的询问用户的问题:

信息槽            可选的问题

From_Airport     “From what city are you leaving?”

To_Airport       “Where are you going?”

Dep_time        “When would you like to leave?”

Arr_time         “when do you want to arrive?”

Fare_class              …

Airline                 …

Oneway                  …

这类简单的对话管理系统可能仅仅是向用户提问,将答案填入模板,直到拥有足够的信息来进行数据库查询,然后把结果返回给用户。并不是每个信息槽都有一个相关的问题,因为对话设计者可能并不想让用户面对一连串的问题。然而,如果用户碰巧指定了某种信息,则系统必须能够将它们填入对应的信息槽。

即使这种简单的应用领域也需要采用比单一模板复杂的架构。例如,符合用户要求的航班常常不止一个。这意味着要在显示屏上给用户列出一个选择列表,或对于完全的对话界面逐条读出这样的列表。因此,基于模板的系统需要另外的带有能够识别所列航班的信息槽的模板(例如,How much is the first one? 或者Is the second one non-stop?)。其他模板可能带有一些常见的路线信息(例如,Which airlines fly from Boston to San Francisco?),飞机票价实行的一些信息(例如,Do I have to stay a specific number of days to get a decent airfare?)或汽车和饭店预订的信息。由于用户可能在不同的模板之间转换,也由于用户可能会回答他所预期的问题而不是系统当前所提的问题,所以,系统必须能够对给定的输入应该填入哪一个模板的哪一个槽进行排歧,然后将对话控制转换到适合的模板。

因此,基于模板的系统本质上是一个生成规则的系统。不同类型的输入可以激发不同的生成规则,每个生成能够灵活地填入不同的模板。生成规则能够基于一些因素进行转换控制,这些因素包括用户的输入和一些简单的对话历史(例如,系统所问的最后一个问题是什么,等等)。

基于模板和基于FSA的对话管理系统的局限性是非常明显的。例如,下面对话样例中的客户话段C4

 

A3: And what time would you like to leave Pittsburgh?

C4: Uh hmmm I don’t think there’s many options for non-stop.

A4: Right. There’s three non-stops today.

C5: what are they?

A5: The first one departs PGH at 10:00a.m…

 

通过C4,客户接管了对话的控制或主动权。C4是一个间接请求,这个请求让智能代理系统查询直飞航班。这时系统就不能只把WANTS NON-STOP这样的信息放入一个模板,而要再次询问用户出发的时间。系统需要领悟到用户表示直飞航班优先于其他航班,因此,在以后的对话中,系统应该以此为重点。而基于模板和基于FSA的对话管理系统是做不到的。

会话智能代理系统也需要使用共同的行为基础。例如,当用户选择航班时,很重要的一点是智能代理系统向客户表明它已经理解了用户的选择。例如,

 

C6: OK I’ll take the 5ish flight on the night before on the 11th.

A6: On the 11th? OK.

 

对一个计算对话智能代理来说,利用请求进行修正也是十分重要的,因为考虑到语音识别或理解中可能出现的一些错误,智能代理系统常常会对用户的请求感到扑朔迷离或无法理解。

为了解决这些问题以及其他的一些问题,可以建立更复杂的基于“信念-期望-意图模型”(Belief, Desire and Intention Model,简称BDI模型)的对话管理系统。这类系统常常与基于逻辑的计划模型集成在一起,并将会话当作计划行为的序列。


 青春就应该这样绽放  游戏测试:三国时期谁是你最好的兄弟!!  你不得不信的星座秘密

Viewing all articles
Browse latest Browse all 562

Trending Articles