推荐系统

推荐系统
1、协同过滤

  • 相似度计算
    knn
    距离计算:欧几里得距离、皮尔逊相关系数、cosine相似度
    邻居选择
  • 基于用户的协同过滤
    基于用户的协同过滤要解决的问题
    基于用户的协同过滤存在的问题
    协同过滤基础解决方案
    基于用户的协同过滤为啥不流行?
  • 基于物品的协同过滤
    计算实例
    基于物品的协同过滤优势
    用户冷启动问题(新用户)
    物品冷启动问题(新物品)
  • 基于用户和基于物品的协同过滤比较

2、隐语义模型

  • 算法流程
  • 算法模型
  • 模型求解
  • 模型负样本的选择
  • 模型参数的选择
  • 协同过滤和隐语义模型的比较
  • 推荐系统评估标准

1、相似度计算:

要给用户推荐物品,一般通过分析具有相同习惯、爱好的其他用户,从而得到某个用户也喜欢的物品,这就需要用户间的相似度计算。相似度计算有以下几种方法:
(1)KNN:找出距离A最近的一些用户
根据不同用户对一些商品的评分,通过计算欧式距离,找出距离最近的其他K个用户,即为具有相同习惯、爱好的其他用户。
在这里插入图片描述
(2)距离计算:
在这里插入图片描述

皮尔逊:

(1)协方差:
在这里插入图片描述

  • 若x,y都在负值,则各自与均值的差相乘为正数,为正相关
  • 若x,y一正一负,则各自与均值的差相乘为负数,为负相关
  • 协方差的值在[-1,+1]之间,接近+1为完全正相关,否则负相关
    *中间直线为均值
    在这里插入图片描述
    (2)皮尔逊相关系数:用协方差除以两个变量的标准差得到的(消除自身分布的不规则性)

邻居选择

  • 固定数量的邻居-KNN(选择K个)
  • 基于相似度门槛的邻居(选择相似度阈值之内)
    在这里插入图片描述

2、基于用户的协同过滤

需要给用户A推荐物品,通过计算A->B、A->C的相似度,从较高相似度的用户所购买的物品推荐给用户A
相似度的计算:
A、B、C对所买的物品评分,有各自的评分向量,通过对向量距离的计算得到相似度大小
在这里插入图片描述

基于用户的协同过滤要解决的问题
  • 已知用户评分矩阵Matrix R(一般都是非常稀疏的)
  • 推断矩阵中空格empty cells处的值
基于用户的协同过滤存在的问题
  • 对于一个新用户,很难找到邻居用户
  • 对于一个物品,所有最近的邻居都在其上没有多少打分,但恰巧此用户需要这件物品,此物品就无法推荐给合适的用户
协同过滤基础解决方案
  • 相似度计算最好使用皮尔逊相似度
  • 考虑共同打分物品的数目,如乘上min(n,N)/N n:共同打分数(A、B都对n个商品评过分) N:指定阈值
  • 对打分进行归一化处理
  • 设置一个相似度阈值(对于阈值之内的用户都是相似用户)
基于用户的协同过滤为啥不流行?
  • 稀疏问题(若某电商拥有100万件商品,但大多用户只购买了十几件商品,这样的评分矩阵是非常稀疏的)
  • 数百万的用户计算(若某电商拥有1000万用户,两两计算相似度,计算量很大)
  • 人的喜好易发生变化

3、基于物品的协同过滤

基于物品的协同过滤优势
  • 计算性能高,通常用户数量远大于物品数量,且只需要计算同类物品的相似度
  • 可预先计算物品间的相似度(离线操作),再在线上进行推荐(性能较高)
  • 物品并不善变
实例:

已有多个用户对6个电影的评分记录,现要判断是否给用户5推荐电影1,设置推荐阈值为3.5

  • 基于物品的协同过滤计算:
    计算电影1与其他电影的相似度,选择较大值的相似度电影,并以相似度0.41和0.59作为权值,预测出用户5对电影1的评分值2.6,
    预测出的分数为2.6小于阈值3.5,则不进行推荐

在这里插入图片描述

用户冷启动问题(新用户)
  • 引导用户把自己的一些属性(喜好)表达出来
  • 利用现有的开放数据平台
  • 根据用户注册属性
  • 推荐排行榜单(大众心理)
物品冷启动问题(新物品)
  • 文本分析
  • 主题模型
  • 打标签
  • 推荐排行榜单

4、基于用户和基于物品的协同过滤比较

在这里插入图片描述

基于用户的推荐
  • 实时新闻
  • 突然情况
  • 。。。
基于物品的推荐
  • 图书
  • 电子商务
  • 电影
  • 。。。

5、隐语义模型

我们要给用户推荐物品,需要找到用户与物品之间隐含的关系,隐语义模型通过隐含方程表示用户与物品之间的关系,将用户与物品通过中介隐含因子联系起来。

(1)算法流程:

分解
  • 1、首先得到的是多个用户与多本书之间的NxM评分矩阵
    在这里插入图片描述
  • 2、分解成N个用户与F个隐含因子的矩阵,F个隐含因子与M个电影的矩阵
    在这里插入图片描述
组合
  • 通过对FxN矩阵的转置,与FxM矩阵相乘得到NxM的矩阵
    在这里插入图片描述

(2)算法模型

在这里插入图片描述

  • Rui为用户与物品的评分关系
  • Pu为用户与隐含因子的关系
  • Qi为隐含因子与物品的关系
1、目标函数

在这里插入图片描述

  • C为预测值和真实值之间的差异,用平方项表示
  • 真实值与 预测值的loss
  • 给隐含因子参数加惩罚项,迭代更新
2、模型求解

Pu,Qi为函数参数,求偏导得到损失函数的最小值
在这里插入图片描述

(3)模型负样本的选择

用户:有打分是1,没有打分是0
物品:热门却没有用户评分的
对于用户—物品集K {(u,i)},其中如果(u, i)是正样本,则有Rui = 1,负样本则Rui = 0

(4)模型参数的选择

  • 隐特征的个数F,通常F=100,F越大,映射维度空间越大,表示的特征越多
  • 学习速率alpha,别太大
  • 正则化参数lambda,别太大
  • 负样本/正样本比例 ratio
    在这里插入图片描述

6、协同过滤和隐语义模型的比较

  • 原理:协同过滤基于统计,隐语义基于建模
  • 空间复杂度,隐语义模型较小(映射空间小),协同过滤维护一个大表
  • 数据过大,实时推荐依旧难,目前离线计算多
  • 隐语义参数可解释性差

7、推荐系统评估标准

  • 准确度:真实值与预测值的差异
    在这里插入图片描述

  • 召回率:
    在这里插入图片描述
    令R(u)是根据用户在训练集上的行为给用户作出的推荐列表, T(u)是用户在测试集上的行为列表
    求交集即为有效推荐的

  • 覆盖率:推荐的物品占全部物品的百分比,尽可能广的覆盖相同类别的物品
    也可用熵值来代表覆盖率的评估标准
    在这里插入图片描述

  • 多样性:尽可能广的推荐
    分子为相似度
    分母:在所以可能推荐的组合当中,推荐了多少个组合
    在这里插入图片描述
    不同的推荐系统有不同的评估标准

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值