毕业设计-基于深度学习的推荐系统实战(附源码+可远程安装部署)

推荐系统介绍

什么是推荐系统?

一句话概括,推荐给你感兴趣的视频,商品等,让你入迷。

推荐系统的应用

个性化推荐,优化用户体验,海量数据中快速定位,精准营销。抖音,京东,小红书等这些例子大多数人都耳闻能详。举几个例子

  • 抖音:推荐给你喜欢的视频,你就会挪不开眼睛,一看半天就下去了,这样抖音就赚到了流量,在当前这个社会,流量就是钱。
  • 京东:当你买了一个键盘后,肯定需要鼠标,鼠标垫啥的,推荐给你,你买的概率会很大,京东也就多挣一份钱呗。

为什么需要深度学习

  • 宏观:传统人工特征工程难度较大,深度学习可以把特征做的更好
  • 本质:end2end的架构让模型训练起来更容易,项目做起来更简单!
  • 深度学习更适合NLP与图像数据,符合当下用户行为数据
  • 但凡看到深度学习,第一感觉应该是这件事做起来没那么麻烦了

协同过滤与矩阵分解

矩阵分解中的显式与隐式特征

显式特征:可以直观看到的数据
隐式特征:通过某些操作行为产生的数据

用户行为类型特征作用
评分显式整数量化的偏好,可能的取值是 [0,n];一般取值为 5 或者是 10通过用户对物品的评分,可以精确的得到用户的偏好
投票显式布尔量化的偏好,取值是 0 或 1通过用户对物品的投票,可以较精确的得到用户的偏好
转发显式布尔量化的偏好,取值是 0 或 1而过用户对物品的投票,可以精确的得到用户的偏好
保存书签显示布尔量化的偏好,取值是 0 或 1通过用户对物品的投票,可以精确的得到用户的偏好
标记标签显示一些单词,需要对单词进行分析,得到偏好通过分析用户的标签,可以得到用户对项目的理解,同时可以分析出用户的情感: 喜欢还是讨厌
评论显示一段文字,需要进行文本分析,得到偏好通过分析用户的评论,可以得到用户的情感:喜欢还是讨厌
点击流隐式一组用户的点击,用户对物品感兴趣,需要进行组分析,得到偏好用户的点击一定程度上反映了用户的注意力,所以它也可以从一定程度上反映用户的喜好.
页面停留时间隐式一组时间信息,噪音大,需要进行去噪分析,得到偏好用户的页面停留时间一定程度上反映了用户的注意力和喜好,但噪音偏大,不好利用。
购买隐式布尔量化的偏好,取值是 0 或 1用户的购买是很明确的说明这个项目它感兴趣。

基于用户的协同过滤

  • 首先找到相似用户(相似度计算)
  • 属性特征,行为特征等都可以当做计算输入
  • User1喜欢1,2,3,4;User3当前喜欢2,3
  • 如果这俩用户计算后相似度较高,就可以把1,4推给User3
    存在的问题:数据稀疏,计算复杂度,人是善变的,冷启动问题,稀疏(通常商品非常多,用户购买的只是其中极小一部分),计算(计算相似度矩阵是个大活,用户和商品都比较多的时候就难了),冷启动(新用户来了怎么办?)

基于物品的协同过滤

  • 还是要先得到用户与商品的交互数据
  • 此时发现商品1和3经常在一起出现
  • 那这俩商品之间肯定有鬼。。。(相关度)
  • User3目前只买了商品2和3,此时可以推给他商品1

## 矩阵分解

  • user-item矩阵分解
  • 得到user,item两个矩阵
  • 原矩阵:m*n(用户,音乐)
  • user(mk),item(kn)

目标函数

  • 跟回归方程很像: min ⁡ X , Y ∑ r u i ≠ 0 ( r u i − x u T y i ) 2 + λ ( ∑ u ) ∣ ∣ x u ∣ ∣ 2 2 + ∑ i ∣ ∣ y i ∣ ∣ 2 2 ) \min\limits_{X,Y}\sum\limits_{r_{ui}\neq0}(r_{ui}-x_u^Ty_i)^2+\lambda(\sum\limits_u)||x_u||_2^2+\sum\limits_i||y_i||_2^2) X,Yminrui=0(ruixuTyi)2+λ(u)∣∣xu22+i∣∣yi22)
  • 用户矩阵 X = [ x 1 , x 2 , … … , x N ] X=[x_1,x_2,……,x_N] X=[x1,x2,……,xN]: 商品矩阵: Y = [ y 1 , y 2 , … … , y M ] Y=[y_1,y_2,……,y_M] Y=[y1,y2,……yM]
  • N为用户个数,M为商品个数,还需注意隐向量维度
  • 其中还额外引入了正则化惩罚项

后续的改进

  • 如果用户就特别刁钻,评分都会很低;如果商品本身就很好,评分都较高
  • 这里还需要注意的就是用户与商品的本身属性信息,之前公式中木有涉及
  • 在原公式中 min ⁡ X , Y ∑ r u i ≠ 0 ( r u i − x u T y i ) 2 + λ ( ∑ u ) ∣ ∣ x u ∣ ∣ 2 2 + ∑ i ∣ ∣ y i ∣ ∣ 2 2 ) \min\limits_{X,Y}\sum\limits_{r_{ui}\neq0}(r_{ui}-x_u^Ty_i)^2+\lambda(\sum\limits_u)||x_u||_2^2+\sum\limits_i||y_i||_2^2) X,Yminrui=0(ruixuTyi)2+λ(u)∣∣xu22+i∣∣yi22)分别加入用户与商品偏置项
  • 例如bu表示用户偏置,bi表示商品偏置

隐式情况分析

  • 用户-商品的评分矩阵做起来非常直接,但是哪有那么正好的事啊
  • 通常收集的数据都是用户的行为:观看时间,点击次数等指标
  • 这种数据该怎么求解呢?首先定义置信度: c u i = 1 + α r u i c_{ui}=1+\alpha r_{ui} cui=1+αrui
  • 置信度默认为1,表示用户没有产生行为的商品;行为越多,置信度越大
  • 重新定义评分: p u i = { 0 r u i = 0 1 r u i > 0 p_{ui}= \lbrace_{0\quad r_{ui}=0}^{1\quad r_{ui}>0} pui={0rui=01rui>0 (有行为的则评分为1)
  • 新的优化目标: G ( x ∗ , y ∗ ) = ( ∑ u , i c u i ( p u i − x u T y i ) 2 + λ ( ∑ u ∣ ∣ x u ∣ ∣ 2 + ∑ i ∣ ∣ y i ∣ ∣ 2 ) G(x_*,y_*)=({\sum\limits_{u,i}}c_{ui}(p_{ui}-x_u^Ty_i)^2+\lambda(\sum\limits_u||x_u||^2+\sum\limits_i||y_i||^2) G(x,y)=(u,icui(puixuTyi)2+λ(u∣∣xu2+i∣∣yi2)
  • 总结起来就是置信度越大的你得预测的越准,要不损失就大了
  • 求解过程依旧交替使用最小二乘法,固定Y优化X,再固定X优化Y

Embedding的作用

无处不在的Embedding,Ai的核心其实就是让计算机能更懂我!
NLP,CV领域做得太多啦,推荐中也不例外,Embedding做好啦一切都解决了!

音乐推荐系统实战

Code:链接: https://pan.baidu.com/s/1iq5FLpPIxsRrTEec2TV_Ug 提取码: 2xk5
–来自百度网盘超级会员v3的分享

更多代码 加微信 AI_xiaoao
回复题目【基于XXXX的XXXX系统设计】免费获取源代码
所有代码均可远程部署安装+代码调试讲解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值