这个推荐模型怎么这么复杂,效果却还不错?

炼丹笔记·必读论文

作者:炼丹小生

推荐系统的核心挑战在于解决高维稀疏的user-item矩阵推荐问题,如何基于百万用户的兴趣数据为单个用户推荐最感兴趣的item是一个复杂的任务。这篇论文《GLocal-K: Global and Local Kernels for Recommender Systems》提出了一个新的框架——Global Local Kernel-based matrix completion(GLocal-K),旨在解决高维稀疏的user-item矩阵补全问题。

简介

GLocal-K框架分为两个主要阶段。首先,我们通过局部核化权重矩阵预训练一个自动编码器,该编码器利用2D RBF核将数据从原始空间转换到特征空间。随后,预训练的自动编码器通过基于卷积的全局核对评分矩阵进行微调。

GLocal-K

如下图所示,两个阶段分别使用了两种核:

预训练阶段 – 使用局部核化权重矩阵微调阶段 – 使用基于全局核的矩阵需要注意的是,在预训练阶段使用有限支持核使得密集连接更加密集,而稀疏连接更加稀疏。这篇论文关注的是矩阵补全,推断出矩阵R(m * n)中的所有评分,其中有n个用户和m个项目。i = {1, 2, …, m},每个i由向量ri = (Ri1, Ri2, …, Rin)表示。

首先,训练一个基于项目的自动编码器,模型如下公式所示:

这个推荐模型怎么这么复杂,效果却还不错?W(e)是一个hm的矩阵,W(d)是一个mh的矩阵,b和b’是偏置项,f(.)和g(.)都是非线性激活函数。

为了强调密集和稀疏连接,论文重新参数化权重矩阵,在自动编码器中使用径向基函数(RBF)核,这是已知的核技巧。

RBF定义如下,K(.)就是RBF核函数,用于计算两个集合U/V向量之间的相似度。

这个推荐模型怎么这么复杂,效果却还不错?核函数可以描述为一个核矩阵LK,如图所示,其中每个元素为1表示相同的向量,接近0表示ui和vj距离较远,然后我们就可以计算局部核化权重矩阵,如下所示:

这个推荐模型怎么这么复杂,效果却还不错?W’是两个矩阵的Hadamard乘积得到的。向量U和V之间的距离决定了神经网络中神经元的连接,随着训练向量的变化,稀疏度也是动态变化的。将核技巧应用于权重矩阵可以正则化权重矩阵并学习到泛化更强的向量表示。

最后,使用评分矩阵对预训练的自动编码器进行微调。全局核的构建和应用过程如下:

这个推荐模型怎么这么复杂,效果却还不错?如图所示,解码器已经输出了预训练模型,并且已经用预估的评分初始化了评分矩阵。通过基于项目的平均池化,总结了每个项目所有信息,得到池化结果M = {u1, u2, …, um},然后使用多个核K = {k1, k2, …, km}(mt^2的矩阵),通过内积聚合池化结果,如图所示。聚合后的GK(t t)就是全局卷积核,并将其用于user-item矩阵的特征提取,作为微调的输入。

这个推荐模型怎么这么复杂,效果却还不错?实验效果

这个推荐模型怎么这么复杂,效果却还不错?参考文献

1、GLocal-K: Global and Local Kernels for Recommender Systems

https://www.php.cn/link/cce08058c7bf76a788543e4ff059b574

以上就是这个推荐模型怎么这么复杂,效果却还不错?的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/18460.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月5日 22:21:56
下一篇 2025年12月6日 19:40:40

相关推荐

  • linux kernel是什么

    linux kernel是linux内核的意思,主要起到完成IO驱动设备管理,TCP/IP以及任务调度;linux内核是Linux操作系统的主要组件,也是计算机硬件与其进程之间的核心接口,它负责两者之间的通信,还要尽可能高效地管理资源。 本教程操作环境:linux5.9.8系统、Dell G3电脑。…

    2025年11月28日
    000
  • 高并发情况下 Linux 系统及 kernel 参数优化

    众所周知在默认参数情况下Linux对高并发支持并不好,主要受限于单进程最大打开文件数限制、内核TCP参数方面和IO事件分配机制等。下面就从几方面来调整使Linux系统能够支持高并发环境。 Iptables相关 如非必须,关掉或卸载iptables防火墙,并阻止kernel加载iptables模块。这…

    运维 2025年11月22日
    000
  • 一文讲解关于Laravel kernel实例化

    下面由laravel教程栏目给大家介绍关于laravel kernel实例化f,希望对需要的朋友有所帮助! Laravel kernel实例化 $kernel = $app->make(IlluminateContractsHttpKernel::class); 实例化 Kernel 在应用进…

    2025年11月8日
    100
  • linux 查询内核版本_linux内核版本号的构成

    大家好,很高兴再次与大家见面,我是你们的朋友全栈君。 今天我们来探讨Linux内核(Linux kernel)的简介。Linux内核版本命名在不同的时期有不同的规范,常常会引起混淆,如主线版本、稳定版和长期支持版本。本文将详细记录内核版本命名的规则,并介绍如何查看Linux系统版本信息。 Linux…

    2025年11月8日 运维
    200
  • Linux内核学习(一)之Linux内核源码目录

    大家周末好,本周给大家开始分享linux内核系列的文章,uboot的系列文章同时也更新。好了废话就不多说了,开始主题分享。 一、Linux内核版本前期知识介绍: 我们先去Linux官网看看,它的网站是:kernel.org: 我们可以看到最新稳定版本已经来到了5.6.7了,不过在这之前我们稍微了解一…

    2025年11月8日 运维
    000
  • pda手持终端软件下载_成为pda

    大家好,又见面了,我是你们的朋友全栈君。 PDAF点亮主要参考《MT6763_MT6757_PDAF_Driver_and_Buf_mgr_Porting_Guide.pdf》 1、什么是PDAF 1.1 PDAF的原理 在了解相位对焦PDAF,Phase Detection Auto Focus之…

    2025年11月6日 系统教程
    300
  • Intel OpenCAS缓存加速方案

    open cas 架构概览:数据从hdd盘读取后被复制到open cas的缓存中,后续的读取操作从内存中进行,从而提高读写效率。在write-through模式下,所有数据同步刷新到open cas的ssd和后端的hdd中。在write-back模式下,数据同步写入到open cas的ssd中,然后…

    2025年11月3日
    400
  • 基础服务系列-Jupyter Notebook 支持Java

    下载并安装ijava内核以在jupyter notebook中支持java编程。以下是详细步骤: 首先,使用wget命令下载IJava的压缩包: wget https://github.com/SpencerPark/IJava/releases/download/v1.3.0/ijava-1.3.…

    2025年11月3日
    300
  • virtualbox增强功能-VBoxGuestAdditions安装

    大家好,久违了,我是你们的老朋友全栈君。 记录小白成长之路,分享每一次的进步与收获。 1、准备virtualbox增强功能VBoxGuestAdditions.iso:安装virtualbox时默认没有提供增强功能的iso文件,请自行下载VBoxGuestAdditions.iso备用。如果无法找到…

    2025年11月1日
    100

发表回复

登录后才能评论
关注微信