群组推荐:给一组用户推荐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
主要包括两个步骤,先通过超图卷积学习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的偏好可能与组内成员都不一致。
通过对重叠图进行卷积,获取组的表示,捕获组之间的高阶交互信息:

上式中,
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:用户和群组对电影的评分
预处理:
a. 每个群组至少有2个成员,以及至少与3个item交互过
b. 由于两个数据集都只包含正样本,需要从缺失数据中随机抽取负样本,进行配对。

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@N:NDCG是什么,评价排序的准确性
1. 组推荐任务:

2. 用户推荐任务:

3. HCR每个组件的重要性:

HCR_M:只有member-level网络
HCR_G:只有group-level网络
组推荐中(table4):
用户推荐中(table5):
4. 超参数

