没有一个能识别出来意图,全部用关键词来检索网页(SERP)。没有识别出意图,继而也就没有可能识别entity所在的场景。对于C端用户而言,这可能算是最基础的服务之一,而三大巨头提供的产品完全不能用。
不过当我们看到国内的创业公司,却能按照需求识别出意图,并且识别出对应的entity,组合查询出结果,看上去比几个巨头更强大。
我们继续测试上下文的对话。比如,我是国航的会员,agent给出上面的结果里没有国航的航班,我自然会问:”有没有国航的?“
结果并没有如期望那样,在给出的列表里找到国航的航班。而是开始了重新的一次查询。
换一句话来说,没有结合上下文的对话。我并不是为了黑,事实上这个产品在国内的创业公司中也算不错的技术了。但是不会结合上下文的对话,会造成的最严重的问题就是这个agent基本不能独立完成服务。因为用户不会在一个句子里把所有的条件都列出来。
以上是基本要素,就当前的产品形态来看,只有非常少的产品能真正做到第一点。大部分号称能做到的,都是滥竽充数,连续问问题而已。
不能真正理解上下文的对话(机票查询):
AGENT:从哪里出发?
用户:上海虹桥机场
AGENT:到哪里?
用户:还是从浦东走吧
AGENT:好的,从虹桥出发到浦东的航班是......
在上面的对话,AI Agent在问第二个问题的时候,不能理解用户对前一个回答的修改(出发地从“虹桥”改为“浦东”),只是按照预先设计对话的顺序,填上命名实体识别得来的entity。继而查询不到结果,给用户的感觉就是笨。
真正理解上下文的对话(机票查询):
AGENT:从哪里出发?
用户:上海虹桥机场
AGENT:到哪里?
用户:算了,从浦东走吧
AGENT:好的,出发改为浦东。那到达城市呢?
用户:北京
AGENT:好的,从浦东到北京的航班是...(给出正确的结果)
而具备真正上下文理解的对话,agent可以正确理解用户第二个回答的内容(从浦东走),其实是在修改上一问题的回答(出发机场),而不是真的在回答第二个问题(到达地在哪里)。
这只是上下文的例子,而对于服务类agent而言,所有后续的NLP功能都基于上下文对话为前提。这些看上去其实都是非常简单的需求,但是当前没有任何一个2C的agent可以做到。
可能有人会问,大部分用户都应该在第一时间把需求表达出来吧,为什么还需要对话?实际上,真正操作过大量案例的同学就会发现,用户不可能如此”贴心“地按照开发者的设计来提出需求。
“帮我看看下个星期五去北京,下午3点多,从虹桥出发,国航的航班。”——这一类的表达方式在几乎从来没有出现过。哪怕是在用户最熟悉的场景,也很难确保一个句子的表达里包含了所有必须的检索条件。而且,用户还会不停的补充更多的个性化需求。
对于用户自己比较了解的场景,如:订机票需要提供到达地,用户提出的大多数需求,在最初都是非常简单,然后逐渐开始细化的。所以需要当用户提出不完整需求的时候,根据其意图,结合之前已经给过的条件,通过对话,向用户提出问题,再获得答案来补全剩下还需要的条件,最后再完成服务。
对于用户自己不熟悉的场景,用户根本就不知道自己该提出哪些方面的需求。如:不懂酒的用户,想买一瓶合适的威士忌。他就根本很难提出除了价格以外的需求,比如产地,年份,酿造原料,水源等等。因此,Agent得以合适的方式来提问,引导用户给出偏好,并且用对话提出推荐。
而且对于agent而言,很难判断哪些用户对服务的认知有多深。如果不做识别,就容易问“老手”一些“新手问题”,继而让老手觉得我还不如自己下单;而给新手又留下“你在说什么我都不懂”的印象,也是不聪明。
所以要有好的体验,这是非常困难的。而基于上下文的对话,只是最基础的用户需求之一。
2)理解口语中的逻辑(logic understanding)
在我们的实践中,我们发现对“逻辑”的理解直观重要。原因也是因为用户的正常对话,大部分都不是开发者预设那样的。
再做一个简单的测试,比如找餐厅,试试:帮我推荐一个附近的餐厅,不要日本菜。
这是一个简单逻辑,但是你看所有的服务,这次包括刚刚那个国内创业公司C一样,都会是一个结果:全部推荐日本菜。
也让朋友测试了亚马逊echo的alexa,结果也无法识别”不要“这个最简单的逻辑
这次其实比刚刚好多了,至少4家里面除了google allo,都识别出来我的意图是找餐厅——但是,当我明确提出不要日本菜的时候,给出结果的三家全部都是日本菜......也就是说“不要”两个字被完全忽略了。
观察大量的用户案例表明,当用户越是个性化需求强烈的时候,对话中出现逻辑和指代关系的频次越高。
“有没有更便宜的?”
“除了大床房以外的房间有么?”
“后天会比今天更冷么?”
“就要刚刚的那个2千多的吧。”
“除了廉价航空,其他的航班都可以。”
以上这些需求是提需求的时候,在对话中经常出现的表达方式,而且看似简单,但是目前没有任何一个NLU的系统或产品能够正确的理解。主要的阻碍就是对逻辑的理解,还有在基于上下文对话中的指代关系的理解失败。
3)NLP不是全部,还要有能力履行(API困境)
NLU并不是智能助理发展的瓶颈,供给端的数据才是。
我们假设如果有一个黑科技出现,使得NLP有了极大的进步,以至于两个条件:1)基于上下文场景的对话;2)口语逻辑,都能被理解了,甚至还能基于场景和上下文用NLG来生成各类问题——它能理解我们所有讲出来的需求。
在用户熟悉的范围内,它能结合所有的过去的对话,历史记录等等内部外部条件,帮助用户尽可能的实现“不用开口,就知道我在
本文来源:不详 作者:佚名