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

2024-02-26 02:18

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

1.【FNN】《Deep Learning over Multi-field Categorical Data: A Case Study on User Response Prediction》
作者: Weinan Zhang and Tianming Du and Jun Wang
发布时间: 2016-01
来源: arXiv:1601.02376
引用数: 367
地址: https://arxiv.org/abs/1601.02376
笔记: 本文提出使用FMs(因式分解机制)、RBMs(受限制玻尔兹曼机)、DAEs(降噪自动编码)进行特征转换,然后利用深度神经网络模型学习多类别特征交互信息,从而进行用户广告点击预测。本文介绍了两种模型:Factorisation Machine supported Neu- ral Network (FNN) 和Sampling-based Neural Network (SNN)。
FNN:如图所示,FNN的底层是FM,从上到下分别是输出层: y ^ = s i g m o i d ( W 3 l 2 + b 3 ) \hat y=sigmoid(W_3l_2+b_3) y^=sigmoid(W3l2+b3)其中 y ^ ∈ ( 0 , 1 ) \hat y \in (0,1) y^(0,1) l 2 l_2 l2是隐藏层的输出: l 2 = t a n h ( W 2 l 1 + b 2 ) l_2=tanh(W_2l_1+b_2) l2=tanh(W2l1+b2)隐藏层 l 1 l_1 l1 l 2 l_2 l2是一样的,它的输入 z z z是图中Dense Real Layer的输出: z = ( w 0 , z 1 , z 2 , . . . , z n ) z=(w_0,z_1,z_2,...,z_n) z=(w0,z1,z2,...,zn)其中 n n n表示类别field的数量, w 0 w_0 w0是全局的标量参数, z i z_i zi是第 i i i个类别field参数向量,是通过FM计算得到: z i = W 0 i ⋅ x [ s t a r t i : e n d i ] = ( w i , v i 1 , v i 2 , . . . , v i K , ) z_i=W^i_0·x[start_i:end_i]=(w_i,v_i^1,v_i^2,...,v_i^K,) zi=W0ix[starti:endi]=(wi,vi1,vi2,...,viK,)其中 s t a r t i 、 e n d i start_i、end_i startiendi是第 i i i个类别field中的特征开始和结束索引, W 0 i W_0^i W0i是通过FM训练得到的参数。
在这里插入图片描述
SNN:SNN和FNN不同的一点是底层由FM换成全连接网络: z = s i g m o i d ( W 0 x + b 0 ) z=sigmoid(W_0x+b_0) z=sigmoid(W0x+b0),如下图。
在这里插入图片描述

2.【PNN】《Product-based Neural Networks for User Response Prediction》
作者: Yanru Qu and Han Cai and Kan Ren and Weinan Zhang and Yong Yu and Ying Wen and Jun Wang
发布时间: 2016-11
来源: arXiv:1611.00144
引用数: 375
地址: https://arxiv.org/abs/1611.00144
**笔记:**PNN和FNN也大同小异,如下图。同样的,从上到下分别是输出层: y ^ = σ ( W 3 l 2 + b 3 ) \hat y=\sigma(W_3l_2+b_3) y^=σ(W3l2+b3) l 2 l_2 l2是隐藏层的输出: l 2 = r e l u ( W 2 l 1 + b 2 ) l_2=relu(W_2l_1+b_2) l2=relu(W2l1+b2)这里的隐藏层使用的是ReLU激活函数,而模型的底层使用的是张量的内积: A ⊙ B ≜ ∑ i , j A i , j B i , j A\odot B\triangleq \sum_{i,j}A_{i,j}B_{i,j} ABi,jAi,jBi,j l z 和 l p l_z和l_p lzlp的计算分别是: l z = ( l z 1 , l z 2 , . . . , l z D 1 ) , l z n = W z n ⊙ z l_z=(l_z^1,l_z^2,...,l_z^{D_1}),l_z^n=W_z^n\odot \mathbf{z} lz=(lz1,lz2,...,lzD1)lzn=Wznz l p = ( l p 1 , l p 2 , . . . , l p D 1 ) , l p n = W p n ⊙ p l_p=(l_p^1,l_p^2,...,l_p^{D_1}),l_p^n=W_p^n\odot \mathbf{p} lp=(lp1,lp2,...,lpD1)lpn=Wpnp其中 W z n 和 W p n W_z^n和W_p^n WznWpn是product layer中的权重。
在这里插入图片描述

3.【NCF】《Neural Collaborative Filtering》
作者: He, Xiangnan and Liao, Lizi and Zhang, Hanwang and Nie, Liqiang and Hu, Xia and Chua, Tat-Seng
发布时间: 2017-04
来源: International World Wide Web Conferences Steering Committee Proceedings of the 26th International Conference on World Wide Web
引用数: 1648
地址: https://doi.org/10.1145/3038912.3052569
笔记: 本文利用深度神经网络解决推荐系统中的协同过滤问题。通过深度神经网络替代张量内积,从数据中学习模型,提出使用多层感知机学习user-item交互信息。如下NCF架构图,输入层由用户 u u u和item i i i的特征向量 v u U 和 v i I \mathbf{v}_u^U和\mathbf{v}_i^I vuUviI构成,输入层的上一层是全连接层,将稀疏的特征向量映射成稠密的语义向量,再上一层则是NCF层,是一个多层神经网络。其输出是: y ^ u i = f ( P T v u U , Q T v i I ∣ P , Q , Θ f ) \hat y_{ui}=f(P^T\mathbf{v}_u^U,Q^T\mathbf{v}_i^I|P,Q,\Theta_f) y^ui=f(PTvuU,QTviIP,Q,Θf)其中 f ( P T v u U , Q T v i I ) = ϕ o u t ( ϕ X ( . . . ϕ 2 ( ϕ 1 ( P T v u U , Q T v i I ) ) . . . ) ) f(P^T\mathbf{v}_u^U,Q^T\mathbf{v}_i^I)=\phi_{out}(\phi_X(...\phi_2(\phi_1(P^T\mathbf{v}_u^U,Q^T\mathbf{v}_i^I))...)) f(PTvuU,QTviI)=ϕout(ϕX(...ϕ2(ϕ1(PTvuU,QTviI))...)) ϕ \phi ϕ表示各层的映射函数。NCF的目标函数: L = − ∑ ( u , i ∈ Y ∪ Y − ) y u i l o g y ^ u i + ( 1 − y u i ) l o g ( 1 − y ^ u i ) L=-\sum_{(u,i\in \mathcal{Y}\cup \mathcal{Y^-})}y_{ui}log\hat{y}_{ui}+(1-y_{ui})log(1-\hat y_{ui}) L=(u,iYY)yuilogy^ui+(1yui)log(1y^ui)
在这里插入图片描述

4.【DRN】《DRN: A deep reinforcement learning framework for news recommendation》
作者: Zheng, Guanjie and Zhang, Fuzheng and Zheng, Zihan and Xiang, Yang and Yuan, Nicholas Jing and Xie, Xing and Li, Zhenhui
发布时间: 2018-04
来源: Proceedings of the 2018 World Wide Web Conference
引用数: 376
地址: https://doi.org/10.1145/3178876.3185994
笔记: 本文研究之前的方法存在一些问题:1、仅仅根据当前的反馈(如点击率)进行建模;2、很少使用用户的反馈信息;3、现有方法都趋向于推荐相似的news给用户。文本提出使用基于DQN的强化学习框架进行新闻推荐,考虑了用户活跃度来提高推荐精确度。如下图为模型框架,网络训练通过离线方式利用user-news点击日志数据进行训练,线上推荐部分则如下:
PUSH:每个时间戳( t 1 , t 2 , t 3 , t 4 , t 5 , . . . t_1,t_2,t_3,t_4,t_5,... t1,t2,t3,t4,t5,...)中根据请求用户的特征和候选新闻生成一个top-K的新闻推荐列表,推荐列表的生成是通过当前模型的挖掘和novel item的探索生成的。
FEEDBACK:根据接收到推荐列表的用户的点击行为生成反馈信息
MINOR UPDATE:每个时间戳 t 1 t_1 t1,模型会根据用户、新闻列表、反馈的信息特征去比较推荐性能,并判断是否需要更新模型。
MAJOR UPDATE:一段时间之后(如 t 3 t_3 t3),模型会利用用户的反馈信息和存储的用户活跃行为信息更新网络。
整个推荐系统将不断重复上述过程。
在这里插入图片描述

5.【List-Wise】《Deep Reinforcement Learning for List-wise Recommendations》
作者: Xiangyu Zhao and L. Zhang and Zhuoye Ding and Dawei Yin and Yihong Eric Zhao and Jiliang Tang
发布时间: 2017-12
来源: arXiv:1801.00209
引用数: 103
地址: https://arxiv.org/abs/1801.00209
笔记:
在这里插入图片描述

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



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

相关文章

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

linux重启命令有哪些? 7个实用的Linux系统重启命令汇总

《linux重启命令有哪些?7个实用的Linux系统重启命令汇总》Linux系统提供了多种重启命令,常用的包括shutdown-r、reboot、init6等,不同命令适用于不同场景,本文将详细... 在管理和维护 linux 服务器时,完成系统更新、故障排查或日常维护后,重启系统往往是必不可少的步骤。本文

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

Mac系统下卸载JAVA和JDK的步骤

《Mac系统下卸载JAVA和JDK的步骤》JDK是Java语言的软件开发工具包,它提供了开发和运行Java应用程序所需的工具、库和资源,:本文主要介绍Mac系统下卸载JAVA和JDK的相关资料,需... 目录1. 卸载系统自带的 Java 版本检查当前 Java 版本通过命令卸载系统 Java2. 卸载自定