Group Recommendation

本文是自己在推荐系统研究中研读的论文翻译及解读,原文:Social Influence-based Group Representation Learning for Group Recommendation

  • ICDE2019会议论文 最佳论文

  • Hongzhi Yin

  • 本篇笔记为本人原创,如需转载引用,请务必在文中附上原链接及相应说明,包括作者信息(阿瑟)

  • 本篇笔记非标准译文,其中包含了笔者自己对问题的部分理解,仅供参考,欢迎学习交流

摘要

作为社会动物,参加群体活动 Group Activities 是人们日常社会生活中不可缺少的一部分,向群体用户推荐满意的活动是推荐系统的重要任务。主要挑战是如何综合群体成员的个人偏好来推断群体的决策 即用个体的历史信息,表征群体的喜好特性。

传统的群体推荐方法采用预先定义的偏好聚集策略(Preference Aggregation)。然而,这些静态策略过于简单,无法模拟真实而复杂的群体决策过程,特别是对于临时性的群体决策(occasional groups )。

此外,群体成员在一个组中应该具有非均匀的影响或权重,并且用户的权重可以在不同的组中变化。因此,一个理想的群体推荐系统不仅要能够准确地了解用户的个人偏好,还要能够从数据中准确地了解用户的偏好聚合策略。

本文因此提出了新的推荐算法 Social influence-based Group Recommender,以注意力机制和二部图嵌入模型BGEM为构建块。

  • 具体来说,我们采用注意力机制来了解每个用户的社会影响力,并使其社会影响力适应不同的群体
  • 掘和整合用户的全局和局部social network结构信息,进一步提高对用户社会影响的估计。
  • BGEM被扩展到模型group-item interaction。
  • 为了克服偶发群组(occasional groups)交互数据的局限性和稀疏性,提出了两种模型优化方法,实现对user-item用户-物品交互数据的无缝集成。
    创建了两个大规模的基准数据集,并对它们进行了广泛的实验。

背景

群体活动作为社会性动物,对人们的社会生活至关重要。例如,家人经常在晚上一起看电视节目;朋友经常一起出去吃饭、看电影、参加聚会和旅行。随着最近智能手机和社交网络服务的发展和普及,人们聚在一起组建永久或临时Group变得更加方便和容易。为一组用户推荐相关的物品/活动(如外出就餐、看电影和聚会),称为群体推荐 Group Recommendation。

第一个群组推荐系统MusicFX是为了向一群健身用户推荐音乐而开发的。从那时起,团体推荐就出现在各种推荐应用中,如旅游业和社交活动。有两种类型的组:持续群组和偶发群组。持续组是指具有稳定成员和足够的群组-物品交互记录的相对静态组;而偶发组是临时组,用户可能只是第一次组成组(即冷启动组)。

为了向持续组提供推荐,可以将每个组视为一个虚拟用户,并且由于有足够的多个组-物品 交互记录,因此可以直接使用为单个用户开发的个性化推荐算法。然而,对于临时群体来说,他们的历史交互数据非常稀少,甚至是不可用的。因此,直接学习一个偶发群体的偏好表示是不可行的,我们只能通过聚集偶发群体成员的个人偏好来学习偶发群体的偏好。在本文中,重点讨论了一个更一般的群组推荐场景,即向偶发组推荐,因为为偶发组开发的推荐技术也可以应用于持久组。

由于不同的组成员可能有不同的偏好,因此组推荐比向单个用户推荐更具挑战性。一个好的群组推荐系统不仅要能够准确地了解用户的个人偏好,而且要能够模拟群体成员之间如何达成决策或共识

先前关于群组推荐系统的研究集中在探索各种启发式聚合策略(如平均、最小痛苦和最大快乐/ average, least misery and maximum pleasure),以在群体成员之间找到关于某个项目的共识。然而,所有这些启发式和预定义的聚合策略都过于简单,无法对真实而复杂的群体决策过程进行建模,从而导致了次优的群体推荐性能。此外,用户在不同的组中可能表现出不同的影响和具有不同的权重。

由于用户参加的群体活动数量有限,要准确地了解每个用户的社会影响力是很困难的,更不用说以前从未参加过任何群体活动的用户了。为了缓解数据稀疏的问题,我们提出了一种基于叠加去噪自编码(Stacked Denoising Auto-Encoder)的学习框架,利用和整合现有的用户社会网络信息,以正则化的形式提高对用户社会影响的估计。同时考虑全局和局部网络结构信息。具体地说,我们采用各种中心性度量(如PageRank中心性、度中心性和特征向量中心性)来获取全局结构特征,并应用DeepWalk和node2vec等最新的网络嵌入方法通过保留邻域来学习每个用户节点的局部结构特征每个节点的信息。

使用二部图嵌入模型(BGEM)从群组-物品交互数据中学习用户和物品在低维空间中的嵌入。但是,从群众-物品交互数据中,我们只能学习嵌入至少参加过一个组活动的用户和与至少一个组交互的项。由于临时群体的冷启动性质,他们可能包含从未参加过团体活动的成员。此外,用户参加的群组活动数量也相当有限。为了有效克服这些局限性,我们提出利用足够多的个体活动数据(即用户-物品交互数据)来提高用户和物品的嵌入学习。为了在同一嵌入空间中无缝集成用户-物品交互数据和组-物品交互数据,提出了两种模型优化方法来实现基于社会影响的组推荐器(SIGR):Two-stage Optimization 两阶段优化方法和Jonit Optimization联合优化方法。


模型

形式定义

输入: 用户集,物品集,群组集,群组-物品交互二部图,用户-物品交互二部图,用户-用户关系图

输出: 针对一个群组,给出相应的个性化物品排序分值

交互表征学习

在本节中,我们将以用户-物品交互数据为例,展示如何使用 BGEM 模型来学习嵌入异构交互实体。 由于 BGEM 在二部图嵌入中的成功,我们选择它来进行交互学习,实验1也验证了它的优越性。

注:BGEM是作者2018年在ICDE发表的工作

用二部图表示用户与物品之间的交互,即 ,其中 是用户与物品之间的边集合。

如果用户与物品 交互,那么它们之间存在一个边 。 如果有用户对物品的评分信息,边 上的权重等于 对物品 的规范化评级(即 在范围[0,1]中) ; 否则,权重设置为1。 给定一个用户 ,我们将 与物品 交互的概率定义如下:

其中分别为用户和物品的嵌入表示。本质就是一个softmax,归一化操作

BGEM在最近词嵌入和图嵌入技术的基础上,尝试最小化每个用户的估计邻居概率分布和经验分布之间的KL-divergence, KL-divergence即度量两种分布的差异。

经验分布定义为,其中是边上的权重,则是图中的节点的出度(即用户交互过的物品的权重和),通过省略一些常量,我们得到了以下目标函数:

通过最小化上述的目标函数,可以学习到每个用户和物品的嵌入 (d维向量)

然而,直接优化上述目标函数是计算代价昂贵的,因为它需要遍历整个物品集时,计算条件概率 。 为了克服这一问题,BGEM 采用负采样技术,根据每个正样本(ui,vj)的噪声分布,将多个负样本(或负边缘)合并,形成被破坏的样本(或负边缘)。 更确切地说,它为每个正例(即每个观察到的边 )指定了以下目标函数:

其中,上式的第一项最大化正例的概率,而第二项最小化概率

从噪声分布中抽样的 m 个负例,则是负例的预期值;
设置噪声分布 ,其中 是物品节点 的输出度。 对于任意缺失的交互,自然的解释是用户不知道物品的存在,因此没有交互。 还有一种可能是,用户确实知道这件物品,但却选择不与之互动,因为她不喜欢这件物品。 一个物品越受欢迎,用户就越有可能知道这个项目,因此一个缺失的交互更有可能表达“不喜欢”。 因此,我们应该根据物品的受欢迎程度来抽样。物品越受欢迎,越会被采样到。

*相关链接 https://www.jianshu.com/p/ac1b42374ede
https://zhuanlan.zhihu.com/p/79535611

https://www.jianshu.com/p/ed15e2adbfad*

对上式进行替换,得到最终的目标函数

因此,任务相当于使用逻辑回归方法,从相应的负例中,分出正例。 一个简单的优化方法是使用随机梯度下降。
为了加快训练过程,我们采用了异步随机梯度下降算法(ASGD)进行模型优化,这保证了我们的模型在实践中的可扩展性和效率。 在每个步骤中,ASGD 算法采样一个正例和m个负例来更新模型参数,并计算以下梯度 w.r.t. ui,vj 和 vk:


ASGD方法介绍

群组表征学习

与交互表征相似的做法对群-物品二部图做处理
即 ,其中 是群组与物品之间的边集合。

如果群组与物品 交互,那么它们之间存在一个边 。 如果有用户对物品的评分信息,因为临时群组对物品有评分的情况很少,直接设边 上的权重为1。

按照上面的方式得到最后的目标函数:

然而,由于偶尔/临时群组的冷启动特性,我们不能直接从群组-物品交互数据中学习到临时群组的嵌入。 与长期的团体不同,临时团体的定义是一些人偶尔一起做一些事情,比如吃饭、看电影、参加聚会和参观 兴趣地点POI [5]。 它的成员只有在特定的时刻才有共同的目标。 在许多情况下,一群人并不是为了某些共同的长期利益而建立的,而是偶尔有兴趣为了一个共同的目标而聚集在一起,例如,人们一起参加活动或一起旅行。 根据定义,偶尔的组通常是短命的,并且正在创建许多新的临时组,因此它们通常很少或根本没有历史交互数据。
群组-物品交互矩阵比用户-物品矩阵稀疏得多(参考表 i 中两个实际数据集的相关统计)。 冷启动组的问题自然而然地出现了,在这种情况下,假设组拥有大量历史交互记录的传统组推荐技术的表现将大打折扣。

为了解决冷启动问题,我们提出通过聚合群组成员的嵌入来表征群组的嵌入。 具体来说,给定一个临时群体,其嵌入表示如下:

其中表示群组对应的用户集合。

由于群体成员具有不同的社会地位、专业知识、声誉、个性和其他社会因素,他们在群体的决策和选择中并不平等,而且具有不同的社会影响。 因此,我们使用 来表示 在群体 中的社会影响力 或者 权重,它也反映了 对群体决策的贡献程度。 用户可以在由不同成员组成的不同群体中展示不同的社会影响。 小组活动的一个重要方面是需要达成共识。 在非虚拟环境中,群体成员,特别是那些社会影响力较小的群体成员,通过协商达成共识,往往愿意修改自己最初的个人意见,并做出妥协,以满足有影响力的群体成员的偏好。 有时,一个群体的偏好反映了一些有影响力的成员的偏好(例如,群体领导者或意见领袖) ,而不是大多数群体成员的共同偏好。

  • 基于注意力机制的社会影响力学习
    如何从群组-物品交互数据中了解每个组中每个成员用户的社会影响力? 由于个别群体在物品上的历史互动较少,直接学习群体意识下的个人社会影响力是不可能的。 鉴于此,我们引入了一个非负的潜在变量 来代表用户的全局社会影响力,它独立于特定的群体。 然后,受注意机制的启发,对群体意识的个人社会影响进行了计算。
    因此,我们只需要了解一个全局的个人社会影响 为每个用户评分,而不是大量的群体感知的个人社会影响 来自群体-物品交互数据。

然而,群组-物品交互数据非常稀少,用户参加的群组活动数量也相当有限,因此即使是学习全局社会影响力也可能遭受过度拟合的问题。 具体来说,如果一个用户只参加了很少的群组活动,他 / 她估计的全球社会影响可能不可靠或准确。

此外,对于从未参与过任何群组的用户,我们无法从群组-物品交互数据中了解他们的社会影响。 受到已有工作的启发,我们尝试并整合了用户的社交网络信息,这些信息可能会提供关于用户的全局社交影响力的强烈信号。 具体来说,我们探索和利用全局和局部网络结构信息。 我们采用各种中心性度量(如 PageRank 中心性、度中心性、贴近中心性、中间中心性和特征向量中心性)来获取全局结构特征,并应用最新的网络嵌入方法如 DeepWalk [20]和 node2vec [10]通过保留每个节点的邻域信息来获取每个用户节点的局部结构特征。

如何将社会网络特征整合到社会影响力学习中? 我们使用 表示用户的社会网络特征向量,并引入上下文向量作为特征选择器,对不同的社会网络特征赋予不同的权重。 然后,我们将社会网络特征向量 和上下文向量之间的点积作为个人的全局社会影响变量的高斯先验,即 ,其中 b 是全局偏差项。 我们不是简单地定义个人全局社会影响力 等于社会网络特征的加权和,而是假设 i 遵循一个带有平均 的正态分布,以了解一个更强大的个人全球社会影响力,因为个人全球社会影响力也可能受到其他未知因素的影响。
针对个人社会影响参数 引入高斯先验,在目标函数中加入相应的正则项,定义了新的目标函数。

在新的目标函数中,方差实际上起到了控制正则项权重的作用。 注意,所有全局社会网络特征都被规范化为相同的范围[0,1] ,而本地社会网络特征(即用户节点嵌入)被规范化到范围[-1,1]。
注意,通过整合社会网络特征,我们能够了解从未参加过任何团体活动的用户的全局社会影响,这有效地克服了团体-物品交互数据的局限性。

  • 深度社会影响力学习
    然而,上述利用社会网络特征的线性方法忽略了社会网络特征之间的相关性,也未能捕捉到社会网络特征的非线性和复杂的内在结构。 特征之间的相互作用,尤其是非线性的相互作用,是至关重要的。 受深度神经网络学习非线性特征相互作用的成功启发,有提出应用一种无监督的深度学习模型——叠加去噪自动编码器(SDAE) ,从原始 / 正向特征向量 中获取潜在的社会网络特征向量。

SDAE 是一种反馈式神经网络,通过学习预测输出中的清洗本身来学习有噪数据的表示。在给出模型细节之前,我们首先介绍了 SDAE 中使用的符号。 用 表示网络层数,用 矩阵表示第层网络的输出。 注意,我们使用最后一层的输出 来表示所有用户的原始社交网络特性,其中 -th 行是用户 (即 )的原始社交网络特征向量。 同样,我们使用矩阵 表示有噪矩阵(随机屏蔽中的一些条目,标记为零)。 和 分别是层 的权参数矩阵和偏参数向量。

以上图为例,介绍了4层的SDAE,从第0到第2层是编码过程,将有噪的输入映射到隐层的紧凑表示,第2层到第4层是解码过程,把中间结果再恢复到原来的向量;对于给定的有噪矩阵和,每层的生成过程是:
1)对于权重参数 ,

  1. 对于偏置参数
  2. 每层的输出

取SDAE网络的层的输出作为社会网络特征的隐特征表示,就等于的第行,将SDAE模型整合到群组特征学习框架中

SDAE

https://zhuanlan.zhihu.com/p/69654667

模型优化

通过优化上述目标函数 ,我们只能得到参加至少一个群组活动的用户嵌入,或者与至少一个群组有过交互的物品嵌入。
但是,由于临时群组的冷启动特性,它们可能包含从未参加过任何群组活动的成员。 此外,群组-物品交互矩阵非常稀疏,通过优化 学到的用户嵌入和物品嵌入都不准确和可靠。 为了有效地克服群组-物品交互数据的局限性和稀疏性,我们提出利用充足的用户-物品交互数据。

  1. 两阶训练Two-stage Training
  • 首先优化,获得用户和物品嵌入
  • 在得到的嵌入基础上,训练 ,对嵌入值进行微调,并在优化目标 OSGV 的过程中进行更新。具体来说,我们采用 SGD 算法来优化 。 在每个梯度步骤中,我们随机抽取一个正例(gm,vj)和 M个 负例(gm,vk)来更新模型参数。
  1. 联合训练Joint Training
    为了优化上述联合目标函数,我们不能主动地使用随机梯度下降算法。因为两个目标函数有不同的训练实例,用户-物品对和群组-物品对。为了解决这个问题,一个可行的方法是把整个图中不同类型的边整合到一起,迭代计算的时候随机从中选取一条边,

然而,群组-物品交互比用户-物品交互稀疏得多,即 中的边数远小于 中的边数。 如果我们等概率地从合并的边集中抽取出一条边来执行随机梯度下降,大多数采样的正边将是用户-物品边,并且没有足够的群组-物品交互边来准确地估计个人全局社会影响、特征权重向量和SDAE中的其他参数。

为了克服数据不平衡的问题,我们在算法中提出了一种新的联合训练方法。 我们不把所有的边合并成一个大的边集,而是先按照 的概率从群组-物品图和用户-物品图中,随机地选取一条正边和 m 条负边来更新梯度。

物品负采样方法
对于一个用户-物品交互,设置噪声分布是 。 这种采样的方法并不适用于分布比较稀疏的群组-物品交互采样,按照这种采样方法对群组-物品交互采样近似于等概率采样。采样到的负例对训练提升帮助不大,因为太容易区分。为了对每个群组-物品交互选取更有复杂、更有信息的负例,提出了一种基于群组感知的负采样方法:

其中是平滑因子,给没有交互的群组设置一定的小概率。

因此,以这种方式产生的负样本将更受群体成员的欢迎,它们更有助于对群组-物品关系的学习。

使用SIGR做群组推荐
一旦我们学习到了SIGR的参数

;对于一个临时群组,首先计算群组内成员的社会影响里,然后获得群组的嵌入表示 ,计算物品嵌入和群组向量的内积得到预测值,选取评分最高的K个物品推荐给群组。

实验设计

关键的研究问题:
1) BGEM的交互建模能力
2) SIGR的群组推荐能力
3)是否可以通过社会网络结构信息能否改善群组推荐
4) 训练方法的作用
5) 超参数影响

你可能感兴趣的:(Group Recommendation)