8182
2021年4月10日-12日,吴文俊人工智能科学技术奖十周年颁奖盛典暨2020中国人工智能产业年会在北京和苏州同期圆满成功举办。中国人民大学高瓴人工智能学院长聘副教授赵鑫受邀在苏州工业园区希尔顿酒店,2020中国人工智能产业年会—青年科学家前沿论坛上发表主题报告《会话式推荐系统的最新研究进展》。
以下为演讲实录:
大家好,感谢李老师的介绍,我今天给大家带来的题目《会话式推荐系统的最新研究进展》,题目比较发散,各个应用都有,我把技术部分尽量弱化,把事情讲清楚。
我先介绍一下推荐算法工作内在的原理和工作进展,姐姐这介绍一下会话式推荐题目下有哪些进展,最后是我们研究组的工作,涉及到算法、数据集和工具包。
01
推荐算法概览
什么是推荐算法,这个大家都不陌生,图片里面列出了很多应用,我们绝大部分应用里面都是推荐算法在起作用,特别是以用户为核心的应用里面,是用来匹配用户与信息资源的。
这一页PPT是比较有意思的论文,主要是讲信息时代用户获取信息的几种重要的途径,认为推荐算法和搜索算法成为用户获取信息的最重要的两种形式,最后推荐搜索和广告会达到收敛,最终是为了满足用户需求的事情。
今年MIT技术评审也把推荐算法列为2021年十大突破性技术,可以快速的吸引到很多的观众,并且新来用户的资源可以非常快速的获取到很多的关注。
推荐算法的论文有很多,上千篇是有了,核心就是设置一个函数,就是F是一个函数,最终就是计算用户资源在某一个背景下,这三者的匹配程度,你推荐的情况下就是给特定的背景,针对用户推荐合适的资源,大概技术的进展就是2000年主要协同过滤,2010年是基于矩阵分解的,2015年左右开始神经网络的算法基本上算是主导了这样的推荐系统主要的架构,现在工业界很多都是神经网络为基础设计自己的框架。
早期的侧重点是数据,刚才也看到那个函数,怎么把数据里面的函数学习出来,更关注于模型的架构和方式,现在学习算法有很多种了,对于这样一个偏应用的题目,可能用户就会变得尤为重要,就是如何吸引用户,让用户多找到符合自己兴趣的信息资源,更为观众可解释性和交互方式,可解释性是模型具有可解释性,另外就是给用户是劝说性的,为什么用这样的推荐。交互方式就是希望这个模型上用户进入,让用户提供反馈,而不是单一的反馈,最后算出一个比较冰冷的值,而是希望用户进入到函数中间。在这种背景下,会出现会话式推荐。
02
会话式推荐研究进展
会话式推荐是什么呢?大家用过智能客服和导购机器人就知道是什么场景了,比较典型的例子就是智能客服和导购机器人,这个是和智能系统相关联的,我国也在《新一代人工智能发展规划》里面也说列为重要的发展方向。
这样一个图是借鉴之前会议的,我节选了一些比较重要的PPT。
第一就是把Google scholar做了一个图,过了平稳期之后有一个非常显著的增长。最早的一篇,在很早之前已经有了,在2000年左右,这是最早的论文,会话式推荐也是在这篇论文里面提出来的。
这篇论文里面给出的雏形和构想非常接近于当前的导购机器人,这个图就是院士论文里面的,2000年就设计出了这样一个场景,实际上是推荐餐馆的事情,现在看来这个事情不是特别简单,还有挺有挑战性的,一开始会说你想吃哪种类型的菜,中间有了一步反悔,最后又有了地点。
也给出了这样一个雏形架构,这样一个架构和我们后面要给出来最近两三年的架构非常相接近的,主要是下面的部分,整个有对话的管理器,这个管理器里面有两个部分,如何跟用户进行建模,另外就是用户建模好以后,如何从产品库或者信息资源库里,把这样的信息推荐出来。
用户建模是拿到和用户的历史对话,如何向用户提问,通过对话不断地引导用户说出自己真正的需求,反复的问用户的需求,当需求明确以后,对用户推荐可能想要的信息资源。
中间是增长缓慢的时间,困扰大家的点就是无法生成高质量的会话,很多人把人机对话做了简化,很多时候我的问题都是模板化的,回复也是模板化的,最终变成了如何选择某一种属性发问,得到某一种属性再回复。
真正重要的进展是2018年左右,第一篇论文是定义清楚了深度学习情况下会话式推荐系统的框架,后面就是进一步把对话进行完善。第三篇论文是把知识图谱引进来了。
这几篇论文都是把推荐系统的框架最后有了一个确定,这个跟刚刚讲的2000年的框架非常像,这是人机交互系统,用户有一些需求,反馈一些推荐,并且给一些推荐的解释,关键的几个模块就是一开始要有自然语言的理解模块,就是NLU部分,理解用户的提问的什么东西。中间最重要的就是对话状态的管理,因为这个过程不是单一轮次的,而是一系列的问话,如何规划这样的对话,当对话管理系统处理完毕之后,会通过NLG部分返回,这个就是自然语言生成,通过会话的形式跟用户交流,背后支撑对话状态管理系统的有一个推荐的引擎和解释性引擎,推荐引擎就是根据用户的需求推荐物品,解释性引擎就是说什么样的话。说一下什么是对话状态管理器,把用户的需求弄清楚,这是一个订酒店的例子,右面是对话状态的示意图,一开始对价格的区间有了明确的范围,紧接着又是知道了是不是需要停车,下面就是进一步增加新的属性,每一步都是针对这些属性不断地完善对于用户状态的理解,所以这样能够帮助我们很好的判定用户的真实意图是什么。
这个图是我最终和用户交互的图,用户必须输入的是文本,回应用户也是文本,这里面比较常用的自然语言处理方面的Encoder-Decoder的架构,Encoder就是编码这样一个quarry,Decoder就是生成自动生成的回复,和其他的对话比较难的就是必须生成出来电影以及生成出来的评论这是比一般对话系统难的地方。
03
代表性工作介绍
一、算法 (SIGKDD 2020)
第一是算法,我们看一下这样的事情是比较难的事情,这边我们列了一个简短的用户找电影的过程,用户想找到一些恐怖电影,他说有没有电影和这个是相似的。就说IT片子是也许符合你的,也是经典的恐怖电影。这个过程完全都是通过文本或者对话的方式表述的,如果文本字面很难说恐怖电影和这个电影名字有关联,这个是《IT》词如何知道是一个电影,我们必须要引入外部知识。引入外部知识之后发现什么呢?实际上存在两个语义空间,第一是词的语义空间,另外一部分就是实体的语义空间,怎么知道IT和剧情包括恐怖电影之间有联系的,这一部分是词的语义空间,一部分是实体的语义空间,实际上就是语义壁垒,如何把这个事情打通。
其次我们可以看到会话里面,我们的对话必须具有实质性的内容,实质性的引导它,而不是随便闲聊,聊的太多会觉得你不专业。其次就是我必须给出推荐理由,给出推荐理由之后,才能强化推荐的效果,这些都不是闲聊性的对话系统能够解决的。
围绕这些点我们就做了一些工作,基本思路还是需要外部知识,就引入了词汇的知识图谱和实体知识图谱,这两个东西有语义的壁垒,就试图融合这两部分的语义空间,然后加强推荐效果。
先看一下我们针对电影、导演、实体方面引入了知识图谱,这里面用的是DBpedia,土布是用的ConceptNet,上面都是图神经网络做编码,图的语义就被编码出来了,现在上下空间不相符,一个形容性的词怎么跟实体之间有关联,我必须打通这个关联。我们就用了一个信息最大化的技术,核心想法就是两个有关联的变量,使得关联靠近,对于我们发现一个词和实体经常有贡献的话,表示拉近,这样就可以打通上下的词汇空间和文本语义的空间。
一旦打通的话,用户的推荐就比较简单了,用户就可以搜寻到历史文本,编码成向量,也可以算用户的表示与实体表示之间的相关性,就可以做推荐了。
比较复杂的就是最后怎么生成富有信息量推荐理由,为什么给你推这个电影,这里面就不是闲聊了,同时成为一句话,包含电影,包含人物,把原来比较经典的transformer做了拓展,把词汇图谱和实体图谱融入这个过程,使得我们生成带有实体、带有推荐理由的回复。
围绕这个事情,我们第二个工作就是做了数据集,现在对话的数据集非常难构建,因为都需要人写,就会有问题,通常雇到的人有数量限制的,雇100个人写出来一万个对话困难比较大,同样一个人写多次之后,多样性会非常差。
怎么解决这个问题呢?我们就想如何利用已有的数据半自动生成,很多用户是有观影记录的,比如说在豆瓣上,我们把用户假象成推荐性系统里面的用户,把观影序列找出来,找到电影的标签,找到标签以后就可以构建绘画话题的推进术,我们就围绕每一个标签去电影里面找到一些话,生成脚本,让人重新标注,这样就让标注的数量有了大幅度减少,比较贴近于真实的场景。
我们也是发布了数据集,大概有一万个对话,里面包含12个句子,要不然是提问,要不然是回复,也是围绕这个定义了三个任务,物体的推荐、话题的预测和回复的生成。
总结一下我们研究方向未来的研究展望,首先就是目前已有会话式推荐系统还是非常初步的阶段,非常困难的任务,目前学术界的研究都局限于垂直领域,垂直领域要不然推荐书,要不然推荐电影,目前不能适应广域的物品推荐,能够结合垂直领域或者多个垂直领域的推荐,完成广泛的广义推荐。我们可以有图片信息、视频信息,这些如何拓展到多媒体的信息维度上,加强语义理解和报答。
其次就是融合线上线下用户数据,线上就是用户进入会话,线下是客户有很多购物记录,我们如何把购物记录去利用上去,这样用户进入会话里面就不是冷启动了。
最后就是处理复杂需求场景,这个还没有特别好的解决方案,这个也是人工智能里面核心的难点,用户会比较两个产品或者一堆产品,或者形成物品搭配等等。