泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

作者 | 汪昊

审校 | 孙淑娟

推荐系统是目前互联网行业最火爆的技术之一。在过去的十年中,互联网行业诞生了数以百万计的推荐系统模型迭代版本。尽管针对不同场景进行优化的推荐系统模型非常之多,但是经典的模型非常少。矩阵分解是推荐系统领域勃兴早期,在 Netflix 大赛中展露头角的推荐系统算法,也是过去十年中最为成功的推荐系统算法。尽管到 2023 年的今天,推荐系统领域早已是深度学习的天下,矩阵分解仍然广泛应用于各大公司研发过程中,并且仍然有许多科研人员在从事相关算法的研究工作。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

矩阵分解算法最为经典的论文是 2007 年的 Probabilistic Matrix Factorization 。在此基础上,后人进行了大量的扩展工作,比如 2021 年的 RankMat(论文下载地址:https://arxiv.org/abs/2204.13016)、ZeroMat (论文下载地址:https://arxiv.org/abs/2112.03084) 和 2022 年的 DotMat (论文下载地址:https://arxiv.org/abs/2206.00151)、KL-Mat (论文下载地址 :https://arxiv.org/abs/2204.13583/ 代码下载地址:https://github.com/haow85/KL-Mat)等。推荐系统因为其简单易用性,以及速度快等原因,深受互联网行业广大工程师的喜爱。

推荐系统冷启动问题是今年来备受关注的另一个研究热点。许多从业者解决推荐系统的思路都是迁移学习和元学习。然而这个思路有个致命的缺点,就是需要其他知识领域的数据。而许多公司是不具备这一条件的。真正不需要任何数据的冷启动算法,是在 2021 年 ZeroMat 提出以后出现的。代表算法包括上一节提到的 ZeroMat 和 DotMat。本文将要介绍的泊松矩阵分解算法(PoissonMat)是 2022 年国际学术会议MLISE 2022发表的论文。论文的名称是PoissonMat:Remodeling Matrix Factorization using Poisson Distribution and Solving the Cold Start Problem without Input Data(论文下载地址:https://arxiv.org/abs/2212.10460)。

我们首先回顾一下Probabilistic Matrix Factorization的MAP定义:

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

我们随后定义用户给物品打分这一行为为泊松分布。根据泊松分布的定义,我们得到以下公式:

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

根据泊松公式中参数的定义,我们有:

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

根据齐夫分布,我们可以得到如下公式:

乾坤圈新媒体矩阵管家 乾坤圈新媒体矩阵管家

新媒体账号、门店矩阵智能管理系统

乾坤圈新媒体矩阵管家 17 查看详情 乾坤圈新媒体矩阵管家

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

综合以上公式,我们得到泊松矩阵分解(PoissonMat)的解析形式:

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

采用随机梯度下降算法求解以上公式,我们得到如下算法流程:

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

作者随后在 MovieLens 1 Million Dataset 和 LDOS-CoMoDa Dataset 上进行了算法准确率和公平性的实验对比:

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

图 1 泊松矩阵分解在 MovieLens 1 Million Dataset 上的对比实验

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法

图 2 泊松矩阵分解在 LDOS-CoMoDa Dataset 上的对比实验

根据实验对比效果,我们可以得出如下结论:泊松矩阵分解(PoissonMat)在准确率和公平性指标方面都优于其他算法。并且难能可贵的是,泊松矩阵分解算法没有用到任何输入数据,是一个彻头彻尾的零样本学习算法,很好的解决了冷启动问题。

最后,作者是在 16G RAM 和 Intel Core i5 的联想家用笔记本上做的实验,算法运行速度飞快,并且实现也非常简单。

以解决推荐系统冷启动问题为目标的零样本学习算法,目前是研究热点。而不需要任何数据解决零样本学习问题的真正的零样本学习算法,始自 2021 年的 ZeroMat 算法。本文介绍的泊松矩阵分解算法(PoissonMat)性能优于 ZeroMat 及其后续算法 DotMat,是目前这一领域最优秀的算法之一。由于相关研究还处于起步阶段,希望能够引起广大科技从业者的关注和重视。

作者介绍

汪昊,前 Funplus 人工智能实验室负责人,前恒昌利通大数据部负责人。本科 (2008 年)和硕士(2010年)毕业于美国犹他大学(University of Utah)。对外经贸大学在职 MBA (2016年)。在推荐系统(公平性/基于场景的推荐/冷启动/可解释性/排序学习)、计算机图形学(几何建模/可视化)、自然语言处理(工业界的落地应用)、风控反欺诈(金融/医疗)等方向有多年的经验和独到的见解。在互联网(豆瓣、百度、新浪、网易等)、金融科技(恒昌利通)和游戏公司(Funplus等)有 12 年的技术研发和管理经验。在国际学术会议和期刊发表论文 30 篇,获得国际会议最佳论文奖 / 最佳论文报告奖 3 次 (IEEE SMI 2008 Best Paper Award / ICBDT 2020 Best Oral Presentation Award / ICISCAE 2021 Best Oral Presentation Award)。2006 年 ACM/ICPC 北美落基山区域赛金牌。2004 年全国大学生英语能力竞赛口语决赛铜牌。2003 年济南市高考理工科英语状元。

以上就是泊松矩阵分解:无需数据解决推荐系统冷启动问题的矩阵分解算法的详细内容,更多请关注创想鸟其它相关文章!

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

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月10日 00:50:25
下一篇 2025年11月10日 00:51:31

相关推荐

  • 如何用HTML插入标签云组件_HTML CSS3变换与随机颜色生成算法

    使用HTML构建标签结构,CSS3添加旋转与过渡效果,JavaScript生成随机HSL颜色并设置字体大小,实现动态交互的标签云组件。 要在网页中实现一个动态的标签云组件,结合 HTML、CSS3 变换和随机颜色生成算法,可以按照以下步骤操作。这个组件不仅能提升页面视觉效果,还能通过色彩和旋转增加交…

    2025年12月23日
    000
  • 如何在Go Gin应用中集成前端JavaScript模块(如Sentry)

    本文探讨了在Go Gin框架下,通过HTML模板服务前端页面时,如何有效集成JavaScript模块(如Sentry)。针对浏览器不直接支持Node.js模块导入语法的问题,文章详细阐述了利用CDN引入Sentry SDK的解决方案,并提供了具体的代码示例,帮助开发者实现前端错误监控功能,避免了复杂…

    2025年12月23日
    000
  • HTML数据如何构建推荐系统 HTML数据推荐算法的数据基础

    HTML是推荐系统数据来源的载体,通过解析网页提取用户行为(如点击、停留)、物品特征(如标题、价格)及上下文信息(如URL路径、设备类型),经结构化处理后形成用户画像和特征矩阵,为协同过滤、内容推荐等算法提供输入,实现精准推荐。 构建推荐系统时,HTML数据本身不直接用于算法计算,但它承载了生成推荐…

    2025年12月23日
    000
  • html官网浏览入口_html网站设计免费平台

    html官网浏览入口在https://www.codepen.io,该平台支持实时预览代码、创建Pen项目、Fork开源示例,可添加外部资源,具备点赞评论收藏等社区互动功能,设有挑战活动与作品集分类,开放API接口,界面简洁适合初学者,在线编写无需配置环境,支持多种预处理器和响应式测试。 html官…

    2025年12月23日
    000
  • html如何修改日期样式

    在html中,可以使用“::-webkit-datetime-edit”伪元素选择器来修改日期格式,只需要用该选择器选中元素,在设置具体样式即可,具体语法为“::-webkit-datetime-edit{属性:属性值}”。 本教程操作环境:windows7系统、CSS3&&HTML…

    2025年12月21日
    100
  • 单选框的type属性值为什么

    单选框的type属性值为“radio”。html type属性可以规定要显示的输入框“”元素的类型;值为“radio”时显示为单选框、“checkbox”时显示为复选框、“select”时显示为下拉式选框等等。 本教程操作环境:windows7系统、HTML5版、Dell G3电脑。 在HTML中,…

    2025年12月21日
    000
  • HTML中type是什么意思

    在HTML中,type是类型的意思,是一个标签属性,主要用于定义标签元素的类型或文档(脚本)的MIME类型;例在input标签中type属性可以规定input元素的类型,在script标签中type属性可以规定脚本的MIME类型。 本教程操作环境:windows7系统、html5版、Dell G3电…

    2025年12月21日
    000
  • HTML中ul标签如何去掉点?HTML无序列表的样式实例解析

    本篇文章主要讲述的是关于html中的ul标签的默认小点给取消掉,还有关于html的无序列表ul标签的样式解释,给出了ul标签中的type属性三种值的介绍。现在就让我们一起来看本篇文章吧 首先这篇文章一开始我们就开始介绍在html中是怎么把ul标签的点给去掉的: 大家应该都使用过ul无序列表标签,ul…

    2025年12月21日 好文分享
    000
  • html中的ol标签如何去掉标号呢?标签的使用方法总结

    本篇文章介绍了html的ol标签是怎么去掉序号标号的,这里还有代码的详细解释,还有介绍了关于html ol有序列表标签如何更改序号,下文介绍了三种序号,大家也可以自己去想填写怎样的序号。现在来看这篇文章吧 一、我们先看看html中的ol标签是如何去掉标号的呢: 我们都知道html的ol标签是个有序列…

    2025年12月21日 好文分享
    000
  • HTML ul标签的什么意思?HTML ul标签的作用详解

    本篇文章主要的为大家讲解了关于html ul标签的三种重要的用法,还有关于html ul标签的解释,包含li标签的还有type属性对ul标签的使用情况,好了,下面大家一起来看文章吧 首先让我们先来解释一下HTML ul标签的意思: ul标签定义的是表格当中无序列表,表格当中的无序列表都是在 标签之中…

    2025年12月21日
    000
  • javascript框架和库是什么_如何选择React、Vue或Angular?

    JavaScript框架与库分别提供按需调用的功能集合和约束性开发结构;React是UI组件库,生态灵活但需自行整合工具;Vue渐进式易上手,兼顾原型与工程化;Angular是全功能TypeScript框架,适合强规范企业级项目。 JavaScript框架和库是封装好的代码集合,用来简化前端开发——…

    2025年12月21日
    000
  • React应用生产环境环境变量配置深度指南

    本文针对react应用在生产环境中无法读取`.env`文件配置的环境变量问题,深入剖析其工作原理、常见原因及排查方法。通过详细的步骤和示例代码,指导开发者正确配置和使用环境变量,解决api调用层面的`null`响应问题,确保应用在生产环境下的稳定运行。 在React应用开发中,环境变量(如API密钥…

    2025年12月21日
    000
  • JavaScript算法实现_javascript编程挑战

    数组去重:利用Set特性去除重复元素,return […new Set(arr)];2. 回文判断:转小写后与反转字符串比较,cleaned === cleaned.split(”).reverse().join(”);3. 快速排序:选基准值分治递归,left、…

    2025年12月21日
    000
  • JS注解怎么实现文档化_ JS注解生成开发文档的流程与工具

    JSDoc是一种JavaScript结构化注释规范,通过@param、@returns等标签描述代码元素,并借助工具生成HTML文档,结合IDE支持和CI/CD可提升团队协作效率。 JavaScript本身不支持原生注解(Annotation)像Java那样的语法,但通过约定的注释格式和配套工具,可…

    2025年12月21日
    000
  • JS注解怎么标注联合类型_ JS联合类型的注解书写与使用技巧

    在JavaScript中可通过JSDoc使用联合类型注解,如string|number表示多类型支持,结合@param、@typedef等标签提升代码可读性与编辑器提示,适用于函数参数、返回值等场景。 在JavaScript中,虽然原生不支持类型注解,但在使用JSDoc配合现代编辑器(如VS Cod…

    2025年12月21日
    000
  • VS Code主题开发:告别JSON,拥抱脚本化生成

    vs code主题扩展最终需json格式定义,但开发者可通过javascript或typescript等脚本语言生成此json文件。这种方法有效解决了大型json文件难以维护、不支持注释等问题,并能实现颜色动态计算,显著提升主题开发的灵活性与效率。 为什么选择脚本化生成VS Code主题? 在开发V…

    2025年12月20日
    000
  • 如何用Quasar框架开发一个跨平台应用?

    Quasar基于Vue.js用一套代码构建多平台应用,支持响应式网站、PWA、移动App和桌面应用。通过quasar create创建项目,利用模式(SPA、PWA、Electron等)切换目标平台,使用Quasar组件库编写通用UI,配合Pinia管理状态,最后通过不同构建命令发布到各平台,实现高…

    2025年12月20日
    000
  • 怎么利用JavaScript进行前端代码覆盖率统计?

    答案:利用JavaScript进行前端代码覆盖率统计的核心是通过Istanbul/nyc等工具对代码插桩,结合测试框架收集执行数据并生成报告。具体流程包括:在代码执行前通过Babel或Webpack插件(如babel-plugin-istanbul)插入计数器实现插桩;运行测试时记录哪些代码被执行;…

    2025年12月20日
    100
  • 如何用JavaScript实现一个支持多因子决策的推荐系统?

    设计可扩展评分模型需构建模块化权重与评分函数,如基于类型、演员、导演、年份等因素配置权重及匹配逻辑,利用对象结构实现灵活调整;通过数据索引、并行计算(Web Workers)、分页加载与缓存提升大数据处理效率;采用准确率、召回率、CTR、NDCG等指标结合A/B测试评估效果;应对冷启动可采用内容推荐…

    2025年12月20日
    000
  • js如何实现文本差异对比 4种差异比对算法快速找出文本变化内容

    js实现文本差异对比需遵循以下步骤:1.预处理文本,如清洗字符;2.选择算法如lcs、diff、levenshtein距离或基于单词的对比;3.用js实现所选算法;4.将结果以高亮或报告形式展示。lcs通过动态规划找出最长公共子序列,可优化空间与提前结束运算。diff算法识别插入、删除、替换操作,可…

    2025年12月20日 好文分享
    000

发表回复

登录后才能评论
关注微信