敏态场景下,自研数据库如何做好技术演进和落地调优?点击预约直播 了解详情
写点什么

微软专家眼中个性化推荐系统的 5 大研究趋势

  • 2018 年 11 月 29 日
  • 本文字数:8245 字

    阅读完需:约 27 分钟

微软专家眼中个性化推荐系统的5大研究趋势

“猜你喜欢”、“购买过此商品的用户还购买过……”对于离不开社交平台、电商、新闻阅读、生活服务的现代互联网用户来说,个性化推荐已经不是什么新鲜事儿。


随着信息技术和互联网行业的发展,信息过载成了人们处理信息的挑战。对于用户而言,如何在以指数增长的资源中快速、准确地定位到自己需要的内容是一个非常重要且极具挑战的事情。对于商家而言,如何把恰当的物品及时呈现给用户,从而促进交易量和经济增长,也是一件颇具难度的事情。推荐系统的诞生极大地缓解了这个困难。


推荐系统是一种信息过滤系统,能根据用户的档案或者历史行为记录,学习出用户的兴趣爱好,预测出用户对给定物品的评分或偏好。它改变了商家与用户的沟通方式,加强了和用户之间的交互性。


据报道,推荐系统给亚马逊带来了 35%的销售收入,给 Netflix 带来了高达 75%的消费,并且 Youtube 主页上 60%的浏览来自推荐服务。


因此,如何搭建有效的推荐系统意义深远。我们将从深度学习的应用、知识图谱的应用、强化学习的应用、用户画像、可解释推荐等几个方面,一起看看推荐系统的未来。


研究热点 1:推荐系统与深度学习

近几年深度学习的技术应用在语音识别、计算机视觉和自然语言理解等领域,取得了巨大的成功。如何将其应用到推荐系统是当前的研究热点。深度推荐系统现阶段的应用主要体现在如下三个层面:


提升表征学习能力。深度神经网络的优势在于其强大的表征学习能力。因此,一种最直接的应用是,利用深度学习技术从复杂的内容数据中学习出有效的隐因子特征表示,从而后续可以很方便地为推荐系统所用。


深度协同过滤。经典的矩阵分解模型可以被描述为一种非常简单的神经网络。我们可以通过拓展其中的结构,引入更多的非线性单元来加强推荐模型的功能。例如,在 WWW 2017 论文《Neural collaborative filtering》中,作者提出了加强版的矩阵分解模型。一方面,它弥补了两个隐向量的朴素点积操作不能区分各维度之间重要性差别的弱点;另一方面,它额外引入了一个多层感知机模块,用来引入更多的非线性操作。除此之外,自动编码机、卷积神经网络、记忆网络、注意力网络等深度学习相关技术也分别被应用在改进传统的协同过滤模型中,取得了不错的效果。


特征间的深度交互。企业级的推荐系统为了尽量提高模型的准确性,往往会使用丰富的甚至异构的内容数据。这些特征从不同的维度展现了不同的信息,而且特征间的组合通常是非常有意义的。传统的交叉特征是由工程师手动设计的,这有很大的局限性,成本很高,并且不能拓展到未曾出现过的交叉模式中。因此学者们开始研究用神经网络去自动学习高阶的特征交互模式,弥补人工特征工程带来的种种局限性。这个层面相关的模型包括 Wide&Deep、PNN、DeepFM、DCN、以及我们近期提出的 xDeepFM 模型(《xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems》,KDD 2018)等。


深度学习技术在推荐系统中的应用前景很广阔。下面简要介绍几个未来可能的研究方向:


效率与可拓展性

对于工业界推荐系统而言,不仅需要考虑模型的准确度,运行效率和可维护性也是非常重要的方面。效率指的是当用户发来一个请求时,推荐系统能够以接近实时的速度返回结果,而不需让用户等待;可维护性指系统的部署简便,能够支持定期更新,或者增量式更新。众所周知,复杂神经网络的计算量是庞大的,如何将它们更高效的应用在超大规模的推荐平台上,是亟需解决的技术难点。


多样化数据融合

现实平台中,用户或者物品的数据往往是复杂多样的。物品的内容可以包括文本、图像、类别等数据;用户的行为数据可以来自多个领域,例如社交网络、搜索引擎、新闻阅读应用等;用户的行为反馈也可以是丰富多样的,例如电商网站中,用户的行为可能有搜索、浏览、点击、收藏、购买等。不仅如此,在这些不同的维度中,不同用户或物品的数据分布也千差万别;用户在不同的行为反馈上的数据量也不同,点击行为的数据量往往远大于购买行为的数据量。因此,单一、同构的模型是不能有效地处理这些多样化的数据的。如何深度融合这些复杂数据是一个技术难点。


捕捉用户长短期偏好

用户的偏好大致可以分为长期和短期两类。长期偏好往往指用户的兴趣所在,例如她是五月天的歌迷,那么未来很长时间她都会对五月天的歌曲、演唱会门票感兴趣;短期偏好指的是用户在当前环境下的即时兴趣,例如最近一周用户比较喜欢听抖音上的热门歌曲,那么推荐系统也应该捕捉到用户的这个兴趣,或者用户在未来一个月有搬家的打算,那么推荐系统可以适当地推送一些搬家公司的广告。目前一些流行的做法是,将循环神经网络与深度协同过滤技术结合,从而达到兼顾长短期记忆的功能。如何结合情境因素的影响,将用户的长期偏好与短期需求更紧密、有效地结合起来,也是一个研究热点。


研究热点 2:推荐系统与知识图谱

在多数推荐场景中,物品可能包含丰富的知识信息,而刻画这些知识的网络结构即被称为知识图谱。物品端的知识图谱极大地扩展了物品的信息,强化了物品之间的联系,为推荐提供了丰富的参考价值,更能为推荐结果带来额外的多样性和可解释性(图 1)。


图1:利用知识图谱发掘新闻间的潜在相关性


图 1:利用知识图谱发掘新闻间的潜在相关性


和社交网络相比,知识图谱是一种异构网络,因此针对知识图谱的推荐算法设计要更复杂和精巧。近年来,网络特征学习(network representation learning)逐渐成为机器学习中的一个热门的研究方向。


引入网络特征学习的方法处理推荐系统中知识图谱的相关信息,有助于增强推荐系统的学习能力,提高精确度和用户满意度。


将知识图谱引入推荐系统,主要有如两种不同的处理方式:


第一,基于特征的知识图谱辅助推荐,核心是知识图谱特征学习的引入。一般而言,知识图谱是一个由三元组<头节点,关系,尾节点> 组成的异构网络。由于知识图谱天然的高维性和异构性,首先使用知识图谱特征学习对其进行处理,从而得到实体和关系的低维稠密向量表示。这些低维的向量表示可以较为自然地与推荐系统进行结合和交互。


在这种处理框架下,推荐系统和知识图谱特征学习事实上就成为两个相关的任务。而依据其训练次序不同,又有两种结合形式:


  1. 知识图谱特征与推荐系统依次进行学习,即先学习特征,再将所学特征用于推荐。

  2. 交替学习法,将知识图谱特征学习和推荐系统视为两个相关的任务,设计一种多任务学习框架,交替优化二者的目标函数,利用知识图谱特征学习任务辅助推荐系统任务的学习。


第二,基于结构的推荐模型,则更加直接地使用知识图谱的结构特征。具体来说,对于知识图谱中的每一个实体,我们都进行宽度优先搜索来获取其在知识图谱中的多跳关联实体从中得到推荐结果。根据利用关联实体的技术的不同,可分向外传播法和向内聚合法两种方法:


  • 向外传播法模拟了用户的兴趣在知识图谱上的传播过程。我们近期的工作 RippleNet (《RippleNet: Propagating User Preferences on the Knowledge Graph for Recommender Systems》, CIKM 2018)使用了向外传播法,将每个用户的历史兴趣作为知识图谱上的种子集合,沿着知识图谱中的链接迭代地向外扩展。

  • 向内聚合法在学习知识图谱实体特征的时候聚合了该实体的邻居特征表示。通过邻居聚合的操作,每个实体的特征的计算都结合了其邻近结构信息,且权值是由链接关系和特定的用户决定的,这同时刻画了知识图谱的语义信息和用户的个性化兴趣。


结合知识图谱推荐系统的机遇与挑战

将推荐算法与知识图谱的图计算方法相结合已逐渐成为学术热点,前景广阔。然而现有方法仍有一定局限,有充分的研究空间。首先,现有模型都属于统计学习模型,即挖掘网络中的统计学信息并以此进行推断。一个困难但更有研究前景的方向是在网络中进行推理,将图推理与推荐系统相结合。其二,如何设计出性能优秀且运行效率高的算法,也是潜在的研究方向。现有模型并不涉及计算引擎层面、系统层面甚至硬件层面的考量,如何将上层算法和底层架构进行联合设计和优化,是实际应用中一个亟待研究的问题。最后,现有的模型网络结构都是静态的,在真实场景中,知识图谱具有一定的时效。如何刻画这种时间演变的网络,并在推荐时充分考虑时序信息,也值得我们未来研究。


研究热点 3:推荐系统与强化学习

通过融合深度学习与知识图谱技术,推荐系统的性能取得了大幅的提升。然而,多数的推荐系统仍是以一步到位的方式建立的。它们有着类似的搭建方式,即在充分获取用户历史数据的前提下,设计并训练特定的监督模型,从而得到用户对于不同物品的喜好程度。这些训练好的模型在部署上线后可以为特定用户识别出最具吸引力的物品,为其做出个性化推荐。在此,人们往往假设用户数据已充分获取,且其行为会在较长时间之内保持稳定,使得上述过程中所建立的推荐模型得以应付实际中的需求。然而对于诸多现实场景,例如电子商务或者在线新闻平台,用户与推荐系统之间往往会发生持续密切的交互行为。在这一过程中,用户的反馈将弥补可能的数据缺失,同时有力地揭示其当前的行为特征,从而为系统进行更加精准的个性化推荐提供重要的依据。


强化学习为解决这个问题提供了有力支持。依照用户的行为特征,我们将涉及到的推荐场景划分为静态与动态,并分别对其进行讨论。


静态场景下的强化推荐

在静态场景之下,用户的行为特征在与系统的交互过程中保持稳定不变。对于这一场景,一类有代表性的工作是基于上下文多臂老虎机(contextual multi-armed bandit)的推荐系统,它的发展为克服推荐场景中的冷启动问题提供了行之有效的解决方案。在许多现实应用中,用户的历史行为往往服从特定的长尾分布,即大多数用户仅仅产生规模有限的历史数据,而极少的用户则会生成较为充足的历史数据。这一现象所带来的数据稀疏问题使得传统模型在很多时候难以得到令人满意的实际效果。


为此,一个直接的应对方法是对用户行为进行主动式的探索,即通过对用户发起大量尝试性的推荐,以充分的获得其行为数据,从而保障推荐系统的可用性。然而不幸的是,这一简单的做法势必引发极大的探索开销,使得它在现实中并不具备可行性。为使主动式探索具备可行的效用开销,人们尝试借助多臂老虎机问题所带来的启发。多臂老虎机问题旨在于“探索-利用”间做出最优的权衡,为此诸多经典算法,被相继提出。尽管不同的算法有着不同的实施机制,它们的设计都本着一个共同的原则。


具体说来,系统在做出推荐的时候会综合考虑物品的推荐效用以及累积尝试。较高的推荐效用预示着较低的探索开销,而较低的累积尝试则表明较高的不确定性。为此,不同的算法都会设计特定的整合机制,使得同时具备较高推荐效用与不确定性物品可以得到优先尝试。


动态场景下的强化推荐

在多臂老虎机的设定场景下,用户的实时特征被假设为固定不变的,因此算法并未涉及用户行为发生动态迁移的情况。然而对于诸多现实中的推荐场景,用户行为往往会在交互过程中不断变化。这就要求推荐系统依照用户反馈精确估计其状态发展,并为之制定优化的推荐策略。具体来讲,一个理想的推荐系统应满足如下双方面的属性。一方面,推荐决策需要充分基于用户过往的反馈数据;另一方面,推荐系统需要优化整个交互过程之中的全局收益。强化学习为实现上述目标提供了有力的技术支持。


在强化学习的框架之下,推荐系统被视作一个智能体(agent),用户当前的行为特征被抽象成为状态(state),待推荐的对象(如候选新闻)则被当作动作(action)。在每次推荐交互中,系统依据用户的状态,选择合适的动作,以最大化特定的长效目标(如点击总数或停留时长)。推荐系统与用户交互过程中所产生的行为数据被组织成为经验(experience),用以记录相应动作产生的奖励(reward)以及状态转移(state-transition)。基于不断积累的经验,强化学习算法得出策略(policy),用以指导特定状态下最优的动作选取。


我们近期将强化学习成功应用于必应个性化新闻推荐(《DRN: A Deep Reinforcement Learning Framework for News Recommendation》,WWW 2018)。得益于算法的序列化决策能力及其对长效目标的优化,强化学习必将服务于更为广泛的现实场景,从而极大地改善推荐系统的用户感知与个性化能力。


强化推荐的机遇与挑战

强化学习推荐算法尚有诸多富有挑战性的问题亟待解决。


现行主流的深度强化学习算法都试图避开对环境的建模,而直接进行策略学习(即 model-free)。这就要求海量的经验数据以获取最优的推荐策略。然而,推荐场景下的可获取的交互数据往往规模有限且奖励信号稀疏(reward-sparsity),这就使得简单地套用既有算法难以取得令人满意的实际效果。如何运用有限的用户交互得到有效的决策模型将是算法进一步提升的主要方向。


此外,现实中人们往往需要对不同推荐场景进行独立的策略学习。不同场景下的策略互不相同,这就使得人们不得不花费大量精力以对每个场景都进行充分的数据采集。同时,由于不具备通用性,既有策略难以迅速适应新的推荐场景。面对这些挑战,人们需要尽可能地提出通用策略的学习机制,以打通算法在不同推荐场景间的壁垒,并增强其在变化场景中的鲁棒性。


研究热点 4:推荐系统中的用户画像

构建推荐系统的核心任务之一在于如何准确地分析出用户的兴趣特点,也就是我们常说的用户画像。


简单说来,用户画像是指从用户产生的各种数据中挖掘和抽取用户在不同属性上的标签,如年龄、性别、职业、收入、兴趣等。完备且准确的属性标签将有力地揭示用户本质特征,因而极大地促进精准的个性化推荐。


用户画像研究的现状和挑战

目前,主流用户画像方法一般是基于机器学习尤其是有监督学习的技术。这类方法从用户数据中抽取特征来作为用户的表示向量,并利用有用户属性标签的数据作为有标注数据来训练用户画像预测模型,从而对更多的没有标签的用户的属性进行预测。


尽管目前的用户画像方法已经取得了不错的效果并被广泛应用于实际推荐系统中,这些方法仍然存在一定的问题和挑战:


  • 首先,这些已有的方法大多数都基于手工抽取的离散特征,这些特征无法刻画用户数据的上下文信息,因此对于用户的表征能力较为有限。

  • 其次,现有的用户画像方法通常基于简单的线性回归或分类模型,无法从用户数据中自动学习高层次抽象特征,也无法对特征之间的交互关系进行建模。另外,已有的用户画像方法往往基于单一类型和单一来源的数据,这些数据对于用户的表征不够丰富。而实际上,用户数据往往是多来源和多类型的。

  • 最后,已有的用户画像方法大都没有考虑用户属性标签的时效性,因此很难刻画用户动态变化的属性如兴趣等。


从多源异构用户数据中构建深度、统一和动态的用户画像

为了应对上述挑战,我们认为应该从以下方面展开用户画像研究:


  1. 构建具有更强表征能力的用户表示模型。随着深度学习技术的发展和成熟,利用深层神经网络从用户原始数据中自动抽取深层次的、有信息量的特征来构建用户的特征表示能够有助于更加充分地利用用户数据并有效提升用户画像的精度。使用基于深层神经网络的用户表示模型能够有效克服目前已有的基于特征工程和线性模型的用户画像方法的不足。我们提出的 HURA 模型(《Neural Demographic Prediction using Search Query》, WSDM 2019)基于多层注意力机制和神经网络结构,有效地通过搜索日志预测了用户个人属性。

  2. 基于多源和异构数据的用户画像。用户产生的数据往往分布在不同的平台,并且具有不同的结构(如无结构的社交媒体文本数据和有结构的电商网站购买记录等)和不同的模态(如文本数据和图像数据),给用户画像带来了很大的挑战。如何设计一个深度信息融合模型来利用不同来源、不同结构和不同模态的用户数据进行用户建模,是未来用户画像领域的一个重要方向。基于深度神经网络的协同学习和多通道模型可能是值得尝试的技术。

  3. 不同平台用户画像数据的共享和用户隐私保护。目前很多用户数据存在于不同的平台当中,例如搜索引擎拥有用户的搜索和网页浏览记录,电商网站拥有用户的商品浏览、购物、收藏和购买信息。这些不同平台的用户数据对于用户画像都具有重要的价值,互相之间可以提供互补信息,有助于构建更加丰富全面的用户表示。然而,平台之间直接共享用户信息可能会使得用户的隐私受到泄露和损害。如何在不转移和不共享用户数据的情况下,充分利用不同平台的用户信息实现协同用户画像和建模是值得研究的一个方向。

  4. 面向用户画像的统一用户表示模型。已有的用户画像方法在实际的应用中往往会涉及大量模型的训练、存储和调用,时间和空间的复杂度都比较高,使用起来也比较繁琐。另外,不同的用户属性之间潜在的联系也无法充分挖掘。如何基于多源异构的用户数据构建一个统一的用户表示模型,使得该模型可以尽可能全面而准确地包含一个用户在不同属性和维度的特征信息并能够应用于多个用户画像任务是一个非常值得研究的方向。基于深层神经网络的多任务学习技术和类似词嵌入的用户嵌入技术有希望能够应用于这个问题。


研究热点 5:推荐系统的可解释性

上文所述推荐系统研究大都将重心放在提高推荐准确性上,与推荐对象的沟通考虑得不够。近期,学者们开始关注推荐是否能够以用户容易接受的方式,充分抓住用户心理,给出适当的例子与用户沟通。研究发现,这样的系统不仅能够提升系统透明度,还能够提高用户对系统的信任和接受程度 、用户选择推荐产品的概率以及用户满意程度。设计这样一个可解释的推荐系统是我们的终极目标。


作为推荐领域被探索得较少的一个方向,可解释推荐的很多方面值得研究与探索。目前,我们在考虑从下面三个方面进行研究。


利用知识图谱增强算法解释能力

知识图谱作为可读性高的外部知识载体,给提高算法解释能力提供了极大的可能性。现有的可解释推荐所生成的推荐解释往往只局限于以物品为媒介、以用户为媒介或者以特征为媒介中的某一种,对这三类媒介之间的关联挖掘得还不够。我们希望能够利用知识图谱,打通这三类媒介之间的关联,根据具体情况灵活选择其中最合适的媒介对用户进行推荐与解释。另外,我们还可能利用 Microsoft Concept Graph 这类概念图谱,建立特征之间的可读深度结构,从而用来代替目前解释性极弱的深度学习网络,在提高可读性的同时保证算法的准确性。


在可解释人工智能越来越重要的时代,将知识图谱这类符号知识(symbolic knowledge)和深度学习结合,会是极有前景的方向。


模型无关的可解释推荐框架

目前可解释推荐系统大多是针对特定的推荐模型设计,可拓展性较弱,对于新兴的推荐模型,例如含有深度神经网络的复杂、混合模型的解释能力还不够。如果有一个模型无关的可解释推荐框架,就可以避免针对每个推荐系统分别设计解释方案,从而提高方法的可拓展性。我们对此做了初步尝试(《A Reinforcement Learning Framework for Explainable Recommendation》,ICDM2018)。在这一工作中,我们提出用如下的强化学习框架(图 2)来对任何推荐模型进行解释,同时确保可拓展性、解释能力以及解释质量。


图2:模型无关的可解释推荐强化学习框架


图 2:模型无关的可解释推荐强化学习框架


结合生成模型进行对话式推荐

目前的推荐解释往往形式是预先设定、千篇一律的(如预先设定推荐解释是以用户为媒介的)。这样尽管也能根据用户心理举出一些例证,但是在沟通方式上还过于呆板。如果能用生成模型让推荐系统“自创”一句通顺甚至高情商的话,就可以在与用户聊天的过程中进行灵活、多变地推荐解释了。我们团队与微软小冰合作,在这方面进行了一些尝试,为小冰生成音乐推荐解释。


我们认为未来的推荐系统需要进一步考虑推荐算法的效率与可拓展性、融合多源异构的用户行为数据,并捕捉用户长短期的偏好;在推荐系统中结合知识图谱推理、设计通用策略的学习机制、以及通过有限的用户交互数据得到有效的决策模型是重要的研究方向;在可解释性方面,我们需要借助知识图谱来增强算法解释能力、设计模型无关的可解释推荐框架、并考虑结合生成模型进行对话式推荐;最后,我们需要认真关注用户隐私问题,设计在不同平台间共享用户数据的机制,并建立面向推荐系统的统一用户表示模型。我们相信个性化推荐系统将在准确性、多样性、计算效率、以及可解释性多个不同的方向持续演进,最终解决用户信息过载的困扰。


本文贡献者:谢幸,练建勋,刘政,王希廷,吴方照,王鸿伟,陈仲夏


作者介绍

社会计算组


微软亚洲研究院社会计算组致力于将计算机科学与社会学、心理学、认知科学等领域相结合,基于用户在各种异构社交平台上产生的大规模行为数据,对用户进行全面和深度的理解,进而为用户提供更加智能和个性化的服务。该组目前的主要研究方向包括用户建模、推荐系统、时空数据挖掘、图数据挖掘、情感分析与个性化聊天系统等,其学术水平在社会计算、普适计算与数据挖掘等领域均享有盛名,并与微软人工智能产品团队有着密切的合作关系。



2018 年 11 月 29 日 13:353244

评论 1 条评论

发布
暂无评论
发现更多内容

Redis核心原理与实践--列表实现原理之quicklist结构

binecy

redis 数据结构 原理分析

CyclicBarrier类在性能测试中应用

FunTester

线程 多线程 性能测试 线程安全 FunTester

在线JSON转jsdoc工具

入门小站

工具

网络攻防学习笔记 Day140

穿过生命散发芬芳

9月日更 网站安全基础

JavaScript进阶(三)模块化

Augus

JavaScript 9月日更

Prometheus 2.22.0 新特性

耳东@Erdong

Prometheus 9月日更

小小感悟

Nydia

写给互联网工程师的5G书 | 2. 无线传输

俞凡

架构 5G

Opus从入门到精通(四)Opus解码程序实现

轻口味

android 音视频 9月日更

数据结构与算法:缓存置换算法

正向成长

LRU 置换算法

产品分析:谁是利益相关者?

石云升

产品经理 9月日更

【Vuex 源码学习】第六篇 - Vuex 的模块收集

Brave

源码 vuex 9月日更

【Flutter 专题】42 图解页面截屏与本地保存小尝试

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 9月日更

写给互联网工程师的5G书 | 3. 基础架构

俞凡

架构 5G 网络

模块八作业

NewBranSTONE

架构实战营

谈 C++17 里的 Observer 模式 - 补

hedzr

c++ 设计模式 观察者模式 Design Patterns c++17

autojs自动化框架简介

IT蜗壳-Tango

9月日更

【LeetCode】回文链表Java题解

Albert

算法 LeetCode 9月日更

中秋节如何拍月亮

卢卡多多

9月日更

linux之fping命令

入门小站

Linux

【LeetCode】括号的最大嵌套深度Java题解

Albert

算法 LeetCode 9月日更

JVM 内存模型学习笔记(二)

六维

JVM 9月日更

译文:为什么超链接是蓝色的?(一)

姬翔

Linux初体验:Linux操作系统

在即

9月日更

Scrum Patterns:昨日天气(译)

Bruce Talk

敏捷 译文 Agile Scrum Patterns

【直播预告】阿里云服务网格 ASM 产品易用性改善实践与思考

阿里巴巴云原生

阿里云 云原生

【优化技术专题】「温故而知新」基于Quartz系列的任务调度框架的动态化任务实现分析

洛神の殇

Java quartz 任务调度 9月日更

华强买瓜•程序员版

三分恶

程序员

Java“锁”事

中原银行

Java 中原银行

k8s deployment controller源码分析

良凯尔

Kubernetes 源码分析 Kubernetes源码 #Kubernetes#

什么是数据粒度

奔向架构师

数据仓库 9月日更

微软专家眼中个性化推荐系统的5大研究趋势_AI_微软亚洲研究院_InfoQ精选文章