• 【论文阅读】Hypergraph Convolutional Network for Group Recommendation



    原文: https://ieeexplore.ieee.org/abstract/document/9679118

    group recommendation

    群组推荐:给一组用户推荐items。在现实生活中,人们通常会共同消费某个产品,例如与朋友一起吃饭,与家人一起看电影。群组推荐中,各个成员的兴趣点可能不一致,并且对于最终决策的影响力和贡献度也不一致,因此其比给单个用户推荐要复杂许多。

    目前的群组推荐方法:预定义策略:用户兴趣采用预定义的策略进行建模,例如average、least misery等方式。这种方式在建模时不够准确并且不能够动态调整权重。基于模型:通过捕获用户间的交互来合理的聚合信息。基于深度学习:注意力机制、社交网络等。

    这些方法存在一些缺陷:
    1)没有利用group之间的交互信息,忽略了跨组的协作信号;例如下图中,可以从user和item两个视角考虑组之间的协作信息:user层面,g1和g2有共同的u2,可以推测g1可能对i3感兴趣,因为g2选择了i3;在item层面,g1和g3都选择了i2,g1可能对i4感兴趣,因为g3选择了i4。
    在这里插入图片描述

    2)group最终的选择可能不同于组内任何一个用户的兴趣,因此上述方式不足以描述总体偏好。例如一家三口去看电影,孩子喜欢卡通片,父母喜欢喜剧片,最终一起去电影院可能会选择教育电影。

    双通道超图卷积网络

    这篇文章提出双通道超图卷积网络(HCR):一个通道为超图卷积,融合跨组用户的偏好信息,一个通道为普通图卷积,了解群组的偏好。

    符号定义

    U = { u 1 , u 2 , . . . u m } U=\left\{u_1,u_2,...u_m\right\} U={u1,u2,...um}
    I = { i 1 , i 2 , . . . i n } I=\left\{i_1,i_2,...i_n\right\} I={i1,i2,...in}
    G = { g 1 , g 2 , . . . g k } G=\left\{g_1,g_2,...g_k\right\} G={g1,g2,...gk}
    分别表示user集合、item集合、group集合。
    Y = [ y t h ] k × n Y=[y_{th}]_{k\times n} Y=[yth]k×n表示group与item的交互, R = [ r j h ] m × n R=[r_{jh}]_{m\times n} R=[rjh]m×n代表user与item的交互。
    超图 G h = ( V h , E h ) G^h=(V^h,E^h) Gh=(Vh,Eh) V h V^h Vh包含user和item两种结点, E h E_h Eh为group成员和交互过的item
    重叠图 G o = ( V o , E o ) G^o=(V^o,E^o) Go=(Vo,Eo),把超图的超边作为顶点,如果超边有重叠顶点,则连接两个超边,并将重叠比例作为边权重
    在这里插入图片描述
    如上图(a),虚线为超边,超边内包含user和组交互过的item,图(b)将超边作为顶点,e1和e2有一个顶点重叠,一共有6个顶点,因此其连接边权重为1/6

    member-level偏好网络

    主要包括两个步骤,先通过超图卷积学习user-item的高阶表示,再通过注意力机制学习组内成员的偏好:

    • 超边共享的部分能够体现组之间偏好的协作关系,通过超图卷积来学习user和item的表示。采用超图卷积学习顶点的embedding,公式如下(这里不同于HGNN,舍去了非线性化部分):
      在这里插入图片描述
      group聚合user和item的信息,再将信息从group聚合到结点,实现跨组协作信息的提取,来增强user和item的表示。
      在经过L层的卷积后,对每层的embedding进行平均得到: X ∗ = 1 / ( L + 1 ) ∑ l = 0 L X ( l ) X^*=1/(L+1)\sum_{l=0}^LX^{(l)} X=1/(L+1)l=0LX(l),并且将user和item的表示进行连接: X ∗ = [ U ∗ ; I ∗ ] X^*=[U^*;I^*] X=[U;I]

    • 为了考察成员对于组的决策的影响,本文对user的表示进行加权求和
      在这里插入图片描述
      其中系数 α ( j , h ) \alpha (j,h) α(j,h)为可学习参数,表示user在组中决策时的影响。embedding u表示user的历史偏好,而u*则包含了协作信息,将两者连接起来共同加入计算。定义 α \alpha α为:
      在这里插入图片描述
      W u , W i W_u,W_i Wu,Wi为可学习权重,学习用户表示以后,通过激活函数 R e L U ReLU ReLU再与权重 h T h^T hT相乘,转换为分数;
      再对分数进行标准化(即上面公式的第二行,相当于softmax)。
      这一步骤通过软注意力机制,结合用户历史和协作信息与项目属性和协作信息,来计算用户在群体决策中的贡献

    meber-level网络得到最终的embedding为: g t M g_t^M gtM

    group-level偏好网络

    直接聚合组内成员的偏好作为组的偏好可能会忽略group-level的固有偏好,group的偏好可能与组内成员都不一致。

    通过对重叠图进行卷积,获取组的表示,捕获组之间的高阶交互信息:
    在这里插入图片描述
    上式中, G G G为group embedding, Q Q Q为可学习权重,
    同样的,对经过 L L L层卷积得到的embedding进行平均,得到最终的embedding G ∗ = 1 / ( L + 1 ) ∑ l = 0 L G ( l ) G^*=1/(L+1) \sum_{l=0}^L G^{(l)} G=1/(L+1)l=0LG(l)

    在group-level得到embedding: g t G = G t ∗ g_t^G=G^*_t gtG=Gt

    组偏好聚合

    通过上述两个level网络得到两个embedding: g t M , g t G g_t^M, g_t^G gtM,gtG,为了合并两个隐层表示,设计了一种门控网络(参考LSTM和GRU):
    在这里插入图片描述

    预测

    对于group-item待预测对,采用以下公式进行预测:
    在这里插入图片描述
    i h i_h ih为目标item的嵌入, w w w为预测层的权重。

    优化

    采用pairwise学习框架来设计损失函数:
    在这里插入图片描述
    D G D_G DG表示group-item训练集,每个项为三元组 ( t , h , h ′ ) (t,h,h') (t,h,h),表示组 g t g_t gt i h i_h ih产生了交互,而与 i h ′ i_{h'} ih没有交互。

    由于数据的稀疏性,为进一步提升准确度,加入了user-item交互信息,同样地,对于user-item对,采用与上述group-item预测相同的参数进行预测:
    在这里插入图片描述
    最终的损失函数如下:
    在这里插入图片描述
    同样的, D U D_U DU中三元组表示,用户 u j u_j uj i h i_h ih有交互,与 i h ′ i_{h'} ih没有交互
    在这里插入图片描述

    实验

    数据集

    Mafengwo:为马蜂窝网站数据集
    CAMRa2011:用户和群组对电影的评分
    
    • 1
    • 2

    预处理:
    a. 每个群组至少有2个成员,以及至少与3个item交互过
    b. 由于两个数据集都只包含正样本,需要从缺失数据中随机抽取负样本,进行配对。

    在这里插入图片描述

    Baseline

    NCF:将组看作一个虚拟用户,同时使用用户和虚拟用户的信息进行预测
    Popularity:根据item的流行度进行推荐,流行度用交互次数来衡量
    COM:基于概率理论模拟群体活动
    UL_ALL:分级聚合
    AGR:基于注意力机制,学习用户注意力权重
    SoAGREE:社交信息增强,分层注意网络

    评价指标

    • H R @ N HR@N HR@N:每个用户top-N列表中属于测试集合的item个数,与测试集中用户实际交互item的个数,之比
      H R @ N = N u m b e r O f H i t s @ N G T HR@N=\frac{NumberOfHits@N}{GT} HR@N=GTNumberOfHits@N
      分子为命中数量,分母为总数。

    • N D C G @ N NDCG@N NDCG@NNDCG是什么,评价排序的准确性

    实验对比

    1. 组推荐任务
    在这里插入图片描述

    2. 用户推荐任务
    在这里插入图片描述
    3. HCR每个组件的重要性
    在这里插入图片描述

    HCR_M:只有member-level网络
    HCR_G:只有group-level网络
    
    • 1
    • 2

    组推荐中(table4)

    • 在组推荐中,HCR优于只有其他两种模型,说明了两个层级对于整体模型都有作用
    • 在Mafenwo数据集上,HCR_M优于HCR_G,由于该数据集平均成员数和总用户数大,且群体交互信息少,因此更适用member-level方式聚合信息
    • 在CAMRa2011数据集上,由于平均组成员数和总用户数少,成员的兴趣组合较少,且群体交互数据多,因此更实用group-level方式

    用户推荐中(table5)

    • HCR_M在Mafengwo数据集获得最佳性能,用户数量庞大,group-level建模可能会干扰用户兴趣的学习
    • 在CAMRa2011上,HCR获得最佳性能。

    4. 超参数

    • 考察卷积层数的影响:层数为3时,在两个数据集上效果较好
      在这里插入图片描述
    • 考察负采样策略(随机采样各种数量的缺失数据作为负样本)的合理性,当选择更多的负样本时,负采样的性能变得稳定,并近似于所有缺失数据的结果。根据实验结果可知,采样更多的阴性样本是有益的。通过增加负样本数,模型具有更大的优化能力。随着负样本的增加,模型性能大大提高并趋于稳定:
      在这里插入图片描述
  • 相关阅读:
    安卓截屏;前台服务
    HiveSQL中的JOIN ON条件
    python爬虫案例-爬取山东各城市近两年的天气情况(附带源码)
    Kafka关键原理
    坚固可靠的多合一轨道交通天线让您的赏秋路途不再枯燥
    【C++】泛型算法(五)泛型算法的使用与设计
    WMS仓储管理系统在电商领域的应用与影响
    C++语法——详细剖析类成员函数在内存中存储形式(包括静态)
    Jmeter(十):Jmeter+ant+jenkins实现持续集成详解
    我的 2023 年,35岁、父亲肺癌,失业,失恋、上岸
  • 原文地址:https://blog.csdn.net/qq_43955154/article/details/126142744