《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇
在上一篇博客里面分享的是《推荐系统实践》中协同过滤相关的算法,对此还不熟悉的读者可以戳这里。
关于这个系列会分为如下几个部分:
《推荐系统实践》算法纯享(附代码链接)(一)—— 评价指标篇
《推荐系统实践》算法纯享(附代码链接)(二)—— 协同过滤篇
《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇
《推荐系统实践》算法纯享(附代码链接)(四)—— UGC推荐篇
《推荐系统实践》算法纯享(附代码链接)(五)—— 借助上下文信息推荐篇
《推荐系统实践》算法纯享(附代码链接)(六)—— 借助社交网络推荐篇
《推荐系统实践》算法纯享(附代码链接)(七)—— 评分预测篇
完整代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice
下面将开始本系列的第三部分——冷启动篇。
文章目录
- 3 冷启动
- 3.1 利用用户注册信息
- 3.2 利用物品的内容信息
3 冷启动
冷启动问题主要分为3类:
- 用户冷启动:解决为新用户做个性化推荐的问题
- 物品冷启动:解决将新物品推荐给可能对它感兴趣的用户这一问题
- 系统冷启动:解决在新开发的网站上,没有用户,也没有用户行为,只有一些物品信息的推荐问题
这里主要分享两个算法,一个是利用用户的注册信息进行冷启动,一个是利用物品本身信息进行冷启动。
3.1 利用用户注册信息
代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice/blob/master/Chapter3/用户冷启动-利用用户的注册信息.ipynb
这里主要利用用户注册时填写的人口统计学信息,如年龄、性别、职业、民族、学历和居住地等,来进行推荐。其基本流程如下:
- 获取用户的注册信息
- 根据注册信息对用户进行分类
- 给用户推荐他所属那个分类中用户喜欢的物品
其中核心问题是计算每种分类(特征)的用户喜欢的物品,即对于每种类别(特征)fff,计算具有这种特征的用户对各个物品的喜好程度p(f,i)p(f, i)p(f,i)。
令N(i)N(i)N(i)为喜欢物品i的用户集合,U(f)U(f)U(f)是具有特征fff的用户集合。计算方式有如下两种:
a. 物品i在具有fff的特征的用户中的热门程度
p(f,i)=∣N(i)⋂U(f)∣p(f, i) = |N(i) \bigcap U(f)|p(f,i)=∣N(i)⋂U(f)∣
b. 喜欢物品i的用户中具有特征fff的比例
p(f,i)=N(i)⋂U(f)∣N(i)∣+αp(f, i)=\frac{N(i) \bigcap U(f)}{|N(i)| + \alpha}p(f,i)=∣N(i)∣+αN(i)⋂U(f)
α\alphaα是为了解决数据稀疏的问题,比如有一个物品只被1个用户喜欢过,而这个用户刚好就有特征fff,那么就有p(f,i)=1p(f, i)=1p(f,i)=1。但是,这种情况并没有统计意义,因此为分母加上一个比较大的数,可以避免这样的物品产生比较大的权重。
3.2 利用物品的内容信息
代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice/blob/master/Chapter3/物品冷启动-利用物品的内容信息.ipynb
一般物品都有自己的内容信息,比如有一些文本等信息,这时候可以用NLP的知识将物品内容表示成向量空间模型,即表示为一个关键词向量。其流程如下图:
例如对于物品d,它的内容表示为关键词向量如下:其中eie_iei是关键词,wiw_iwi是关键词对应的权重。
di=(e1,w1),(e2,w2),...d_i = {(e_1, w_1), (e_2, w_2), ...}di=(e1,w1),(e2,w2),...
对于关键词权重的计算可以使用著名的TF-IDF公式:
wi=TF(ei)logDF(ei)w_i = \frac{TF(e_i)}{logDF(e_i)}wi=logDF(ei)TF(ei)
在给定物品内容的关键词向量之后,对于物品相似度的计算就可以通过余弦相似度进行计算:
wij=<di,dj>∣∣di∣∣∣∣dj∣∣w_{ij}=\frac{<d_i, d_j>}{\sqrt{||d_i||||d_j||}}wij=∣∣di∣∣∣∣dj∣∣<di,dj>
同样的,与前面的协同过滤算法类似,可以建立关键词-物品的倒排表加速计算过程。
在得到物品之间的相似度之后,就可以用前面的ItemCF进行推荐了。
对于冷启动的分享到这里就结束了,下面将继续分享第四部分——UGC推荐篇。
《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇相关推荐
- 600页!分享珍藏很久的《推荐系统学习手册》(附下载链接及入门经验)
这是之前学习推荐系统时的学习资料,非常全面,包含经典模型的解析及代码实现.模型的评估.最新工业界论文解读等等,全网仅此一份!该手册有PDF版本和Markdown版本,总计有600多页! 资料领取方式: ...
- 700页!分享珍藏很久的《推荐系统学习手册》(附下载链接及入门经验)
这是之前学习推荐系统时的学习资料,非常全面,包含经典模型的解析及代码实现.模型的评估.最新工业界论文解读等等,全网仅此一份!该手册有PDF版本和Markdown版本,总计有700多页! 资料领取方式: ...
- fast rcnn 论文解读(附代码链接)
要解决的问题 1.RCNN和SPPnet分多步训练,先要fine tuning一个预训练的网络,然后针对每个类别都训练一个SVM分类器,最后还要用regressors对bounding-box进行回归 ...
- Python 三十大实践、建议和技巧(附代码链接)
来源:授权自AI科技大本营(ID:rgznai100) 本文约4900字,建议阅读10+分钟. 本文为你提供30个Python技巧,请收下! [ 导读 ]2020年,你又立了什么新的 Flag?新一年 ...
- 独家 | 指南:不平衡分类的成本敏感决策树(附代码链接)
作者:Jason Brownlee 翻译:陈超 校对:冯羽 本文约3500字,建议阅读10+分钟 本文介绍了不平衡分类中的成本敏感决策树算法. 决策树算法对平衡分类是有效的,但在不平衡数据集上却表现不 ...
- 独家 | 浅谈强化学习原理(附代码链接)
作者:Michel Kana 翻译:王琦 校对:王雨桐 本文约4900字,建议阅读15分钟. 本文介绍了强化学习的基本原理,并通过代码实例来讲解如何找到最优策略. Google在2017年年底发布了A ...
- 【干货】推荐系统解构.pdf(附下载链接)
今天给大家带来姚凯飞老师所做的分享<推荐系统解构.pdf>,本分享共包含如下四大部分: 1.推荐概述: 2.关键因素建模: 3.推荐流程拆解: 4.系统&全局生态. 本PPT已收录 ...
- 手把手教你使用Flask轻松部署机器学习模型(附代码链接) | CSDN博文精选
作者 | Abhinav Sagar 翻译 | 申利彬 校对 | 吴金笛 来源 | 数据派THU(ID:DatapiTHU) 本文旨在让您把训练好的机器学习模型通过Flask API 投入到生产环境 ...
- 独家 | 数据转换:标准化vs 归一化(附代码链接)
作者:Clare Liu, 英国金融科技数据科学家 翻译:林鹤冲 校对:王紫岳 本文约2300字,建议阅读10分钟 本文将解释数据转换中常见的特征缩放方法:"标准化"和" ...
- 独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)
作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎 校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支持 ...
最新文章
- Python 操作字典 的几个技巧
- 在Spring Controller中将数据缓存到session
- F. Strange Array(Codeforces Round #727 (Div. 2))(主席树)
- P3327-[SDOI2015]约数个数和【莫比乌斯反演】
- NLP复习资料(5)-第九章 句法分析
- mysql 5.5.22.tar.gz_MySQL 5.5.22源码编译安装
- 【转载】我是一个线程(修订版)
- oracle rac 高并发性能_Tomcat 高并发之道原理拆解与性能调优
- android 调色盘插件,Adobe co CC2017下载
- 【渝粤教育】电大中专常见病药物治疗 (2)_1作业 题库
- eot文件html,html – 为什么IE8没有加载我的eot文件?
- Spark问题3之SparkException:Error notifying standalone scheduler's driver endpoint
- 2021年山东省安全员B证试题及解析及山东省安全员B证作业模拟考试
- 【小技巧】周杰伦没有离开网易云音乐
- 动手的乐趣_1969功率放大器
- 鱼眼图像的校正(Python实现)
- oracle实现sha加密解密,oracle部分字段加密解密 实现模糊搜索
- 面向对象设计之魂(六大原则)
- html把div下移,Html:zoom div下移
- 公安统计报表计算机信息系统2015版,[广东省东莞市公安统计报表信息系统的设计与实现.ppt...