什么特征进行交互才是有效的?
关注我们,一起学习~
标题:Detecting Arbitrary Order Beneficial Feature Interactions for Recommender Systems 链接:https://arxiv.org/pdf/2206.13764.pdf 代码:https://github.com/ruizhangai/HIRS_Hypergraph_Infomax_Recommender_System.git 会议:KDD 2022 学校:墨尔本大学
1. 导读
本文主要针对推荐系统中的特征交互而提出的相关方法,如果将所有可能的特征都进行交互,那消耗是很大的,本文提出HIRS用于直接生成有益特征交互。生成的特征交互的数量可以指定为远小于所有可能的交互的数量,因此模型运行时间更短。
2. 懒人阅读
本文是针对特征交互提出的相关方法,采用超图和互信息的相关概念来自动的生成有效的特征交互。以样本中的特征为节点,如果特征之间存在交互则这些特征节点之间就存在超边。
- 首先,得到样本后,以样本特征为节点,映射到相应的embedding,边集为空
- 利用节点embedding预测得到超边集合
- 利用节点和超边进行推荐系统结果的预测
- 在超边预测的过程中需要考虑一些点,比如产生的交互要是有益有效的,产生的超边矩阵需要时0,1稀疏的,那么针对这些问题,作者基于互信息进行了相应的改进。
3. 基础
3.1 超图神经网络
超图中的每条边(即超边)可以链接到任意数量的节点。超图
包含一个节点集
,其中m是节点数。每个节点i是 d 维的向量
。超边集
。每条边
是一个m维向量(
),如果第j条边节点i相连,则
。将图中的所有节点向量表示为矩阵
,边集表示为矩阵
。
超图神经网络(HGNN)首先通过聚合链接的节点向量为每个超边 j 生成表征
。然后,通过聚合连接节点的边表征更新每个节点向量。可以表示为下式,
,
为聚合函数,如逐元素的求平均等,图表征可以通过聚合节点得到
,η也是聚合函数。
3.2 Deep Infomax
给定两个随机变量 A 和 B,互信息神经估计(MINE)[2]通过训练一个判别器来估计互信息 I(A;B),判别器用于区分样本来自联合分布
还是边缘分布
. MINE 使用 KL 散度的 Donsker-Varadhan 表示作为互信息的下界,公式如下,a和b是A和B中的样本,
为分类器
可以构建类似GAN的损失函数为下式,
4. 问题定义
用
表示特征的全域。特征值对是一个名称值对,用(o,w) 表示,其中 o 是特征的名称,w 是该特征的值。例如,(Male, 1), (Female, 1)表示男性和女性的分类特征,其中
和
是两个不同的特征,值为1表示特征在数据样本中。令
为输入输出域,
为训练样本。
包含特征的数据样本,其中
隐式反馈,用户和商品是否交互
5. 方法
5.1 概览
5.1.1 超图的数据表征
本文考虑任意顺序特征交互的输入-输出对。现有的基于 GNN 的模型只能表示成对的特征交互,本文采用超图表征任意顺序的特征交互。超图是标准图的扩展,每条边(即超边)可以链接到任意数量的节点。将每个数据样本视为一个超图,每个节点都是数据样本中出现的一个特征。每个超边代表所有链接特征之间的交互。对于每个数据样本输入的特征集
,它可以表示为超图
。节点集V=x。超边集
由对预测精度最有利的 k个特征交互(待检测)组成(即,有益的特征交互)。
可以表示为超边关联矩阵
。
5.1.2 HIRS的整体结构
HIRS 包含两部分如图2所示:第一部分进行推荐预测,第二部分基于有益特征交互的 s-Infomax 和 Infomin 方法。
推荐预测部分包含两个模块:执行交互生成的超边预测模块;进行交互学习的IHGNN模块。推荐预测组件将没有超边的超图作为输入,即
。超边预测函数
利用节点信息生成 k个有益的特征交互作为边集
。然后,IHGNN利用生成的超边,在超图
上建模,输出预测分数y'。
总体可以表示为
,其中ρ是可学习参数。在训练时,包含 s-Infomax 和 Infomin 的其他组件在超边表征 (h) 和图表征(c) 上进行,并在预测的超边上进行L0正则化,以确保交互生成的有效性。
5.2 预测部分
5.2.1 超边预测
超边预测模块
生成超边
和相应的关联矩阵
。如果第i个特征在第j个特征交互中,则
,否则为 0。
首先将每个节点映射到 d 维的节点向量以进行超边预测:
,其中
将特征映射到d维embedding。然后,对于每个节点,拼接当前节点向量和超图中其他的节点向量的和。拼接的向量通过 MLP 获得k维向量
,公式如下,
最后,将
映射为0,1值,预测超边
,其中
是伯努利分布。然而,在使用梯度下降方法进行训练时,直接用二进制值表示
会导致不可微的问题。因此,采用 hard concrete distribution 替换伯努利分布,使得式子可微,公式如下,z是均匀分布,Sig为sigmoid函数,γ=-0.1,δ=1.1,τ=0.66
5.2.2 IHGNN
利用生成的矩阵 E',利用基于交互的超图神经网络(IHGNN) 来学习
。首先,将 V 中的每个节点映射到 IHGNN 的节点向量中:
。然后,使用 MLP对每个超边进行建模,公式如下,其中
为MLP。
非线性MLP建模确保 IHGNN 有效地对生成交互进行建模,通过函数
(如逐元素均值)聚合相应超边的表征来更新每个节点表征。超图表征 c 是通过聚合函数
(如逐元素均值)对更新后的节点进行聚合。使用读出函数g()将 c 映射到标量作为超图分类结果。总体可以表示如下,
5.3 s-Infomax和Infomin部分
利用L0正则化稀疏化生成的超边矩阵E'。而单独的L0正则化可能无法发掘任意顺序的交互。例如,它可能导致生成的关联矩阵仅包含一条连接到所有节点的边,而其他 k - 1 条边为空。结果,所有交互信息都聚集在一个超边中,这不是有益的特征交互。因此需要这部分进一步得到有益的交互。首先定义有益特征交互的三个属性(即有益属性)。
5.3.1 有益属性
充分性:所有有益特征交互的表征包含尽可能多的关于真实输出的输入信息。在信息论中,理想目标是下式,其中
表示互信息
低冗余:每个有益的特征交互表征应该包含尽可能少的与真实输出无关的信息。理想情况下,目标为下式,其中
是 h 以 y 为条件的熵。(熵主要衡量混乱程度)
解耦:任何两个有益特征交互的表征包含尽可能少的关于真实输出的重复信息。理想情况下,目标是下式,(即2条超边的表征的互信息越小越好)
从图中也可以看出低冗余和充分性之间是有关系的。基于上述三种属性,可以构建相应的目标函数,具体如下,
5.3.2 s-Infomax和infomin
上面的式子难以直接优化,因此作者提出了基于 Deep Infomax(DIM)[1][2]的监督互信息最大化(s-Infomax)和互信息最小化(Infomin)方法作为它的近似。s-Infomax 方法最大化每条边表征和标签表征之间的互信息,即
。** Infomin 方法最小化超图中每对边表征之间的互信息**,即
。修改后的公式为下式,
5.3.3 实现
根据deep infomax中推导的互信息的下界来构建损失函数,需要考虑联合分布的样本和边际分布的样本。即3.2中的目标函数。应用 s-Infomax 的一个困难是标签空间只有两种状态,即 0 和 1,它们是离散的并且无法提供足够的输出信息。因此,使用超图表征来表示标签空间,将两种状态扩展到一个连续的高维空间。
这里联合分布的样本对为具有相同标签的边表征
和随机采样的超图表征
。编辑分布样本对为
和从具有相反标签y的训练样本中随机采样的超图表征
。构建类似GAN的损失函数如下,D为判别器,用于区分来自联合分布还是边际分布。
在 Infomin 中,最小化超图中不同超边表征之间的互信息。联合分布样本对为
,边际分布样本对为
。为了避免 Infomin 中的判别器可能会简单地比较两个输入向量是否相同而过拟合,使用 dropout 函数
来防止每对输入向量相同。Infomin 的目标函数也是基于 GAN 的目标函数,
5.4 最终的损失函数
最终的损失函数主要包含推荐系统的预测损失,L0正则,s-Infomax,infomin损失,总体如下所示,其中
,
都是BCE损失,L0正则的计算方式为
6. 结果
参考
[1] Mohamed Ishmael Belghazi, Aristide Baratin, Sai Rajeshwar, Sherjil Ozair, Yoshua Bengio, Aaron Courville, and Devon Hjelm. 2018. Mutual Information Neural Estimation. In ICML. 531–540.
[2] R Devon Hjelm, Alex Fedorov, Samuel Lavoie-Marchildon, Karan Grewal, Phil Bachman, Adam Trischler, and Yoshua Bengio. 2019. Learning Deep Representations by Mutual Information Estimation and Maximization. In ICLR. 1–14
相关文章
- EasyCVR云端录像模块无法进行下载是什么原因?该如何解决该问题?
- 什么是SVN「建议收藏」
- 【说站】css精灵图技术是什么
- EasyNVR无法级联上级平台进行注册是什么原因?
- 2022-07-22:以下go语言代码输出什么?A:1;B:1.5;C:编译错误;D:1.49。package mainimpo
- 如何利用matlab进行聚类分析_什么是聚类分析
- 什么,你还不知道wget可以这样用?
- 什么是QoS?QoS是如何工作的?QoS的实验配置如何进行?
- 从URL输入到页面展现到底发生什么?1
- 什么是AB实验?能解决什么问题?终于有人讲明白了
- 编写Linux编程:以何种语言进行编程?(linux用什么语言)
- MySQL:一款强大的数据库管理系统(mysql有什么用)
- 使用Linux进行蓝牙开发需要注意什么?(linux下蓝牙开发)
- MySQL内连接详解,让你轻松掌握MySQL中内连接的概念及实现方法(mysql中什么是内连接)
- MySQL更新限制不允许进行哪些操作(mysql不允许什么更新)
- Oracle 哪个版本号最佳(oracle下什么版本号)
- 加速提升数据访问速度Redis缓存的福音(redis缓存针对什么)