论文|组推荐系统及其应用研究

Posted 搜索与推荐Wiki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了论文|组推荐系统及其应用研究相关的知识,希望对你有一定的参考价值。

这篇文章主要是普及一下群组推荐系统,众所周知,推荐系统已经应用十分广泛,群组推荐的应用不仅老用户上发挥了极大的作用,在新用户的冷启动上也发挥了很大的作用。

由于后续会有一篇文章介绍结合深度学习的群组推荐,所以这里先借用该篇论文,借花献佛,介绍一下群组推荐系统和其应用。

本文中所涉及的内容算是比较老了,但在不同公司或者推荐系统的不同阶段仍然有应用,其中群组推荐的思想更是经久不衰,所以本文比较适合以“温习知识”或“了解群组推荐”,至于群组推荐的更加先进和业界比较常用的做法可以持续关注公众号,后续会进行介绍。

传统推荐系统

推荐问题通常被形式化描述为一个定义在用户空间和项目空间上的效用函数,推荐系统的目的是把特定的项目推荐给用户,使效用函数最大化。

目前推荐系统的分类没有统一的标准,从不同的角度可以进行不同的划分。

  • 从推荐模型的角度:
    • 协同过滤推荐
    • 基于内容的推荐
    • 基于知识的推荐
    • 组合推荐
    • 基于人口统计学的土建
    • 基于效用的推荐
    • 基于关联规则的推荐
    • 基于网络结构的推荐
  • 从推荐系统的数据源和应用环境的角度:
    • 上下文感知推荐
    • 社会化推荐
    • 移动推荐
  • 从推荐系统技术的角度:
    • 基于规则的推荐
    • 基于机器学习的推荐
    • 基于深度学习的推荐
    • 基于强化学习的推荐
    • 基于知识图谱的推荐

群组推荐系统的形式化定义

许多日常活动中是由多个用户以群组的形式参与的,因此推荐系统需要考虑群组中每个用户的偏好来进行推荐,这种推荐系统称为群组推荐系统(Group Recommend System),它将推荐对象由单个用户扩展为一个群组,这为推荐系统带来了一些挑战。

群组成员的兴趣偏好可能很相似,也可能存在较大差异,如何获取群组成员的共同偏好,来缓解群组成员之间的偏好冲突,使推荐的结果尽可能满足所有群组成员的需求,则是群组推荐研究需要解决的关键问题。

群组推荐目前还没有统一的形式化定义,有文献基于共识分数的概念给出形式化定义:

1、群组预测评分

群组 G G G对项目 i i i的预测评分 g r o u p r a t e ( G , i ) grouprate(G,i) grouprate(G,i)由群组中每个用户预测评分 r a t e ( u , i ) rate(u,i) rate(u,i)融合得到,使用的偏好融合策略不同,群组计算的预测方法也不同,其中最常用的则是均值策略。
g r o u p r a t e ( G , i ) = 1 ∣ G ∣ ∑ u ∈ G r a t e ( u , i ) grouprate(G,i) = \\frac1|G| \\sum_u \\in G rate(u,i) grouprate(G,i)=G1uGrate(u,i)

2、群组分歧度

群组对项目度分歧度 d i s ( G , i ) dis(G,i) dis(G,i)表示群组 G G G中的用户对项目 i i i预测评分的差异程度。群组分歧度也有多种计算方法,这里给出一种最常用的方法:利用分歧方差(disagreeement variabce) 计算群组分歧度。

d i s ( G , i ) = 1 ∣ G ∣ ∑ u ∈ G ( r a t e ( u , i ) − m e a n ( G , i ) ) 2 dis(G,i) = \\frac1|G| \\sum_u \\in G ( rate(u,i) -mean(G,i) )^2 dis(G,i)=G1uG(rate(u,i)mean(G,i))2

其中 m e a n ( G , i ) mean(G,i) mean(G,i)是群组 G G G中的用户对项目 i i i预测评分的均值。

3、共识函数

共识函数 F ( G , i ) F(G,i) F(G,i)利用群组预测评分和组分歧计算得出群组 G G G对项目 i i i的共识分数。

F ( G , i ) = w 1 ∗ g r o u p r a t e ( G , i ) + w 2 ∗ ( 1 − d i s ( G , i ) ) F(G,i) = w_1 * grouprate(G,i) + w_2 * (1- dis(G,i)) F(G,i)=w1grouprate(G,i)+w2(1dis(G,i))

其中:

  • w 1 w_1 w1 表示群组预测分在共识函数中的权重
  • w 2 w_2 w2 表示群组分歧度在共识函数中的权重

组推荐的目标是对于给定的群组 G G G和项目集合 I I I,找到特定的项目 i i i使共识函数最大化。即群组预测评分最高,群组分歧度越低,就越能满足所有群组成员的偏好。

4、Top-k 组推荐

群组推荐将前 k k k个共识分数最高的项目推荐给群组,即Top-k推荐,推荐列表中的项目 i i i按照共识分数降序排序。

从上述的形式化定义看出,群组推荐系统首先通过传统的推荐算法为每个用户生成预测评分,然后根据用户预测评分得到群组预测评分。然而这并不是所有群组推荐系统通用的方法。此外,该形式化定义与传统推荐系统的形式化定义并不统一不利于组推荐问题的描述与求解。因此,群组推荐系统的形式化定义仍是一个开放问题。

虽然上述的群组推荐的形式化定义不通用,但是在具体的应用场景可以结合自己的群组预测评分群组分歧度进行使用。

群组推荐与传统推荐的异同

下表展示了群组推荐系统与传统推荐系统的比较

-传统推荐系统群组推荐系统
推荐目标单个用户群组
用户偏好获取不需要偏好共享需要偏好共享
偏好融合不需要需要
推荐结果展示独立方式共享方式
支持用户交互不需要需要

当然群组推荐也和传统的推荐系统存在一些相同之处,比如:

  • 常见的协同、基于内容、组合推荐等也会用在群组推荐中
  • 群组推荐也可以作为一路召回为单个用户推荐
  • 群组推荐可以帮助解决“用户冷启动”问题

群组推荐系统研究框架

群组推荐的生命周期分为4个阶段:

  • 收集群组成员数据
  • 获取群组成员偏好信息
  • 生成群组推荐
  • 推荐结果的评价和反馈

下面展示的是从面向过程角度提出的4层群组推荐系统研究框架:

底层的数据源包括:

  • 群组成员行为历史
  • 群组成员浏览记录
  • 群组用户-项目评分
  • 群组成员人口统计学特征
  • 项目特征
  • 上下文信息

数据预处理层则是通过分析用户和项目的源数据信息构建用户偏好模型。与传统推荐系统相比,群组推荐系统的用户偏好过程更加关注用户的负向偏好(因为,负向偏好数据更加容易获取,且在构建群组推荐候选池的时候可以过滤掉负向物品)和群组成员偏好的共享。

推荐生成层则是将群组成员偏好映射到群组偏好,通过一定的融合策略和推荐融合方法生成群组推荐过程。

群组推荐效果评价层则是采用一些评价方法对群组推荐进行评价,常见的:

  • 用户满意度
  • 准确度
  • 覆盖率
  • 多样性
  • 精细度

群组推荐的关键技术

用户偏好获取

用户行为包括:

  • 显式反馈:能明确表示用户对内容喜好等级的数据,比如评分,打星等
  • 隐式反馈:用户与物品之间产生的交互行为,没有明确的表示喜好等级

群组推荐的群组发现

目前群组发现方法主要是根据用户的偏好和人口统计学信息等特征对用户进行聚类(当然这已经不是目前的主流方法了,能对用户聚类的方式有很多,比如用户的偏好、人口统计学、使用设备、各种Embedding向量等)。

进行聚类的算法主要有:

  • 层次化聚类
  • 划分式聚类
    • KMeans聚类
    • 二分KMeans聚类
  • 基于滑窗的聚类
    • Mean-Shift 聚类
  • 基于密度的聚类
    • DBSCAN
  • 基于网格的聚类
  • 新发展的一些方法
    • 基于约束(eg:EM聚类)
    • 基于模糊
    • 基于粒度
    • 量子聚类
    • 核聚类
    • 谱聚类

群组推荐的偏好融合算法

偏好融合策略

基本融合策略

群组推荐中常用的融合策略如下:

加权模型
在进行偏好融合时,应当考虑到不同的群组成员对群组偏好的不同影响。加权模型根据群组成员的特征、角色、影响力等因素,为每个群组成员分配不同的权重,这类加权模型可分为:

  • 静态模型:根据群组成员的年龄、性别等人口统计学信息对用户进行分类 然后对不同类别赋予不同的权重,比如:一个针对00后的社区对青年和老年人分配较小的权重
  • 交互模型:根据用户与内容之间的交互行为来分配权重。比如:用户的行为越多,说明用户越活跃,则权重越大

研究表明:交互模型的推荐效果通常比静态模型要好。

一种常见的交互模型加权方法为:根据用户 u x u_x ux的角色 r o l e ( u x ) role(u_x) role(ux)和活跃度 a c t ( u x ) act(u_x) act(ux)来计算用户在群组 f a f_a fa中所占的权重可以用以下两种方式计算:

  • The role-based model
    w ( u x , f a ) = ∑ y ∈ U a c t ( u y ) ∣ r o l e ( u y ) = r o l e ( u x ) ∑ y ∈ U a c t ( u y ) w(u_x, f_a) = \\frac \\sum_y \\in U act(u_y)|role(u_y)=role(u_x) \\sum_y \\in U act(u_y) w(ux,fa)=yUact(uy)yUact(uy)role(uy)=role(ux)

r o l e ( u y ) = r o l e ( u x ) role(u_y)=role(u_x) role(uy)=role(ux)表示和用户 u x u_x ux角色相同的用户

  • The family-log model
    w ( u x , f a ) = a c t ( u x ) ∑ y ∈ U a c t ( u y ) w(u_x, f_a) = \\frac act(u_x) \\sum_y \\in U act(u_y) w(ux,fa)=yUact(uy)act(ux)

上述公式来自论文:Group-Based Recipe Recommendations: Analysis of Data
Aggregation Strategies(https://dl.acm.org/doi/10.1145/1864708.1864732)

多种策略融合

在传统的推荐系统中,组合推荐方法通过组合多种推荐算法能够提高推荐效果,同样群组推荐系统也可以通过多种融合策略来应对单一融合策略的不足。同样是上文中提到的一篇论文,介绍的一种组合策略,公式如下:
w ′ ( u x , f a ) = 1 , r a t ( u x , i t e m i ) ∉ ( r 1 , r 2 ) (

以上是关于论文|组推荐系统及其应用研究的主要内容,如果未能解决你的问题,请参考以下文章

工业界推荐系统必读论文:基于深度学习的推荐模型——DLRM

[论文解毒]优酷推荐系统实践:个性化惊喜推荐系统PURS

KDD 2020 推荐系统论文一览

推荐算法最前沿|KDD2020推荐系统论文一览

开展论文研究——推荐系统

最新最全推荐系统相关优秀研究论文整理分享