学习分享:推荐系统

1 目的

快速检索信息
过滤:从大量信息中筛选出有用

2 应用

推荐购买(淘宝等购物网站)
推荐页面(百度等搜索引擎)
推荐可能要去的地方(根据你所在的位置,yelp等)
推荐新闻(头条等)
推荐人(微信等社交app)

3 总览

  • 输入:用户行为,数据库中的商品信息(过滤)
  • 其他输入:外部数据(和其他合作拿到的浏览、社交信息)
  • 输出:top k的推荐物品

在线:网页
离线:邮箱
在这里插入图片描述
推荐系统 = 80%推荐 + 20%算法

主要工作:数据存储、数据响应、数据清理

4 传统推荐算法

4.1 基于内容(content-based)

定义:在历史数据中,查询用户喜欢过的相似物品

数据特点:非结构化——》特征工程

问题:特征复杂度高时,算法难以学得,延迟(达不到ms级)

4.2 协同过滤(collaborative filtering,最常用)

定义:完全基于用户行为,给用户和物品的关系打分(score)
(点击后,买1,不买0;不点击没记录)

计算相似性:
基于物品(item-based)
基于用户(user-based)

两类:
memory-based
model-based
在这里插入图片描述
矩阵分解:
在这里插入图片描述
优点(pros)
(1)易于实现
系统架构简单,响应时间短(矩阵计算简单),存储(低维向量)
(2)内容独立
不依赖用户,物品
就看score
(3)偶然推荐
对于前期系统,数据容易获取(无需考虑数据存储)

缺点(cons)
(1)数据稀疏
(2)冷启动问题
用户是全新的,没有低维的特征表示(全零向量)
这也是矩阵分解的缺点

content-based可以基于年龄等其他信息,没有这个问题

协同过滤+基于内容
(3)不考虑内容

4.3 人口统计(demographic)

根据地理位置推荐

4.4 基于知识(knowedge-based)

根据专家知识推荐

4.5 基于社团(community-based)

根据社交网络推荐

4.6 混合推荐(hybrid recommender systems)

上述方法的混合:

  • 在模型前面混合
  • 在模型后面混合(模型加权融合)

5 深度学习推荐算法

协同过滤:矩阵分解,架构简单,响应快,存储,基于score,数据易于获取
基于内容:没有冷启动问题

5.1 why深度学习

协同过滤(矩阵分解)+基于内容的优势
matrix factorization + content-based

  • 通用函数逼近器
  • 没有特征工程
  • 处理复杂非结构数据(图像、文本、视频)
  • 物品(item)和用户(user)的精确隐含表示
  • 在图像和NLP领域效果好

5.2 矩阵分解

matrix factorization

5.2.1 神经协同过滤器(neural collaborative filtering)

在这里插入图片描述
embedding:onehot encoding + 矩阵乘法 ——》Zu,Zi
如果没有CF层,直接把Zu,Zi向量内积,就是矩阵分解(线性表征)

没有考虑content-based

5.2.2 神经矩阵分解模型(neural matrix factorize model)

在这里插入图片描述
MF:线性矩阵分解——》MLP layer
MLP:非线性表征——》 MLP layer1~3
上面两个结果,用NeuMF layer 接到一起

没有考虑content-based

5.3 矩阵分解+基于内容

matrix factorization+content-based

5.3.1 wide&deep

宽深神经网络
wide deep neural network
在这里插入图片描述
wide:手工特征工程 + logistic regression(线性部分)
deep:embeding + 网络学习(非线性部分)
上面两者结合到一起预测
wide用于记忆,deep用于泛化

logistic regression:线性模型,实现很简单,响应速度快,特征记忆力强
矩阵分解+基于内容(加入了content-based)
在这里插入图片描述
cross product transformation:交叉,将one-hot结果做二阶乘法

测试结果:
在这里插入图片描述

5.4 因子分解机

5.4.1 FM(factorization machines)

在这里插入图片描述
one-hot后的特征是百亿维

5.4.2 FFM(field-aware factorization machines)

FFM是FM的改进
加入了特征交叉:Xi*Xj
在这里插入图片描述

5.4.3 deepFM(deep factorization machines)

在这里插入图片描述
深灰色:线性部分(线性相乘,求和)
黄色:两两特征交叉
浅灰色:非线性部分

测试结果:
在这里插入图片描述
wide&deep效果好,为什么还要deepFM?
原因:wide&deep需要特征工程,deepFM不需要

deepFM特点:
(1)用deep做特征工程
(2)一阶、二阶特征交叉
(自动学习特征表示,包含传统线性模型)

5.5 自编码模型(AE)

AE:autoencoder model
在这里插入图片描述
输入:X
加入随机噪音的输入:corrupted X(提升泛化能力)
黄色:输入的低维表示(可以将输入重构出来)

Autoencoder recommender System
两个变量:item-based AutoRec,user-based AutoRec
应用自编码的两个方式:颈部层用低维表示,用重构层填满空白的排序矩阵

5.6 卷积神经网络(CNN)

CNN:convolution neural network
在这里插入图片描述
非结构化数据:借助神经网络结构学习
卷积:用核做元素乘法
卷积的特点:
(1)局部连接
降低模型复杂度(reduce model complexity,只需要和卷积核连接)
平移不变性(keep translation invariant,扫描时卷积不变)
(2)适合处理图像、文本
(3)输入大小要一样
输入大小可以不同——》padding
(4)学习时间依赖的结构
dilate CNN
(5)创建块(building blocks)
卷积层
池化层
全连接层

5.6.1 深度协同神经网络(deep cooperative neural network)

在这里插入图片描述
文字描述——》word embeding(单词映射成向量)——》二维向量
user review text:二维向量连接到一起
item review text:商品描述description
紫色:沿着词方向(从左往右)卷积
四个卷积核得到四个表示

5.7 递归神经网络(RNN)

RNN:recurrent neural network
在这里插入图片描述

5.7.1 session-based

session-based recommendation with RNN
放入购物车,删除,放入购物车
user-based,content-based 失效了
预测用户行为,做出反应:是加入购物车,是直接买,还是查看耳机
在这里插入图片描述

5.8 强化学习(RL)

reinforcement learning 强化学习
agent:recommender system
reward:购买了,点击了
state:点击
action:返回推荐
enveroment:user(各种行为,点击、购买)
在这里插入图片描述
St:浏览,点击
Rt:购买了,点击了广告,点击了推荐的产品
agent:推荐系统
at:返回感兴趣的产品,促销券码promotional
env:user
St+1:点击推荐
Rt+1:点击了

使用RL的原因:用户行为是随时变化的,可能今天线上做活动,用户的行为可能跟以往完全不一样,可以实时反应

传统推荐系统,模型1个月或1周更新一次,无法实时更新

在这里插入图片描述

资料

推荐系统技术:
https://blog.csdn.net/xwd18280820053/article/details/90316416
推荐系统方法概览:
https://blog.csdn.net/xwd18280820053/article/details/76012945
基于深度学习的推荐系统:
https://www.bilibili.com/video/BV13W411Q7Xh?from=search&seid=8965178541721098930

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值