【文献阅读】 Fair Sequential Group Recommendations

说明

1.原文链接。

2.本人及翻译软件的翻译水平有限,粗读即可,精读请看原文。

标题

1.题目:公平的群组序列推荐 Fair Sequential Group Recommendations
2.作者:
【文献阅读】 Fair Sequential Group Recommendations_第1张图片

摘要

  推荐系统已经融入到我们的日常生活中,从音乐到健康推荐,推荐系统提升了用户的体验。与此同时,随着社交媒体的扩张,现在比以往任何时候都更容易形成群体。因此,团体推荐人变得更受欢迎。通常,我们认为组和推荐系统之间的交互是一个独立的过程;组向系统请求一些建议,系统回答,而不考虑过去的交互。更现实的情况是,系统需要访问历史日志,并在向一组用户推荐项目时将其考虑在内。不仅是系统以前推荐了哪些项目,而且小组成员对这些项目的接受程度也是如此。在这项工作中,我们提出了一种序列群组推荐器,该推荐器能够感知群组过去与系统的交互。我们引入了满意度的概念,它描述了推荐的项目与组中每个成员的相关性。我们在一种新的聚合方法中利用满意度,从而使我们的模型对组中的所有成员都是公平的。实验结果表明,典型的群组推荐方法不符合我们提出的方法。

关键词

  推荐系统,序列推荐,群组推荐,公平推荐。

1.介绍

  最近,推荐已经集成到用户可用的许多服务中。从听音乐到健康信息,都采用了推荐系统,使用户体验更好、更流畅。在大多数情况下,推荐系统向用户提供与他们最相关的数据项的列表。似乎有两种主要方法可以生成这样的项目列表。基于内容的方法[24]和协同过滤方法[29]。在基于内容的情况下,系统向用户推荐与用户过去已经消费过的其他项目相似的项目。这需要关于物品的事先知识,而这些知识通常很难获得。相比之下,协作过滤(CF)需要有关特定项目的用户首选项的数据。CF推荐系统背后的主要思想是:给定一个目标用户,系统找到足够多与他/她相似的用户,通常称为同龄人。然后,检查对等体已经表现出偏好的项目(主要以评级的形式,但通常使用其他形式的反馈,诸如文本评论和喜欢/不喜欢的二进制格式),并将其用作向目标用户产生相关项目列表的相关性函数的输入。协作过滤是一个非常强大的工具,它使推荐系统能够提供更加准确和专业的推荐[3]。
  随着社交媒体的扩张,出现了另一种推荐形式,即群体推荐[1,21,22]。组也可以进行查询,而不是单个用户向系统请求推荐。一个团体推荐的标准例子如下:一群朋友想看电影。每个朋友都有他/她自己的好恶。系统需要适当地平衡它们,并向小组提供与每个成员具有一定程度相关性的项目列表。近年来,对选题过程进行了一些研究。一种方法是通过梳理每个群成员的数据来创建一个伪用户,然后应用标准的推荐方法。第二种也是最常用的方法是将推荐方法单独应用于每个成员,然后将单独的列表聚合为组的一个列表。该方法的聚合阶段是针对群体推荐所做的大量研究的对象。
  在聚合阶段可以考虑许多不同的标准。其中一个标准是公平[19,30-32]。公平的一个基本定义是推荐与群体最相关的项目。本能地,产生这样一个项目的一种方法是计算所有组成员对该项目的偏好得分的平均分数。在这种情况下,小组中的所有成员都被认为是平等的。然而,这有一个很大的缺点。例如,考虑具有三个用户的组的以下场景。其中两个非常相似,而第三个不是。通过使用平均法,丢失了最后一个用户的意见。另一种方法是使用最小值函数而不是平均值。这样,具有最小偏好分数的用户将充当对组中其余成员的否决权。最不痛苦的方法,正如它所说的,也有一个缺点。它只考虑一个群体成员的意见,而忽略了其他成员的意见。随后,在大多数情况下,系统会推荐所有成员都可以接受的项目,但它将是偏好得分较低的项目。需要将平均法的平等性和最小痛苦法的包容性结合起来,这是本文工作的原动力。
  以前的计算推荐的方法有一个隐藏的元素。我们暗示,组每次使用系统的时间都不同于以前的时间,并且系统只有一个状态,没有保留历史日志。但这不是一个现实的情景。一个用户,或者在我们的例子中是一组用户,与系统交互多次。因此,系统应该在每次迭代中推荐不同的项目,同时保留过去交互的知识,以保持输出的多样性。也就是说,我们不想总是推荐相同的项目或同一组项目。我们想要一个有内存的系统,并且可以相应地调整它的建议。继续以集体电影为例,同一群朋友每周都会请求电影推荐,平均和最少痛苦方法在系统的所有迭代中都失败了。在平均的情况下,异常值用户永远不会满意,而在最不痛苦的情况下,系统会推荐与组中任何人都不高度相关的电影。
  在这项工作中,我们解决了这些方法在应用于序列组推荐时产生的不公平问题。一个简单的工作场景如下:我们有一群朋友定期见面看电影。我们每次都想为团队推荐一部新电影。图1给出了这样一个场景的实验示例。我们将5名成员组成的小组要求系统提供5次不同的建议。系统每次向集团报告10个项目。在图1-左中,我们使用平均聚合方法形成了组列表,而在图1-右中,我们使用了最少痛苦的方法。在本例中,我们计算每个成员的满意度,这是通过测量组列表的项目的相关程度来计算的,而不是每个成员的最佳项目1。在这两个场景中,用户4的满意度得分都非常低(因为最少痛苦总是0),这意味着他/她几乎对报告的项目都不感兴趣。很明显,推荐系统对他/她是不公平的,并且这种不公平在整个迭代过程中持续存在。理想情况下,每个新的小组建议都应该考虑到过去发生的事情。不仅是哪些电影已经被推荐,而且小组中的每个成员对推荐的满意程度也是如此。
【文献阅读】 Fair Sequential Group Recommendations_第2张图片
  建议的多次迭代的概念允许我们做出猜测。如果用户对特定一轮推荐不满意,则他/她要么对前一轮推荐感到满意,要么将在下一轮满意。在系统的每一次迭代之后,我们引入满意度的概念来估计每个组成员在推荐中的满意度。在群组推荐方法的聚合阶段,我们将该满意度分数作为对群组成员的个人偏好分数的加权函数。这样一来,上一轮不满意的用户将在下一轮迭代中拥有更多权重。此外,由于满意度分数的计算是在每次迭代中动态进行的,因此成员不会持续受到偏见(简单平均的情况可能就是这种情况)。最后,我们考虑了整个群体的意见(这是最不痛苦的部分)。
  我们的工作贡献有以下几点:

  • 我们引入了序列组推荐的概念。我们认为,当在典型的群体推荐方法(如平均法和最小痛苦聚集法)中加入多次迭代维度时,结果并不能保证所有群体成员的用户满意度。
  • 我们提出了满意度的概念。组中的每个成员对在每次迭代中推荐的项目都有一定程度的满意度,以及通过组的所有先前迭代获得的总体满意度。
  • 我们提出了一种序列群推荐模型,该模型考虑了群与系统的先前交互,并改变了群成员对群推荐列表形成的影响。
  • 实验表明,我们提出的模型优于标准的分组推荐方法。

  论文的其余部分结构如下:第二部分介绍了相关工作。第三节介绍了推荐系统的基本概念,第四节介绍了我们的序列组推荐方法,旨在确保所有小组成员都能得到公平的结果。第5节介绍了我们的实验设置,第6节介绍了我们的评估结果。最后,第七部分总结了本文的研究成果和下一步工作的方向。

2 相关工作

  推荐系统旨在通过利用已有的用户信息-简档、偏好等,向用户提供与他/她相关的项目。用于产生推荐的最常用的方法之一是协作过滤方法。经过十多年的研究,这个问题有很多不同的解决方案[3]。它们大多可以分为两大类:基于内存的算法和基于模型的算法。基于存储器的算法[15,28]采用包含每个用户对项目给予的评级的用户评级矩阵。他们通过应用相似度函数,利用该矩阵来找到与目标用户相似的用户。最后的预测是通过检查类似用户的评级做出的,或者他们通常称为邻居或同行。基于模型的算法[7],首先构建一个模型来表示用户的行为,并因此预测他们的评级。在这项工作中,我们利用基于记忆的协同过滤。

2.1 群组推荐

  群体推荐是另一个具有重要研究背景的领域。分组推荐主要有两种方法:虚拟用户和推荐聚合[13]。在前一种方法中,我们将每个组成员的个人资料和评分组合成一个虚拟用户,从而可以应用标准的推荐方法。在后一种方法中,我们应用一个标准推荐算法分别向每个群成员推荐,并将他们的列表聚合为一个。在这项工作中,我们遵循后一种方法,因为它更灵活[23],并在有效性方面提供了改进的机会。
  在此方法的聚合阶段,可以考虑许多标准。[36]提出了一个群体推荐模型,该模型考虑了每个成员对群体最终选择的影响。他们说,如果一个成员对推荐的项目了解得越多,他/她对小组的影响力就会越大。在我们的工作中,我们提出,如果有一个群体成员比其他成员更不满意,那么该成员在群体决策中就会有更大的影响力。[4]基于注意力网络和神经协同过滤(NCF)的最新发展,从数据中学习聚合策略,同时基于群体成员的满意度动态改变我们提出的聚合方法。虽然我们关注的是相对较小的一群朋友(在我们的实验中是5个),[25]提供了一种新的方法来为一大群人提供推荐,方法是将大群人分成不同的兴趣子组。对于每个子组,他们找到媒体-用户对的潜在候选集合,并最终聚集针对每个对的CF产生的推荐列表。[16]提出了一个两阶段的群体推荐器,与我们的工作类似,试图满足所有群体成员的需求。在第一阶段,他们试图满足整个团队,而在第二阶段,他们试图通过过滤与每个成员无关的项目来满足个别成员的需求。我们将这两个阶段合并到我们提出的聚合方法中。

2.2 群组推荐中的公平性

  在小组推荐中有许多不同的方法来实现公平。一种方法是根据博弈和投票理论计算公平性。[5]利用非合作博弈论解决了异构随机组成员之间的利益冲突[34]。[20]假设推荐系统具有关于用户评分分布的概率知识,并且利用投票理论向组推荐一个“获胜”项目。最后,[9]提出了一种新的群推荐方法,允许群成员对以下选项进行推荐这群人中的其他人。这允许每个用户获得类似于其他组成员提出的建议的新建议,并传达他们自己的反建议背后的基本原理。
  在[1]中提出了另一种在群体推荐中实现公平的方法。它引入了共识函数,与我们的工作类似,它考虑了群体的意见,因为它是由平均法给出的,并且考虑了用户之间的分歧。他们将用户的不一致定义为组成员之间的项目的成对相关性差异的平均值,或者计算组成员之间的项目的相关性分数的数学方差的方差不一致函数。[30]提出了公平的两个定义:公平、相称和无嫉妒。在前者中,如果至少有m个用户喜欢的项目,则用户u认为推荐项目列表对他/她是公平的。在后一种情况下,如果至少有用户不嫉妒的项目,你会认为这个套餐是公平的。[35]提出了公平的另一个定义。他们根据推荐项目对每个组成员的相关性为每个组成员定义效用分数。他们将公平性建模为给出群体推荐时用户效用平衡程度的接近程度。
  所有上述在实现公平性方面的工作都只考虑了小组推荐的一个实例,而没有像我们在本工作中所做的那样考虑到序列组推荐问题。

2.3 序列推荐

  序列推荐是一个相对较新的研究领域。一般说来,序列推荐器分为三类,并根据它们考虑的过去用户交互次数进行划分:基于Last-N交互的推荐、基于会话的推荐和会话感知推荐[26]。在第一种方法中,只考虑最后N个用户操作[6,17,18]。这是因为系统已经为用户记录了大量的历史数据,其中许多是重复的,没有向系统提供相关信息。基于Last-N交互的推荐通常是位置感知推荐。在基于会话的推荐中,仅使用用户与系统的最后一次交互。它们通常出现在新闻[8]和广告[12]推荐系统中。在最后一类序列推荐器-会话感知推荐中,我们既有关于用户与系统的最后一次交互的信息,也有关于用户的历史记录的信息。这些推荐器通常在电子商务或APP推荐中实现[10,14,27]。在我们的工作中,我们使用最后一种方法来逼近连续的小组推荐。上面的分类是针对单个用户推荐者进行的,据我们所知,我们的工作是第一个处理公平概念的连续分组推荐。

3 基本概念

  在本节中,我们将介绍一个简单的组推荐流程。这是一个独立的过程,没有考虑小组过去可能与系统进行的任何交互。我们使用的群体推荐方法是将单个群体成员的偏好列表聚合成一个群体偏好列表。我们将首选项列表定义为我们分别推荐给每个成员或推荐给组的列表。
  具体地说,令 U U U是用户集合, I I I为项目集合。每个用户 u i ∈ U u_i∈U uiU对项目 d z ∈ I d_z \in I dzI给予从1到5的评级表示为 r ( u i , d z ) r(u_i,d_z) r(uidz)。对项目 d z ∈ I d_z∈I dzI进行评级的用户子集由 U ( d z ) U(d_z) U(dz)表示,而由用户 U ( d z ) U_(d_z) U(dz)评级的项目子集由 I ( u i ) I(u_i) I(ui)表示。假设用户群组 G G G大小固定为 n n n G ⊆ U G\subseteq U GU已经将单个用户推荐算法应用于所有组成员,并且产生了它们的偏好列表 A u 1 , … , A u n Au_1,\dots,Au_n Au1,,Aun,下一步是将这些列表聚合成一个列表。在聚合阶段之后,每个项目将只有一个群组偏好得分,并且前 k k k个将作为最终推荐被报告回组。
  通常,使用两种公认的聚合方法[2]。我们检查的第一种聚合方法是平均法。这种方法背后的主要思想是所有成员都被认为是平等的。因此,项目的组首选项将通过对所有组成员的平均得分来确定:
a v g G ( d z , G ) = s u m u i ∈ G p ( u i , d z ) ∣ G ∣ , avgG(d_z,G) = \frac{sum_{u_i \in G}p(u_i,d_z)}{|G|}, avgG(dz,G)=GsumuiGp(ui,dz),
  其中, p ( u i , d z ) p(u_i,d_z) p(ui,dz)给出了用户 u i u_i ui的偏好分数 d z d_z dz(由标准的单用户推荐算法计算)。第二种聚合方法是最小痛苦度,在这种方法中,一个成员可以充当小组其他成员的否决权。在这种情况下,项目 d z d_z dz的组首选项得分是在所有组成员首选项列表中分配给该项目的最低得分:
m i n G ( d z , G ) = m i n u i ∈ G p ( u i , d z ) . minG(d_z,G)=min_{u_i \in G}p(u_i,d_z). minG(dz,G)=minuiGp(ui,dz).

4. 群组序列推荐

  在本节中,我们将多轮的概念引入到前面的组推荐过程中。因此,我们不会将对系统的每个组查询视为独立的过程,而是将其视为由同一组提交给系统的一系列查询。我们将系统的每个组查询称为迭代,并且每个迭代都有标准组推荐方法的主要组件:单个用户推荐,然后是聚合阶段。
  形式上,让 G R \mathcal{GR} GR是给群组 μ \mu μ次推荐产生的序列 ( G r 1 , … , G r μ ) (Gr_1,\dots,Gr_{\mu}) (Gr1,,Grμ)。我们使用 p j ( u i , d z ) p_j(u_i,d_z) pj(ui,dz)作为项目 d z d_z dz迭代 j ( 1 ≤ j ≤ μ ) j(1\leq j\leq \mu) j(1jμ)次后,用户 u i u_i ui的偏好分数。这些分数由单个用户推荐算法估计。在群推荐系统的聚合阶段之后,我们使用 g p j ( G , d z ) gp_j(G,d_z) gpj(G,dz)来表示群 G G G作为一个整体的项目 d z d_z dz的偏好得分,这是由群推荐者在迭代 j j j处估计的。
  与前一个模型不同的是,这个新模型引入了多次迭代或推荐序列的概念。我们使用这些交互来改变推荐系统的输出,这样,如果用户在前一次迭代中不满意,那么他/她在当前迭代中可能会满意。

4.1 满意度测量

  为了通过一系列迭代来检查我们的组推荐算法的有效性,我们需要定义一个度量来帮助我们将问题从独立地检查每个迭代提升到检查一系列迭代。我们引入了满意度的概念,它代表每个组成员在系统每次迭代后对推荐项目的满意度。我们定义了两种不同的满意度:单一用户满意度和群体满意度。
  4.1.1 单一用户满意度。 首先,我们想要提供每个用户 u i u_i ui G G G对在步骤 j j j接收的组推荐 G r j Gr_j Grj的满意度的正式度量。我们通过将用户作为组成员接收的推荐的质量与用户作为个体接收的推荐的质量进行比较来做到这一点。
  假设 G r j Gr_j Grj涉及项目 i j , 1 , i j , 2 , … , i j k 。 i_{j,1},i_{j,2},\dots,i_{jk}。 ij,1,ij,2,,ijk此外,设 A u i , j A_{u_i,j} Aui,j为用户 u i u_i ui t o p − k top-k topk个项目 a j , 1 , a j , 2 , … , a j , k a_{j,1},a_{j,2},\dots,a_{j,k} aj,1,aj,2,,aj,k,即对用户 u i u_i ui预测得分最高的 k k k个项目。我们的目标是直接将组推荐列表中的用户满意度与该用户的理想情况进行比较。这给了我们一个比平均方法更清晰的用户满意度视角,因为我们考虑了每个用户的前几个项目,而不仅仅是组的前几个项目。正式地:
s a t ( u i , G r i ) = G r o u p L i s t S a t ( u i , G r j ) U s e r L i s t S a t ( u i , A u i , j ) (1) sat(u_i,Gr_i)=\frac{GroupListSat(u_i,Gr_j)}{UserListSat(u_i,A_{u_i,j})} \tag{1} sat(ui,Gri)=UserListSat(ui,Aui,j)GroupListSat(ui,Grj)(1)
G r o u p L i s t S a t ( u i , G r j ) = ∑ d z ∈ G r j p j ( u i , d z ) (2) GroupListSat(u_i,Gr_j)=\sum_{d_z \in Gr_j} p_j{(u_i,d_z)} \tag{2} GroupListSat(ui,Grj)=dzGrjpj(ui,dz)(2)
U s e r L i s t S a t ( u i , A u i , j ) = ∑ d z ∈ A u i , j p j ( u i , d z ) (3) UserListSat(u_i,A_{u_i,j})=\sum_{d_z \in A_{u_i,j}} p_j{(u_i,d_z)} \tag{3} UserListSat(ui,Aui,j)=dzAui,jpj(ui,dz)(3)
  使用函数 G r o u p L i s t S a t GroupListSat GroupListSat(公式2),我们根据组推荐列表计算用户满意度。对于 G r j Gr_j Grj中的每一项,我们对出现在每个用户的 A u i , j A_{{u_i},j} Aui,j中的分数求和。函数 U s e r L i s t S a t UserListSat UserListSat(等式3)通过简单地将用户的 A u i , j A_{{u_i},j} Aui,j中的 k k k个最高的分数相加来计算用户的理想情况。这样,我们就能够标准化用户的满意度分数。例如,如果用户主要给项目打低分,则公式1能够补偿它。
  注意,在公式2和公式3中,我们不使用出现在组列表中的分数,而是使用出现在用户的个人偏好列表中的分数。由于群体推荐过程的聚合阶段相当扭曲了群体成员的个人意见,我们选择只考虑每个群体成员的个人偏好得分。
  尽管如此,等式1仍然保持不变,因为我们只计算一次迭代的用户满意度。如前所述,我们想要的是定义一个将系统以前迭代的满意度分数考虑在内的度量。这样的分数将代表每个组成员对 μ \mu μ组建议的整体满意度。
  定义4.1 (总体满意度).用户 u i u_i ui μ \mu μ次迭代序列 G R \mathcal{GR} GR的总体满意度是每次迭代后满意度得分的平均值:
s a t O ( u i , G R ) = ∑ j = 1 μ s a t ( u i , G r j ) μ (4) satO(u_i,\mathcal{GR}) = \frac{\sum_{j=1}^{\mu} sat(u_i,Gr_j)}{\mu} \tag{4} satO(ui,GR)=μj=1μsat(ui,Grj)(4)
  4.1.2 群组满意度。定义了每个组成员的满意度分数之后,我们现在就可以定义整个组的满意度分数了。具体地,群 G G G相对于群推荐列表 G r j Gr_j Grj的满意度被定义为群中用户满意度的平均值:
g r o u p S a t ( G , G r j ) = ∑ u i ∈ G s a t ( u i , G r j ) ∣ G ∣ (5) groupSat(G,Gr_j)=\frac{\sum_{u_i \in G}sat(u_i,Gr_j)}{|G|} \tag{5} groupSat(G,Grj)=GuiGsat(ui,Grj)(5)
  随后,对于 μ \mu μ次组推荐 ( G r 1 , … , G r μ ) (Gr_1,\dots,Gr_{\mu}) (Gr1,,Grμ)的推荐序列 G R \mathcal GR GR,我们定义了组 G G G的总体组满意度如下:
g r o u p S a t O ( G , G R ) = ∑ u i ∈ G s a t O ( u i , G R ) ∣ G ∣ (6) groupSatO(G,\mathcal GR)=\frac{\sum_{u_i \in G}satO(u_i,\mathcal GR)}{|G|} \tag{6} groupSatO(G,GR)=GuiGsatO(ui,GR)(6)
  这一衡量标准表明我们向小组报告的项目是否为小组成员所接受。较高的小组满意度意味着小组成员对推荐感到满意。然而,由于我们平均成员满意度得分,用户的满意度很可能会在计算中丢失。为了解决这个问题,我们还将重点放在组中用户之间的潜在分歧上。为了表示这种不一致,我们定义了 g r o u p D i s groupDis groupDis度量:
g r o u p D i s ( G , G R ) = m a x u i ∈ G s a t O ( u i , G R ) − m i n u i ∈ G s a t O ( u i , G R ) (7) groupDis(G,\mathcal GR) = max_{u_i \in G}satO(u_i,\mathcal GR)-min_{u_i \in G}satO(u_i,\mathcal GR) \tag{7} groupDis(G,GR)=maxuiGsatO(ui,GR)minuiGsatO(ui,GR)(7)
  直观地,我们将群体的不一致定义为群体中最满意的成员和最不满意的成员在总体满意度得分上的差异。理想情况下,我们希望此度量采用较低的值,因为这将表明组成员的满意度都相同。较高的 g r o u p D i s groupDis groupDis值将表明组中至少有一个成员存在偏见。

4.2 问题定义

  我们的序列组推荐系统需要实现两个独立的目标,但这两个目标对我们的模型的成功至关重要。第一个目标将集团视为一个实体:我们希望为集团提供尽可能好的结果。第二个目标是独立考虑小组成员:我们希望尽可能公平地对待所有成员。
  定义4.2(公平组序列推荐). 给定组 G G G,序列组推荐器在 μ \mu μ迭代中产生 k k k个项目 G r μ , G r μ ∈ G R Gr_{\mu},Gr_{\mu} \in \mathcal GR Grμ,GrμGR的列表,该列表:
  (1). 最大化总体组满意度, g r o u p S a t O ( G , G R ) groupSatO(G,\mathcal GR) groupSatO(G,GR)
  (2). 将用户满意度得分之间的差异降至最低: g r o u p D i s ( G , G R ) groupDis(G,\mathcal GR) groupDis(G,GR)
  为了实现第一个目标,我们的目标是最大化 g r o u p S a t O groupSatO groupSatO。这意味着我们需要整个组具有最高偏好分数的项目。由于 g r o u p S a t O groupSatO groupSatO表示的是组成员的平均满意度,而且只有一个成员的不满意很容易丢失,所以我们还需要实现第二个目标,最小化 g r o u p D i s groupDis groupDis,它代表了组成员之间的不满意程度。
  根据组成员之间的相似性,这两个目标可能会相互冲突。一个简单的例子是一个由三个成员组成的小组,两个成员彼此高度相似,一个成员与他们非常不同。要实现较高的 g r o u p S a t O groupSatO groupSatO值,我们需要推荐与两个相似用户相关的项目,以提高群体的平均满意度。另一方面,通过这样做, g r o u p D i s groupDis groupDis也将采用较高的值,因为我们没有解决第三个成员的需求。总体而言,我们需要推荐不只是对所有成员都足够好的项目-因为这仍然会返回较低的 g r o u p S a t O groupSatO groupSatO值,而是与团队高度相关的项目,而不会牺牲少数人的意见。

4.3 序列混合聚合策略

  如上所述,当我们考虑按序列推荐时,平均和最少痛苦汇总方法都有缺点。同时,两者都有优势(即,平均水平平等,最少痛苦时包含所有意见),这些都是推荐系统的资产。此外,已经证明,为一个群组以最小化最低满意度组成员和最高满意度组成员之间的差距计算最佳推荐是一个NP-hard问题[35]。这是我们希望在整个系统的多次迭代中实现的,以便对小组的所有成员都是平等的。为了规避这一问题,充分利用平均聚集方法和最小痛苦聚集方法的优点,我们提出了一种新的聚集方法,它是两者的加权组合。我们称该方法为序列混合聚集法。
s c o r e ( G , d z , j ) = ( 1 − α j ) ∗ a v g S c o r e ( G , d z , j ) + α j ∗ l e a s t S c o r e ( G , d z , j ) (8) score(G,d_z,j)= (1-\alpha_j)*avgScore(G,d_z,j) + \alpha_j*leastScore(G,d_z,j) \tag{8} score(G,dz,j)=(1αj)avgScore(G,dz,j)+αjleastScore(G,dz,j)(8)
  函数 a v g S c o r e ( G , d z , j ) avgScore(G,d_z,j) avgScore(G,dz,j)返回项目 d z d_z dz在迭代 j j j期间通过平均聚集方法计算的分数,函数 L e a s t S c o r e ( G , d z , j ) LeastScore(G,d_z,j) LeastScore(G,dz,j)返回 d z d_z dz在迭代 j j j的最不满意的用户得分。变量 α \alpha α的值从0到1。如果 α = 0 \alpha = 0 α=0,则序列混合聚集方法变为平均聚集,而当 α = 1 \alpha = 1 α=1时,它转换为修改的最不痛苦聚集,其中我们只考虑最不满意成员的偏好。
  直观地说,当 α = 0 \alpha = 0 α=0时,我们的方法满足公平序列组推荐问题(定义4.2)的第一部分,因为平均聚集考虑了组作为一个整体的最佳选项。 μ \mu μ值越高, α = 1 \alpha = 1 α=1的好处就越明显,因为在第一次迭代中,由于考虑了用户的总体满意度,组不一致可能仍然很高(公式4)。
  考虑到我们的目标是实现问题定义的两个目标,我们需要将 α \alpha α的值设置在0到1之间。此外,我们希望该值能够自我调节,以便更有效地描述小组的共识。因此,我们在每次迭代中动态设置 α \alpha α的值,方法是从最高得分中减去前一次迭代中组成员的最小满意度得分。
α j = m a x u ∈ G s a t ( u , G r j − 1 ) − m i n u ∈ G s a t ( u , G r j − 1 ) (9) \alpha_j = max_{u \in G}sat(u,Gr_{j-1}) - min_{u\in G}sat(u,Gr_{j-1}) \tag{9} αj=maxuGsat(u,Grj1)minuGsat(u,Grj1)(9)
  当 j = 1 j=1 j=1(系统的第一次迭代)时,则 α = 0 \alpha = 0 α=0,并且聚合方法恢复为经典的平均聚合方法。
  通过动态计算 α \alpha α,我们抵消了平均和最少痛苦的个体缺陷。直观地说,如果小组成员在最后一轮的满意度相同,那么 α \alpha α的值就会很低,并且聚合将紧随平均水平,在平均水平下,每个人都被平等对待。另一方面,如果某个组成员在特定迭代中非常不满意,则 α \alpha α会采用较高的值,并在下一个迭代中提升该成员的首选项。正式地:
  命题1. u u u为群组 G G G中的用户,使得 s a t ( u , G r j − 1 ) < s a t ( u i , G r j − 1 ) , ∀ u i ∈ G \ { u } . ∃ u y ∈ G \ { u } sat(u,Gr_{j-1})sat(u,Grj1)<sat(ui,Grj1),uiG\{u}.uyG\{u},使得 s a t ( u y , G r j ) < s a t ( u , G r j ) . sat(u_y,Gr_{j})sat(uy,Grj)<sat(u,Grj).
  证明. 为矛盾起见,假设 S a t ( u , G r j ) < S a t ( u y , G r j ) , ∀ u y ∈ G \ { u } Sat(u,Gr_j)Sat(u,Grj)<Sat(uy,Grj)uyG\{u}然后,这意味着 u u u在迭代 j j j处是最不满意的用户,这又意味着 α \alpha α在该迭代中采用的值不会导致最不痛苦的方法,这意味着 u u u在迭代 j − 1 j−1 j1处不是最不满意的用户,这是矛盾的。
  为了举例说明这一点,我们对同一组运行与图1相同的实验,但现在我们使用序列混合聚合方法。结果显示在图2中。在这里,我们可以观察到,在系统的前一次迭代中不满意的组成员在下一次迭代中是满意的。用户4就是一个很好的例子,在第一次迭代中满意度得分非常低,而在第二次迭代中满意度得分较高。与图1所示的结果相比,这是一个明显的改进,在图1中,用户4始终是组中满意度最低的成员。
【文献阅读】 Fair Sequential Group Recommendations_第3张图片

4.4 算法

   算法1描述了我们的序列混合群聚集方法,算法的输入是群组 G G G、迭代次数 j j j和群推荐列表 G r j Gr_j Grj的大小 k k k,我们在每次迭代完成后将其报告给群。在第1行中,我们对每个组成员应用单个用户推荐算法,并将他们的首选项列表保存到变量 A A A中。在第2行中,我们定义了一个包含成员首选项列表 G l Gl Gl中出现的所有项目的集合,在第3-5行中,我们填充了该集合。在第6-10行,我们计算 α \alpha α;如果是表示 j = 1 j=1 j=1(第7行)的第一次迭代,则 α = 0 \alpha =0 α=0,否则,我们使用公式9(第9行)来计算它。在第11-24行,我们执行序列混合聚合方法。对于 G l Gl Gl中的所有项目,我们使用公式8(第12行)计算项目分数,并将它们插入到组列表 G r j Gr_j Grj中。在检查完 G l Gl Gl中所有项目之后,我们对组列表中的项目进行排序(第15行),最后,我们将它们的前 k k k个报告给组(第16行)。由于排序函数的时间复杂度,算法的复杂度为 O ( n log ⁡ n ) O(n\log n) O(nlogn),其中 n = ∣ G l ∣ n=|Gl| n=Gl.
【文献阅读】 Fair Sequential Group Recommendations_第4张图片

5. 实验设置

   在这一部分中,我们描述了对我们的序列组推荐系统进行实验评估所需要的两个预处理任务:数据集分割和分组形成。

5.1 数据集

   为了对我们的序列组推荐系统进行实验评估,我们使用了20M MovieLens数据集[11]。它包含了27.278部电影的20.000.263个收视率。这些数据是由138.493用户在1995年1月9日至2015年3月31日之间创建的。该数据集生成于2015年3月31日。为了模拟建议的多次迭代,我们将数据集拆分成块。每个块都被添加到系统中,表示新的信息,并与系统中已有的数据一起用于定位下一次迭代的建议。
   最初,我们将数据集分为两个大小大致相同的部分。第一部分包含1994年1月至2003年12月期间给出的评级,是我们推荐人的起始数据集。这为我们提供了一个初始数据集,其中包含8.381.255个评分、73.519个用户和6.382部电影。我们使用此启动数据集启动系统,以避免因冷启动问题而产生的任何问题2。数据集的第二部分根据时间戳进一步拆分成块。我们创建了22个数据块,其中每个数据块都包含为期六个月的信息。在第一次迭代期间,系统将只能访问初始数据集。当该迭代结束时,系统将增加一个块(2004年第一学期),在随后的每一次迭代之后,系统将获得进入下一块的权限(2004年第二学期、2005年第一学期等)。
   图3显示了关于每个块内容的详细信息。在最后两栏中,我们将分别报告在特定学期中首次出现的用户数和电影数。正如我们所看到的,各学期的收视率并不是平均分配的。在2004年至2010年期间,评级的数量更高,在某些情况下,评级甚至是评级的三倍。正如预期的那样,出现在每个块中的电影数量随着时间的推移而增加,因为用户也可以对旧电影进行评分。同时,所有区块的用户数量相对相同。随着时间的推移,用户无私地给出评级,这在我们的评估中并不是一个复杂的问题,因为可用的评级总数足以满足我们的需求。
【文献阅读】 Fair Sequential Group Recommendations_第5张图片

5.2 群组形成

   我们将在稳定组上评估我们的序列组推荐。这意味着组的成员不会在迭代之间更改,并且每个建议案的所有成员都会出现。我们将根据成员之间共享的相似性来检查我们对四种类型的组的推荐器。我们的目标是覆盖具有不同语义的组,从具有相似用户的组到具有不同用户的组。我们只使用起始数据集而不是整个数据集来计算组成员之间的相似性,因为我们希望用户之间的关系从第一次迭代开始就存在。
   组成员之间的相似性是使用皮尔逊相关相似性度量[28]来计算的,该度量采用从−1到1的值。值越高意味着用户之间的相似性越高,而负值表示不相似。
s ( u i , u l ) = ∑ d z ∈ X ( r ( u i , d z ) − r ^ u i ) ( r ( u l , d z ) − r ^ u l ) ∑ d z ∈ X ( r ( u i , d z ) − r ^ u i ) 2 ∑ d z ∈ X ( r ( u l , d z ) − r ^ u l ) 2 (10) s(u_i,u_l)=\frac{\sum_{d_z \in X} (r(u_i,d_z)-\hat r_{u_i})(r(u_l,d_z)-\hat r_{u_l})}{\sqrt{\sum_{d_z \in X}(r(u_i,d_z)-\hat r_{u_i})^2} \sqrt{\sum_{d_z \in X}(r(u_l,d_z)-\hat r_{u_l})^2}} \tag{10} s(ui,ul)=dzX(r(ui,dz)r^ui)2 dzX(r(ul,dz)r^ul)2 dzX(r(ui,dz)r^ui)(r(ul,dz)r^ul)(10)
   其中 X = I ( u i ) ∩ I ( u l ) X=I(u_i)∩I(u_l) X=I(ui)I(ul) r ^ u i \hat{r}_{ui} r^ui I ( u i ) I(u_i) I(ui)中评分的平均值,即用户 u i u_i ui的评分的平均值。
   如果两个用户的相似度得分在0.5以上,我们认为他们彼此高度相似,而当他们的相似度得分在-0.5或更低时,我们认为他们不相似。我们考虑的组别如下:

  • 4相似-1不相似:组中的四个成员具有较高的相似性分数,而不相似的成员与其他组成员的相似性分数较低。
  • 3相似-2相似:我们将组分为两个子组。每个子组的成员彼此相似,但同时,子组彼此不同,即一个子组的所有成员与另一个子组的所有成员不同。
  • 3相似-1不相似:我们将组分为三个单独的子组:一个包含三个成员,两个子组每个只包含一个用户。所有的子组彼此不同,而属于同一子组的三个成员彼此相似。
  • 5不同:组中的所有成员彼此不同。

  对于每种群组类型,我们生成100个群组,每个用户在每个类别中只能参与一个群组。我们只考虑五人小组,因为这是一个现实的情况。

6 评估

  在这一部分中,我们将回顾我们的实验程序和我们在评估序列组推荐器时考虑的变量。我们给出了这个评估的结果,展示了我们的序列混合聚合方法的优势。

6.1 实验程序

  在我们的实验中,我们将检查四种类型的组的行为,每种类型考虑100个不同的组。对于集合中的每个组,我们按照算法1中的描述,对不同的 μ \mu μ值执行序列组推荐。对于集合中的所有组,我们计算 g r o u p S a t O ( G , G R ) groupSatO(G,\mathcal GR) groupSatO(G,GR) g r o u p D i s ( G , G R ) groupDis(G,GR) groupDis(G,GR)的平均值。此外,我们利用了 F − s c o r e F-score Fscore(公式11),即 g r o u p S a t O groupSatO groupSatO g r o u p D i s groupDis groupDis度量的调和平均值,它很好地指示了用户满意度和组中用户之间的协议。考虑到 F − s c o r e F-score Fscore所需的输入函数,我们使用 1 − g r o u p D i s 1−groupDis 1groupDis来模拟群体协议。
F − s c o r e = 2 g r u o p S a t O ∗ ( 1 − g r o u p ) g r u o p S a t O ∗ ( 1 + g r o u p ) (11) F-score = 2\frac{gruopSatO*(1-group)}{gruopSatO*(1+group)} \tag{11} Fscore=2gruopSatO(1+group)gruopSatO(1group)(11)
  我们利用皮尔逊相关性发现用户之间的相似性。如果两个用户的相似度大于0.7,并且他们对五个以上相同的项目进行了评级,则我们将两个用户视为相似。
  为了预测用户的偏好得分,我们使用加权的他人评分总和[33],并且我们只考虑与他/她最相似的前100名用户。我们向小组推荐10个小组偏好得分最高的项目。在我们的示例中,我们假设系统不会向其先前推荐的组推荐项目。
p ( u i , d z ) = r ^ u i + ∑ u l ∈ ( P u i ∩ U ( d z ) ) s ( u i , u l ) ( r ( u l , d z ) − r ^ u l ) ∑ u l ∈ ( P u i ∩ U ( d z ) ) ∣ s ( u i , u l ) ∣ (12) p(u_i,d_z)=\hat{r}_{u_i}+\frac{\sum_{u_l \in (P_{u_i} \cap U(d_z))} s(u_i,u_l)(r(u_l,d_z)-\hat{r}_{u_l})}{\sum_{u_l \in (P_{u_i} \cap U(d_z))}|s(u_i,u_l)|} \tag{12} p(ui,dz)=r^ui+ul(PuiU(dz))s(ui,ul)ul(PuiU(dz))s(ui,ul)(r(ul,dz)r^ul)(12)

6.2 α \alpha α实验

  为了检查序列混合聚合方法的行为,我们首先检查变量 α \alpha α(方程式9)在系统迭代期间的取值。我们通过15次迭代来检查 α \alpha α的性能。在图4中,我们报告了每种类型、每次迭代的100个组的平均 α \alpha α值。在第一次迭代中, α \alpha α采用默认值0。在下一次迭代期间, α \alpha α值将以接近线性的形式增加。这是意料之中的,因为按照设计,这些组至少有一个与组的其余成员不同的离群值成员。这保证了在系统迭代期间至少有一个成员没有得到满足。后期迭代中 α \alpha α的高值也是数据集拆分的结果。在以后的迭代中,数据集的大部分已经作为系统的输入给出了,并且从统计上讲,已经推荐了对组和对单个成员最好的项目。因为根据我们的方案,我们的系统不能推荐已经推荐的项目,所以剩下的项目对整个团队和每个成员个人来说都不太可取。

【文献阅读】 Fair Sequential Group Recommendations_第6张图片

  另外一个观察是这四种群体类型的不同行为。如前所述,这些团体的组成方式总是至少有一名成员是少数派。 α \alpha α值提供了这些类型的组对序列推荐的影响的第一印象。请记住, α \alpha α不同于组不一致(方程式7),因为它只考虑成员对系统上一次迭代的满意度。在系统的第一次迭代期间, α \alpha α的值有一些变化。这种明显的区别在后面的迭代中变得很明显,在那里我们可以观察到群体越多元化, α \alpha α的价值就越高。这是意料之中的,因为组中的意见越不一致,用户之间的分歧就越大,因此 α \alpha α的值就越高。

6.3 群组类型实验

  为了检验序列组推荐器的有效性,我们考虑了在多次迭代之后的组满意度 g r o u p S a t O groupSatO groupSatO(公式6)和用户之间的不一致 g r o u p D i s groupDis groupDis(公式7)。对于每种类型的组,我们执行不同迭代次数的实验, μ ∈ [ 5 , 10 , 15 ] \mu∈[5,10,15] μ[5,10,15]。图5、图6、图7和图8分别显示了每个组类型的100个组的组满意和组不一致得分的平均值。
【文献阅读】 Fair Sequential Group Recommendations_第7张图片
【文献阅读】 Fair Sequential Group Recommendations_第8张图片
  我们对 α \alpha α α ∈ [ 0 , 0.4 , 1 , d y n a m i c   α ] \alpha\in[0,0.4,1,dynamic \,\alpha] α[00.41dynamicα]的不同值进行了测试,并采用了纯最小痛苦方法(LM)。对于 α = 0 \alpha =0 α=0,我们有一个标准的平均聚合方法。对于 α = 1 \alpha =1 α=1,我们有一个略微改变的最小痛苦聚合方法,其中不是将单个组成员的偏好分数中的最低分数作为组偏好分数分配给项目,而是将出现在最不满意的用户的偏好列表中的分数分配给项目。我们还考虑了 α \alpha α的静态值,即0.4,在对不同的 α \alpha α值进行了大量实验后,将其选为结果最好的值。
  在考虑整体团队满意度时,我们观察到,对于所有类型的团队,满意度都下降了相同的程度。这是因为在系统的后期迭代中,已经报告了组的最佳项目,并且如上所述,我们不推荐在以前的迭代中已经推荐的项目。当比较不同α值的群体满意度时,我们观察到平均值方法略优于动态 α \alpha α方法。对于15次迭代,平均方法通过轻微的因素提供了更好的整体团队满意度,因为它试图为整个团队提供最好的结果。动态 α \alpha α也明显优于LM方法,特别是组变得越多样化。到目前为止,性能最差的是 α \alpha α=1,因为在系统的每次迭代中,我们只考虑一个用户,而没有考虑组中其余成员的意见。
  对于群体分歧,LM的结果最差,其次是平均法( α \alpha α=0),而动态 α \alpha α的结果最好。这是因为,平均法忽略了群体中的少数人意见,这反映在高的群体不一致值上。LM不适用于不同的群体,因为成员的喜好彼此差别很大。组成员的差异越大,这一点就越明显,如图8所示。在我们的评估中, α \alpha α=1的优点和缺点是显而易见的。我们可以在系统的第一次迭代中观察到高度不一致,但后来,我们有了更好的结果。这在更多样化的组中更加明显,比如图8中的组,在后面的迭代中,它实现了次佳的不一致。
  总体而言,序列群体推荐问题不是一维的。我们需要把整体的群体满意度和群体分歧结合起来考察。尽管平均法( α \alpha α=0)和静态值 α \alpha α=0.4提供的群体满意度略好于动态 α \alpha α,但它们的群体不一致值都要高得多。当我们考虑到动态 α \alpha α相对于平均和静态 α \alpha α聚集方法在群体成员之间的分歧上的优势时,我们认为这是一种可以接受的群体满意度损失。
  为了更好地演示这一点,我们还计算了 g r o u p S a t O groupSatO groupSatO g r o u p D i s groupDis groupDis值的 F − s c o r e F-score Fscore。我们在表1中给出了这些结果。对于所有组类型和所有迭代次数,使用动态 α \alpha α的方法提供了比其他方法更好的结果。这更好地说明了我们之前提出的观点。即使平均方法提供了更好的群体满意度,我们提出的动态混合序列方法也远远弥补了这一点,而且群体不一致程度要低得多。

总结

  在这项工作中,我们引入了序列组推荐的概念。结果表明,标准的组推荐方法不利于序列推荐。这种方法有一些特别的缺点–平均方法可能会丢失少数人的意见,而群体的偏好只由一个声音在最不痛苦的情况下决定–当它们应用于序列建议时,这些缺点只会加剧。我们提出了一种序列群推荐模型,该模型考虑了群成员在先前群与系统交互过程中的满意度。每个成员对确定项目的组分数的影响由该成员对系统的先前迭代中的推荐项目具有的满意程度来定义。未来,我们希望通过用户研究进一步评估我们的工作,以更好地检验我们方法的有效性以及用户对此的反应。此外,我们还想研究连续群体推荐对短暂群体的影响以及随后对个体成员的影响。也就是说,如果在每次迭代中是不同组的成员,而不牺牲临时形成的组的总体满意度,我们如何才能满足用户。

你可能感兴趣的:(文献阅读,推荐算法)