极客时间推荐学习笔记

本文围绕推荐系统展开,介绍其能提前找出用户与物品连接。阐述显式与隐式反馈,探讨EE问题、用户画像构建。提及计算用户相似度问题及解决办法,介绍协同过滤改进、item-based优势。还讲述CTR预估、模型验证与评估,强调评估要考虑数据正负样本比例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、推荐系统可以把那些最终会在用户(User)和物品(Item)之间产生的连接提前找出来。
2、显式反馈:用户评分

​ 隐式反馈:用户行为,如点击、浏览等

​ 1、数据比显式反馈更加稠密。诚然,评分数据总体来说是很稀疏的。

​ 2、隐式反馈更代表用户的真实想法,比如你不是很赞成川普的观点,但还是想经常看到他的内容(以便吐槽他),这是显式反馈无法捕捉…

​ 3、隐式反馈常常和模型的目标函数关联更密切,也因此通常更容易在AB 测试中和测试指标挂钩。

3、EE 问题(探索与利用)

​ 1、全部给他推荐他目前肯定感兴趣的物品;

​ 2、无视他的兴趣,按照其他逻辑给他推荐,如编辑推荐、随机推荐、按时间先后推荐等;

​ 3、大部分给他推荐感兴趣的,小部分去试探新的兴趣,如同一边收割长好的韭菜,一边播种新的韭菜。

4、用户画像
用户画像的构建:

​ 1、人口统计学

​ 2、用户行为

​ 3、黑盒子类。就是用机器学习方法,学习出人类无法直观理解的稠密向量。比如使用潜语义模型构建用户阅读兴趣,或者使用矩阵分解得到的隐因子,或者使用深度学习模型学习用户的 Embedding 向量。

用户画像需要干的两步骤:

​ 1.把所有非结构化的文本结构化(向量化),去粗取精,保留关键信息。(用户的财富、吃货程度构建用户画像,餐馆的价格、口味构建餐馆画像)方式:用户画像结构化的方法TF-IDF,textrank。挑选画像标签可以看成是特征选择问题,用信息增益做。

​ 2.根据用户行为数据把物品的结构化结果传递给用户,与用户自己的结构化信息合并。(用户的财富与餐馆价格对应,吃货程度对应口味)

物品画像信息与用户画像信息合并的方法:

1、一种简单的办法是直接把用户产生过行为的物品标签累积在一起,累计的标签越多,那么它越有效。

2、信息增益(IG)

5、计算用户相似度中的一些常见问题:

​ 1、只有原始用户行为日志,如何从中构造出矩阵?

​ 矩阵是稀疏的,很多矩阵元素不用存,可以用COO方式存储。

​ COO:这个存储方式很简单,每个元素用一个三元组表示(行号,列号,数值),只存储有值的元素,缺失值不存储。

​ 2、 如何降低两个用户之间相似度计算复杂度

​ 1、随机采样,估算总体,spark已经支持了。

​ 2、向量化计算。一般像常用的向量库都天然支持的,比如 Numpy。

​ 3、用户量很大,两两之间计算代价也很大?

​ 将相似度计算拆成 Map Reduce 任务,将原始矩阵 Map 成键为用户对,值为两个用户对同一个物品的评分之积,Reduce 阶段对这些乘积再求和,Map Reduce任务结束后再对这些值归一化;

6、协同过滤的改进

​ 1、惩罚对热门物品的喜欢程度,这是因为,热门的东西很难反应出用户的真实兴趣,更可能是被煽动,或者无聊随便点击的情形,这是群体行为常见特点;

​ 2、增加喜欢程度的时间衰减,一般使用一个指数函数,指数就是一个负数值和喜欢行为发生时间间隔正相关即可。

7、item-based的相比user-based优势:

物品之间的相似度比较静态,它们变化的速度没有用户的口味变化快,所以完全解耦了用户兴趣迁移这个问题。

8、[外链图片转存失败(img-TWN3m8YJ-1567399349948)(/Users/wjj/Desktop/推荐系统笔记/w.png)]
9、item-based中置信度的问题:

[外链图片转存失败(img-XiTwbvUT-1567399349949)(/Users/wjj/Desktop/推荐系统笔记/屏幕快照 2019-05-07 上午11.41.05.png)]

[外链图片转存失败(img-bodrUhQu-1567399349949)(/Users/wjj/Desktop/推荐系统笔记/屏幕快照 2019-05-07 上午11.41.21.png)]

[外链图片转存失败(img-XKhGrXo4-1567399349950)(/Users/wjj/Desktop/推荐系统笔记/屏幕快照 2019-05-07 上午11.41.35.png)]

10、CTR预估的自我理解:

有了多个模型提供的召回集之后,我们需要对其进行排序,不同模型提供的召回集不能直接对比,一般用线性模型和树模型的融合来排序。我们选择了逻辑回归和梯度提升决策树 GBDT:用多个GBDT来预测0或者1的结果,这个 N 个预测结果再作为 N 个 one-hot 编码特征拼接成一个向量送入逻辑回归中,产生最终的融合预估结果(0或者1)。

11、模型的验证(选择最佳模型)

训练 集可以得到模型的参数,验证集可以得到模型的超参数, 测试集可以得到模型的泛化能力,即精度。如果数据不足,可以测试集和验证集为同一个。

训练 / 验证 / 测试三者两两互不相交

其中三种中样例分布应该有一致性,如何保证一致性:kkk 折交叉验证是无放回的重采样方法;自助采样是有放回的重采样方法

极客时间版权所有: https://time.geekbang.org/column/article/9295

12、模型的评估

在二分类任务中,模型性能度量的基本指标是精度和错误率,两者之和为1.

其他情况主要靠以下两个:

P-R 曲线表示的是查准率和查全率之间的关系。

ROC 曲线表示的是真正例率和假正例率之间的关系,但是两个模型之间的ROC往往不容易比较,很难出现一个roc完全优于另一个的情况,往往是各有偏重,难以综合比较。所以我们用AUC,即ROC的曲线下面积来对比,AUC一定大于0.5,因为如果小于0.5,我们可以吧所有结果取反,来接着用。

实际上还要考虑数据情况:

如果正负样本比例不平衡时,不能通过ROC曲线来评估模型,可能会出现ROC很好看,但业务上无法使用的情况。

具体来说就是,roc很高,但是PR很低,查准率和查全率都无法满足使用要求。

举个例子,正负样本比例为1:100,有10100个样本,100个正的,10000个负的。
假设TPR为0.9时,FPR为0.1,这时候ROC曲线应该算是不错的(auc 大于0.81,可能超过0.9)
但是,此时真正例为 1000.9 = 90 , 假正例为 10000 0.1 = 1000 , 所以查准率为 90/1090 =8.3%
这个准确率,可不一定符合业务使用需要。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值