TIL: Adapting Triplet Importance of Implicit Feedback for Personalized Recommendation

本文主要是介绍TIL: Adapting Triplet Importance of Implicit Feedback for Personalized Recommendation,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、概述

《Adapting Triplet Importance of Implicit Feedback for Personalized Recommendation》是一篇关于个性化推荐的论文。它提出了一种名为Triplet Importance Learning(TIL)的新型训练框架,通过调整构建的训练三元组的重要性来优化个性化排名的训练过程。同时,它还提供了两种策略来衡量用户、正向物品和负向物品之间的接近程度,并采用自监督聚类方法来直接学习物品的聚类中心嵌入,从而提供了合适的输入信号来生成权重。通过实验证明,TIL方法在三个真实世界的数据集上都取得了比最先进的方法更好的推荐结果。

由于隐式反馈在现实系统中的普遍性和可访问性,它经常被用来开发个性化的推荐服务。为了有效地利用这些信息,大多数研究采用了对构建的训练三元组(用户、正项、负项)进行成对排序的方法,旨在区分每个用户的正项和负项。然而,这些方法大多对所有的训练三元体一视同仁,忽略了不同的积极项目和消极项目之间的细微差别。另一方面,即使有些作品利用用户行为的辅助信息(如停留时间)来捕捉这种微妙的差异,这种辅助信息也很难获得。

为了解决上述问题,本文提出了一种新的训练框架——三元体重要性学习(TIL) ,该框架能够自适应地学习训练三元体的重要性得分。我们设计了两个重要性得分生成的策略,并将整个过程制定为一个双层优化,这不需要任何基于规则的设计。我们将建议的培训过程与几个基于矩阵分解(MF)和图形神经网络(GNN)的推荐模型相结合,展示了我们框架的兼容性。通过使用三个真实世界数据集与许多最新方法进行比较,展现出提出的方法在 Top-k 推荐的 Recall@k 方面比现有最佳模型高出3-21% 。

二、现有的方法的一些不足之处与提出本文方法

2.1 现有方法的不足之处

为了从隐式反馈中学习用户的偏好,有一项开创性的工作提出了贝叶斯个性化排名(BPR)损失函数 [33],它基于负采样构建训练三元组 〈用户,正向物品,负向物品〉,旨在区分每个用户的正向和负向物品。尽管vanilla BPR训练过程的有效性已经在各种推荐架构中得到证明 [12,33,39],但我们认为它存在一个重要的限制:它平等地对待所有构建的三元组。这忽略了现实世界隐式反馈的两个方面:

(i)用户对不同物品往往有不同的偏好水平,即使它们都被认为是正向的;

(ii)未与负向物品互动并不一定意味着用户对该物品有负面偏好,特别是对于新用户和新物品。因此,一些采样的负向物品可能是“假负面”。

因此,平等地对待所有训练三元组会导致次优的嵌入学习结果。

2.2 本文方法的提出

上述问题是关于如何在训练过程中学习到训练样本的重要性,特别是在三元组级别。现有的方法通常只关注三元组中的一个组成部分,而无法充分考虑用户、正样本和负样本之间的整体关系。为了解决这个问题,提出了一种新的训练框架称为Triplet Importance Learning (TIL)。该框架通过设计一个可学习的权重生成函数,来调整每个训练三元组的贡献。为了应对学习空间过大的挑战,权重生成函数使用一个具有隐藏层的多层感知器(MLP)进行建模。文中还提出了两种设计权重生成器输入信号的范例,分别是Uni-Interest策略和Multi-Interest策略。最后,采用双层优化策略来高效地学习框架中的所有参数。整个过程以端到端的方式进行训练,并可应用于任何推荐系统的主干架构,以学习更好的嵌入表示。

三、主要贡献

  • ·我们提出了一种新的训练范式TIL,通过调整分配给不同三元组的重要性来改进个性化排名的训练过程。我们设计了一个权重生成函数来学习三元组的重要性,避免了为单个三元组枚举不同的权重。
  • 我们开发了两种策略,Uni-Interest和Multi-Interest,用于测量构建的训练三元组中用户,积极项目和消极项目的接近度。这些策略为权重生成函数提供合适的输入。我们采用一种自监督聚类方法,以端到端的方式直接学习多兴趣策略的项目的聚类中心嵌入。
  • 在三个真实世界数据集上的实验表明,TIL显著优于最高推荐任务的最先进方法。𝑘在四个推荐主干上的广泛实验进一步证明了我们的方法与不同架构的兼容性。

四、相关工作

在推荐系统中处理隐式反馈的推荐方法包括对缺失数据加权、利用神经网络以及采用图神经网络和知识图增强模型等,以提高基于隐式用户反馈的推荐准确性。

那如何在推荐中有效地利用内隐反馈是一个重要的研究问题。

总结起来,处理隐式反馈推荐系统中的三种方法类别。

1. 负样本采样:负样本采样方法旨在更好地利用负样本,突出更具信息量的样本。通过考虑物品的流行度、预测分数等因素来选取更有可能是真正负样本的物品。这些方法可以提高模型的准确性和收敛速度。

2. 正对对重赋权:该方法通过重新赋予正用户-物品对不同的权重来学习不同数据的重要性。通过将具有较大损失值的正样本视为噪声样本,给予它们较低的权重,减少其对训练的影响。这种方法可以提高模型对重要正样本的关注度,从而提升推荐性能。

3. 使用辅助信息:除了基于用户行为的隐式反馈,一些方法利用辅助信息(如停留时间)来指导推荐系统的学习过程。这些辅助信息可以提供更多关于用户行为和兴趣的线索,帮助改进推荐算法的效果。

这些方法在处理隐式反馈推荐系统中有着不同的应用和效果,可以根据具体的场景和需求选择合适的方法来提高推荐系统的性能。

与之前的工作相比,我们提出的方法的整体差异和创新点如图1所示。与我们提出的方法最相关的现有工作是TCE/RCE [44]。TCE/RCE和我们的工作主要有以下几点区别:

(1)TCE/RCE只考虑潜在的误报正样本引入的噪声,而我们考虑了正样本和负样本在三元组级别上的重要性。

(2)[44]中每个正用户-物品对的权重函数是从该对的损失值直接映射得到的,这是不可学习的,可能会加剧错误的影响。我们的三元组权重生成器可以轻松地融合多样的信息源,如正样本和负样本与用户偏好中心的接近程度。

因此,与TCE/RCE相比,我们的方法在考虑正负样本的重要性以及引入可学习的权重函数等方面具有创新性。这些区别使得我们的方法能够更全面地捕捉用户偏好,并避免加强错误的影响。

五、方法

5.1 Triplet Importance Enhanced Ranking

总结起来,上述文本介绍了一种增强三元组重要性的排序方法,用于改进推荐模型的性能。

传统的BPR损失函数对所有训练三元组平等对待,但这可能导致模型次优。为了解决这个问题,提出了一种通过学习函数来衡量每个三元组重要性的方法。引入了重要性生成函数,为每个三元组分配一个权重,通过修改BPR损失函数来考虑重要性。

重要性生成函数由可学习参数确定,通过输入三元组的状态生成权重。在该方法中,使用了一个简单的两层多层感知机(MLP)作为权重生成器。

为了确定三元组的重要性,考虑了正样本和负样本与用户兴趣的匹配程度。如果正样本接近用户兴趣,而负样本远离兴趣,将给予该三元组更高的权重,以强调其重要性。

为了表示用户兴趣,提出了两种策略:Uni-Interest(单兴趣)和Multi-Interest(多兴趣)。

这种增强三元组重要性的排序方法可以提高推荐模型的性能,使得模型更加适应用户的偏好,从而改善推荐系统的效果。

5.1.1 Uni-Interest Strategy

总结起来,Uni-Interest策略是该方法中用于表示用户主要兴趣的一种策略。它通过对用户访问的物品嵌入进行聚合来描述用户的兴趣,选择了算术平均作为聚合函数。

通过计算正样本和负样本物品嵌入与用户兴趣的接近程度,并将这些信息融入到状态中,可以衡量三元组中的物品与用户主要兴趣的匹配程度。具体而言,使用了逐元素乘法来表示嵌入之间的关系,并使用求和操作将不同的表示方式聚合在一起。

这种策略可以帮助推荐模型更好地理解用户的兴趣,从而改进推荐系统的性能。

5.1.2  Multi-Interest Strategy

总结起来,多兴趣策略旨在解决用户具有多个主要兴趣的情况。它通过聚类算法将物品分为不同的簇,并为每个簇计算一个聚类中心的嵌入表示。然后,利用这些聚类中心和用户的主要兴趣嵌入,构建一个更细粒度的用户状态向量。该状态向量包含了与用户主要兴趣和相关簇的精细兴趣之间的关系。

通过这种方式,多兴趣策略可以更好地捕捉用户的多个兴趣,并为个性化推荐提供更准确的信号。

5.2 End-to-end Clustering

这段文本总结了在多兴趣策略中获取聚类中心嵌入的方法。传统的K-means算法不能与下游目标一起进行优化,因此采用自监督方法以端到端的方式学习聚类中心。通过将物品聚类中心嵌入视为可学习参数,使用K-means算法进行全局初始化,并使用学生t分布建模物品与聚类中心之间的相似性,得到软分配的概率。

为了优化聚类过程,引入幂因子强调离聚类中心更近的物品,定义了目标矩阵𝑻。

聚类损失通过KL散度衡量𝑻和𝑸之间的差异,最小化该损失使物品嵌入与聚类中心保持一致。

在多兴趣策略中,可以将这种端到端的聚类技术与之结合,通过聚类id将物品对应到相应的聚类中心嵌入。

5.3 The Overall Training Framework

这段文本总结了学习整个模型的挑战和限制。对于单兴趣策略和多兴趣策略,优化目标分别为Eq. (10)和Eq. (11)。然而,直接最小化这些目标函数无法生成合适的自适应权重。由于权重相关的项会导致损失减小,简单地减小生成权重的值会使所有权重变得非常小或为零。这种优化方法只适用于具有权重求和约束的情况。然而,在整个数据上使用此约束进行优化可能面临批量学习的挑战和限制。因此,需要采用其他方法来解决权重学习的问题。

5.3.1 Solving through Bilevel Optimization

这段文本介绍了使用双层优化方法来解决权重学习的问题。通过将权重生成模块的参数学习和核心推荐系统模型参数学习分开进行,可以有效地优化自适应加权的BPR损失。对于单兴趣策略和多兴趣策略,分别定义了外部优化和内部优化的目标函数。通过交替优化参数Θ和Λ,可以最小化整体的损失函数。在内部优化中,固定Λ并优化Θ,在外部优化中,固定Θ并优化Λ。这种双层优化方法可以有效地解决权重学习的挑战,并提高模型的性能。

单兴趣策略

多兴趣策略:

5.3.2 Framework Gradient Approximation

这段文本介绍了一种渐近梯度近似方法,用于加速模型的训练过程。传统的优化方法使用精确的梯度计算来更新模型参数,但这种计算可能非常昂贵。为了提高训练速度,可以使用渐近梯度近似方法,该方法通过近似计算梯度来更新模型参数。

具体地,对于给定的模型参数Θ,在内部优化的每一步中,通过计算Θ对应的损失函数的梯度,近似计算出外部优化的梯度∇ΛJouter(Θ∗(Λ))。这个近似梯度可以通过使用一个学习率𝛼乘以内部优化的梯度来得到。

然后,使用两个优化器OPTΘ和OPTΛ分别迭代更新模型参数Θ和Λ。通过使用渐近梯度近似方法,可以避免计算精确的框架梯度,从而加速模型的训练过程。

六、总结

总结起来,这项工作提出了一种名为TIL的训练范式,旨在改善个性化排序的训练过程。它通过调整不同三元组的重要性来提高推荐模型的性能。TIL采用了一种权重生成函数来学习三元组的重要性,避免了为每个三元组枚举不同的权重。根据用户的兴趣建模方式,TIL提供了两种策略:单兴趣和多兴趣,以获得适当的权重生成函数输入。为了确保学到的权重有意义,TIL采用了双层优化的形式。实验证明,TIL在三个真实数据集和四个常用的基础推荐模型上表现优异,显著超过了现有方法,并且与多种基础模型兼容。这项工作为个性化排序的训练带来了新的范式,具有实际应用的潜力。

这篇关于TIL: Adapting Triplet Importance of Implicit Feedback for Personalized Recommendation的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/800244

相关文章

实践reflex:以Personalized Sales个人销售网站为例

reflex 是一个使用纯Python构建全栈web应用的库,但是需要使用node,所以你懂的。 官网:Reflex · Web apps in Pure Python 手册:Introduction Pynecone: Pynecone 是一个全栈 Python 框架,可以使用纯 Python 构建高性能、可自定义的 Web 应用程序 - Gitee.com reflex安装:实践re

【论文】A Collaborative Transfer Learning Framework for Cross-domain Recommendation

Intro 业界常见的跨域建模方案主要分为两种范式[22][32][5][36][17][14][20]:1) 将源样本和目标样本进行联合和混合,然后执行多任务学习技术,以提高在所有域中的性能;2) 使用混合或数据丰富的源域数据预先训练模型,然后在数据不足的目标域中对其进行微调,以适应新的数据分布。在第一种方法中,通过不同类型的网络设计来学习特定域特征和域不变特征,其中域指标通常用于识别域。在微

关于Xcode6编译变更 “Implicit declaration of function 'sysctl' is invalid in C99” 报错问题

之前代码在Xcode5.1上面跑的好好的,但是自从升级到6.0之后,就经常出现编译报错问题。后来查阅的相关资料,好像是Xcode为了兼容Swift语言,更换来编译系统(名字忘记了)。于是就报了一个C语言的C99编译错误,不说了,直接上代码。 一般出现该问题是因为通过C调用了unix/linux 底层接口,所以需要调整c语言的编译选项,设置方法见下图:(根据实际情况选择相应的编译选项

推荐算法1-content based recommendation

由于本人从来没有真正意义接触过推荐算法,但是找工作时时不时被问到,所以为了避免完全答不出来的尴尬,就临时抱佛教,不求深究,只当了解。所以如果你是查找资料不小心点进来,估计你要失望了,不过文章应该都很短,所以可以随意浏览一下,于你就当温习之用,与我就当笔记之效。 推荐算法,先按照大的思想分为两类:content based recommendation,基于内容的推荐算法,简称CB算法;Col

在Mysql数据库中执行函数报错: Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE

SQLSTATE[HY000]: General error: 1267 Illegal mix of collations (utf8_general_ci,IMPLICIT) and (gb2312_chinese_ci,COERCIBLE) for operation ‘=’ 在操作MySQL数据库时,报“ error code [1267]; 在Mysql数据库中执行函数报错: Illeg

Triplet-Loss原理及其实现、应用

本文个人博客地址: 点击查看欢迎下面留言交流 一、 Triplet loss 1、介绍 Triplet loss最初是在 FaceNet: A Unified Embedding for Face Recognition and Clustering 论文中提出的,可以学到较好的人脸的embedding为什么不适用 softmax函数呢,softmax最终的类别数是确定的,而Triplet

scala implicit使用

package com.sparktest/** * 1.object的方式 * 2.import的方式 */class Man(val name: String)/** * 1.object的方式 *///object Man{// implicit def man2SuperMan(man:Man) = new SuperMan(man.name)//}cla

scala隐式转换implicit

1.隐式转换函数 隐式转换背后实现的深层机制便是隐式转换函数(implicit conversion method)。隐式转换函数的作用是在无须显式调用的情况下,自动地将一个类型转换成另一个类型。 object Test {def main(args: Array[String]): Unit = {// val x: Int = 1.55 //Error impl

RAFT:Adapting Language Model to Domain Specific RAG

论文链接 简单来说,就是你SFT微调的时候得考虑RAG的场景。 RAG什么场景?你检索top-k回来,里面有相关doc有不相关doc,后者是影响性能的重要原因,LLM需要有强大的识别能力才能分得清哪块和你的query相关。微调就是为了这个。你做领域微调时,根据chunk生成query、answer,然后直接拿这仨微调,这里面没有干扰项,没有“不相关doc”,就扛不住RAG的噪声。 RAFT就是针

[英语单词] feedback

Embedded computers and networks monitor and control the physical processes, usually with feedback loops where physical processes affect computations and vice versa. https://www2.eecs.berkeley.edu/Pubs