推荐系统论文粗读记录【一】

2024-02-26 02:18

本文主要是介绍推荐系统论文粗读记录【一】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.【FM】《Factorization Machines》
作者: Rendle, Steffen
发布时间: 2010-12
来源: 2010 IEEE International Conference on Data Mining
引用数: 2062
地址: https://doi.org/10.1109/ICDM.2010.127
笔记: FM将SVM模型的优势和因式分解模型结合。FM模型的优势:1、允许在数据稀疏的情况下参数估计。2、FM模型复杂度是线性的,3、FM模型是通用的预测模型,可以应用于任何实值向量。
FM模型被定义为: y ^ ( x ) : = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n < v i , v j > x i x j \hat y(\mathbf x):=w_0+\sum_{i=1}^{n}w_ix_i+\sum_{i=1}^{n}\sum_{j=i+1}^{n}<\mathbf v_i,\mathbf v_j>x_ix_j y^(x):=w0+i=1nwixi+i=1nj=i+1n<vi,vj>xixj其中 < v i , v j > : = ∑ f = 1 k v i , f ⋅ v j , f <\mathbf v_i,\mathbf v_j>:=\sum\limits_{f=1}^{k}v_{i,f}·v_{j,f} <vi,vj>:=f=1kvi,fvj,f k k k是定义的因子分解的维度,是一个超参数。模型的时间复杂度为 O ( k n 2 ) O(kn^2) O(kn2) 。通过数学转换变成线性复杂度 O ( k n ) O(kn) O(kn) ∑ i = 1 n ∑ j = i + 1 n < v i , v j > x i x j \sum_{i=1}^{n}\sum_{j=i+1}^{n}<\mathbf v_i,\mathbf v_j>x_ix_j\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space i=1nj=i+1n<vi,vj>xixj                                                        = 1 2 ∑ i = 1 n ∑ j = 1 n < v i , v j > x i x j − 1 2 ∑ i = 1 n < v i , v i > x i x i =\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}<\mathbf v_i,\mathbf v_j>x_ix_j-\frac{1}{2}\sum_{i=1}^{n}<\mathbf v_i,\mathbf v_i>x_ix_i\space\space\space\space\space\space\space\space =21i=1nj=1n<vi,vj>xixj21i=1n<vi,vi>xixi         = 1 2 ( ∑ i = 1 n ∑ j = 1 n ∑ f = 1 k v i , f v j , f x i x j − ∑ i = 1 n ∑ f = 1 k v i , f v i , f x i x i ) =\frac{1}{2}(\sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{f=1}^{k}v_{i,f}v_{j,f}x_ix_j-\sum_{i=1}^{n}\sum_{f=1}^{k}v_{i,f}v_{i,f}x_ix_i)\space\space\space\space\space\space\space\space\space\space\space\space =21(i=1nj=1nf=1kvi,fvj,fxixji=1nf=1kvi,fvi,fxixi)             = 1 2 ∑ f = 1 k ( ( ∑ i = 1 n v i , f x i ) ( ∑ j = 1 n v j , f x j ) − ∑ i = 1 n v i , f 2 x i 2 ) =\frac{1}{2}\sum_{f=1}^{k}((\sum_{i=1}^{n}v_{i,f}x_i)(\sum_{j=1}^{n}v_{j,f}x_j)-\sum_{i=1}^{n}v_{i,f}^2x_i^2)\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space =21f=1k((i=1nvi,fxi)(j=1nvj,fxj)i=1nvi,f2xi2)                      = 1 2 ∑ f = 1 k ( ( ∑ i = 1 n v i , f x i ) 2 − ∑ i = 1 n v i , f 2 x i 2 ) =\frac{1}{2}\sum_{f=1}^{k}((\sum_{i=1}^{n}v_{i,f}x_i)^2-\sum_{i=1}^{n}v_{i,f}^2x_i^2)\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space\space =21f=1k((i=1nvi,fxi)2i=1nvi,f2xi2)                                     

2.【FFM】《Field-aware Factorization Machines for CTR Prediction》
作者: Juan, Yuchin and Zhuang, Yong and Chin, Wei-Sheng and Lin, Chih-Jen
发布时间: 2016-09
来源: Association for Computing Machinery Proceedings of the 10th ACM Conference on Recommender Systems
引用数: 273
地址: https://doi.org/10.1145/2959100.2959134
笔记: FFM模型的想法来源于【PITF模型】,加入了Field信息,之前的FM模型每个特征只有一个语义向量,FFM模型每个特征有多个语义向量对于不同的field。 Φ F F M ( ( w , v ) , x ) = w 0 + ∑ i = 1 m x i w i + ∑ i = 1 m ∑ j = i + 1 m x i x j < v i , F ( j ) , v j , F ( i ) > \Phi_{FFM}((w,v),x)=w_0+\sum_{i=1}^{m}x_iw_i+\sum_{i=1}^{m}\sum_{j=i+1}^{m}x_ix_j<v_{i,F(j)},v_{j,F(i)}> ΦFFM((w,v),x)=w0+i=1mxiwi+i=1mj=i+1mxixj<vi,F(j),vj,F(i)>相对于FM模型就是对后面的特征交互项进行了改进。

3.【FwFM】《Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising》
作者: Pan, Junwei and Xu, Jian and Ruiz, Alfonso Lobos and Zhao, Wenliang and Pan, Shengjun and Sun, Yu and Lu, Quan
发布时间: 2018-03
来源: Proceedings of the 2018 World Wide Web Conference on World Wide Web
引用数: 114
地址: https://arxiv.org/abs/1806.03514
笔记: FwFM模型在不同的field之间构建不同的特征交互。多类别特征数据的几个挑战:1、特征交互时普遍的,需要专门建模。2、不同field的不同特征交互是不同的。3、潜在的高模型复杂度。FwFM模型: Φ F w F M s ( ( w , v ) , x ) = w 0 + ∑ i = 1 m x i w i + ∑ i = 1 m ∑ j = i + 1 m x i x j < v i , v j > r F ( i ) , F ( j ) \Phi_{FwFMs}((w,v),x)=w_0+\sum_{i=1}^{m}x_iw_i+\sum_{i=1}^{m}\sum_{j=i+1}^{m}x_ix_j<v_i,v_j>r_{F(i),F(j)} ΦFwFMs((w,v),x)=w0+i=1mxiwi+i=1mj=i+1mxixj<vi,vj>rF(i),F(j)模型参数对比:在这里插入图片描述
模型的TensorFlow实现:在这里插入图片描述

4.【FmFM】《FM2: Field-Matrixed Factorization Machines for Recommender Systems》
作者: Sun, Yang and Pan, Junwei and Zhang, Alex and Flores, Aaron
发布时间: 2021-06
来源: Association for Computing Machinery Proceedings of the Web Conference 2021
引用数: 9
地址: https://doi.org/10.1145/3442381.3449930
笔记: 数据:多领域类别数据,每个特征属于一个领域。本文提出一个新颖的,高校准确地构建领域信息模型的方法。该方法是直接在FwFM的基础上进行改进。微调了交叉项,支持指定领域类型可变维度向量输入。论文对之前的一系列FM模型进行了分析:
1、最初的线性模型缺乏对特征交互的表示。
2、改进线性模型,增加特征之间的交互项,使用二次多项式模型。模型参数太多O(m^2)
3、使用FM替换二次多项式,使用特征向量的点积表示特征之间的交互信息。FM忽略了一个特征和不同类别中的特征之间的交互具有不同的行为结果。
4、FFM(Field-aware FM)为特征向量增加field类别信息F(i)。大量的参数使得模型在实际生产中不可用。
5、FwFM(Field-weighted FM)为特征之间不同领域增加权重。
FmFM(Field-matrix FM)通过二维矩阵表示两个领域类别的交互信息,把模型进行拆分三个步骤:1、feature embedding lookup;2、特征(i)和领域类别矩阵(M)交互的Transformation。3、特征(j)和步骤2的结果进行dot-product。 Φ F m F M ( ( w , v ) , x ) = w 0 + ∑ i = 1 m x i w i + ∑ i = 1 m ∑ j = i + 1 m x i x j < v i M F ( i ) , F ( j ) , v j > \Phi_{FmFM}((w,v),x)=w_0+\sum_{i=1}^{m}x_iw_i+\sum_{i=1}^{m}\sum_{j=i+1}^{m}x_ix_j<v_iM_{F(i),F(j)},v_j> ΦFmFM((w,v),x)=w0+i=1mxiwi+i=1mj=i+1mxixj<viMF(i),F(j),vj>
在这里插入图片描述

5.【TransFM】《Translation-Based Factorization Machines for Sequential Recommendation》
作者: Pasricha, Rajiv and McAuley, Julian
发布时间: 2018-09
来源: Association for Computing Machinery Proceedings of the 12th ACM Conference on Recommender Systems
引用数: 28
地址: https://doi.org/10.1145/3240323.3240356
笔记: 通过用户历史上的一系列行为预测未来的行为,从而进行推荐。TransFM模型将转换算法和基于FM的序列推荐算法结合起来。利用translation component 替代FM特征交互的内积,并使用平方欧式距离来比较特征维数对之间的兼容性(如下图)。在这里插入图片描述
模型被定义为: y ^ ( x ⃗ ) = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n d 2 ( v ⃗ i + v ⃗ i ′ , v ⃗ j ) x i x j \hat y(\vec x)=w_0+\sum_{i=1}^{n}w_ix_i+\sum_{i=1}^{n}\sum_{j=i+1}^{n}d^2(\vec v_i+\vec v'_i,\vec v_j)x_ix_j y^(x )=w0+i=1nwixi+i=1nj=i+1nd2(v i+v i,v j)xixj其中平方欧式距离: d 2 ( a ⃗ , b ⃗ ) = ( a ⃗ − b ⃗ ) ⋅ ( a ⃗ − b ⃗ ) = ∑ f = 1 k ( a f − b f ) 2 d^2(\vec a,\vec b)=(\vec a-\vec b)·(\vec a-\vec b)=\sum\limits_{f=1}^{k}(a_f-b_f)^2 d2(a ,b )=(a b )(a b )=f=1k(afbf)2下图提供了TransFM使用的预测方法和各种基线模型的比较:
在这里插入图片描述

这篇关于推荐系统论文粗读记录【一】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

Spring Retry 实现乐观锁重试实践记录

《SpringRetry实现乐观锁重试实践记录》本文介绍了在秒杀商品SKU表中使用乐观锁和MybatisPlus配置乐观锁的方法,并分析了测试环境和生产环境的隔离级别对乐观锁的影响,通过简单验证,... 目录一、场景分析 二、简单验证 2.1、可重复读 2.2、读已提交 三、最佳实践 3.1、配置重试模板

在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题记录

《在SpringBoot中使用异步线程时的HttpServletRequest复用问题记录》文章讨论了在SpringBoot中使用异步线程时,由于HttpServletRequest复用导致... 目录一、问题描述:异步线程操作导致请求复用时 Cookie 解析失败1. 场景背景2. 问题根源二、问题详细分

Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)

《Vue项目的甘特图组件之dhtmlx-gantt使用教程和实现效果展示(推荐)》文章介绍了如何使用dhtmlx-gantt组件来实现公司的甘特图需求,并提供了一个简单的Vue组件示例,文章还分享了一... 目录一、首先 npm 安装插件二、创建一个vue组件三、业务页面内 引用自定义组件:四、dhtmlx

CSS3 最强二维布局系统之Grid 网格布局

《CSS3最强二维布局系统之Grid网格布局》CS3的Grid网格布局是目前最强的二维布局系统,可以同时对列和行进行处理,将网页划分成一个个网格,可以任意组合不同的网格,做出各种各样的布局,本文介... 深入学习 css3 目前最强大的布局系统 Grid 网格布局Grid 网格布局的基本认识Grid 网

前端 CSS 动态设置样式::class、:style 等技巧(推荐)

《前端CSS动态设置样式::class、:style等技巧(推荐)》:本文主要介绍了Vue.js中动态绑定类名和内联样式的两种方法:对象语法和数组语法,通过对象语法,可以根据条件动态切换类名或样式;通过数组语法,可以同时绑定多个类名或样式,此外,还可以结合计算属性来生成复杂的类名或样式对象,详细内容请阅读本文,希望能对你有所帮助...

Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)

《Python爬虫selenium验证之中文识别点选+图片验证码案例(最新推荐)》本文介绍了如何使用Python和Selenium结合ddddocr库实现图片验证码的识别和点击功能,感兴趣的朋友一起看... 目录1.获取图片2.目标识别3.背景坐标识别3.1 ddddocr3.2 打码平台4.坐标点击5.图

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创