在上一篇博客里面分享的是《推荐系统实践》中协同过滤相关的算法,对此还不熟悉的读者可以戳这里。

关于这个系列会分为如下几个部分:

《推荐系统实践》算法纯享(附代码链接)(一)—— 评价指标篇
《推荐系统实践》算法纯享(附代码链接)(二)—— 协同过滤篇
《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇
《推荐系统实践》算法纯享(附代码链接)(四)—— UGC推荐篇
《推荐系统实践》算法纯享(附代码链接)(五)—— 借助上下文信息推荐篇
《推荐系统实践》算法纯享(附代码链接)(六)—— 借助社交网络推荐篇
《推荐系统实践》算法纯享(附代码链接)(七)—— 评分预测篇

完整代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice

下面将开始本系列的第三部分——冷启动篇

文章目录

  • 3 冷启动
    • 3.1 利用用户注册信息
    • 3.2 利用物品的内容信息

3 冷启动

冷启动问题主要分为3类:

  1. 用户冷启动:解决为新用户做个性化推荐的问题
  2. 物品冷启动:解决将新物品推荐给可能对它感兴趣的用户这一问题
  3. 系统冷启动:解决在新开发的网站上,没有用户,也没有用户行为,只有一些物品信息的推荐问题

这里主要分享两个算法,一个是利用用户的注册信息进行冷启动,一个是利用物品本身信息进行冷启动。

3.1 利用用户注册信息

代码链接:https://github.com/Magic-Bubble/RecommendSystemPractice/blob/master/Chapter3/用户冷启动-利用用户的注册信息.ipynb

这里主要利用用户注册时填写的人口统计学信息,如年龄、性别、职业、民族、学历和居住地等,来进行推荐。其基本流程如下:

  1. 获取用户的注册信息
  2. 根据注册信息对用户进行分类
  3. 给用户推荐他所属那个分类中用户喜欢的物品

其中核心问题是计算每种分类(特征)的用户喜欢的物品,即对于每种类别(特征)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=&lt;di,dj&gt;∣∣di∣∣∣∣dj∣∣w_{ij}=\frac{&lt;d_i, d_j&gt;}{\sqrt{||d_i||||d_j||}}wij​=∣∣di​∣∣∣∣dj​∣∣​<di​,dj​>​

同样的,与前面的协同过滤算法类似,可以建立关键词-物品的倒排表加速计算过程。

在得到物品之间的相似度之后,就可以用前面的ItemCF进行推荐了。

对于冷启动的分享到这里就结束了,下面将继续分享第四部分——UGC推荐篇

《推荐系统实践》算法纯享(附代码链接)(三)—— 冷启动篇相关推荐

  1. 600页!分享珍藏很久的《推荐系统学习手册》(附下载链接及入门经验)

    这是之前学习推荐系统时的学习资料,非常全面,包含经典模型的解析及代码实现.模型的评估.最新工业界论文解读等等,全网仅此一份!该手册有PDF版本和Markdown版本,总计有600多页! 资料领取方式: ...

  2. 700页!分享珍藏很久的《推荐系统学习手册》(附下载链接及入门经验)

    这是之前学习推荐系统时的学习资料,非常全面,包含经典模型的解析及代码实现.模型的评估.最新工业界论文解读等等,全网仅此一份!该手册有PDF版本和Markdown版本,总计有700多页! 资料领取方式: ...

  3. fast rcnn 论文解读(附代码链接)

    要解决的问题 1.RCNN和SPPnet分多步训练,先要fine tuning一个预训练的网络,然后针对每个类别都训练一个SVM分类器,最后还要用regressors对bounding-box进行回归 ...

  4. Python 三十大实践、建议和技巧(附代码链接)

    来源:授权自AI科技大本营(ID:rgznai100) 本文约4900字,建议阅读10+分钟. 本文为你提供30个Python技巧,请收下! [ 导读 ]2020年,你又立了什么新的 Flag?新一年 ...

  5. 独家 | 指南:不平衡分类的成本敏感决策树(附代码链接)

    作者:Jason Brownlee 翻译:陈超 校对:冯羽 本文约3500字,建议阅读10+分钟 本文介绍了不平衡分类中的成本敏感决策树算法. 决策树算法对平衡分类是有效的,但在不平衡数据集上却表现不 ...

  6. 独家 | 浅谈强化学习原理(附代码链接)

    作者:Michel Kana 翻译:王琦 校对:王雨桐 本文约4900字,建议阅读15分钟. 本文介绍了强化学习的基本原理,并通过代码实例来讲解如何找到最优策略. Google在2017年年底发布了A ...

  7. 【干货】推荐系统解构.pdf(附下载链接)

    今天给大家带来姚凯飞老师所做的分享<推荐系统解构.pdf>,本分享共包含如下四大部分: 1.推荐概述: 2.关键因素建模: 3.推荐流程拆解: 4.系统&全局生态. 本PPT已收录 ...

  8. 手把手教你使用Flask轻松部署机器学习模型(附代码链接) | CSDN博文精选

    作者 | Abhinav Sagar 翻译 | 申利彬 校对 | 吴金笛 来源 | 数据派THU(ID:DatapiTHU) 本文旨在让您把训练好的机器学习模型通过Flask API 投入到生产环境  ...

  9. 独家 | 数据转换:标准化vs 归一化(附代码链接)

    作者:Clare Liu, 英国金融科技数据科学家 翻译:林鹤冲 校对:王紫岳 本文约2300字,建议阅读10分钟 本文将解释数据转换中常见的特征缩放方法:"标准化"和" ...

  10. 独家 | 如何用简单的Python为数据科学家编写Web应用程序?(附代码链接)

    作者:拉胡尔·阿加瓦尔(Rahul Agarwal), Walmart 实验室的数据科学家 翻译:陈之炎 校对:闫晓雨 本文约4300字,建议阅读10分钟. 本文阐述如何使用StreamLit创建支持 ...

最新文章

  1. Python 操作字典 的几个技巧
  2. 在Spring Controller中将数据缓存到session
  3. F. Strange Array(Codeforces Round #727 (Div. 2))(主席树)
  4. P3327-[SDOI2015]约数个数和【莫比乌斯反演】
  5. NLP复习资料(5)-第九章 句法分析
  6. mysql 5.5.22.tar.gz_MySQL 5.5.22源码编译安装
  7. 【转载】我是一个线程(修订版)
  8. oracle rac 高并发性能_Tomcat 高并发之道原理拆解与性能调优
  9. android 调色盘插件,Adobe co CC2017下载
  10. 【渝粤教育】电大中专常见病药物治疗 (2)_1作业 题库
  11. eot文件html,html – 为什么IE8没有加载我的eot文件?
  12. Spark问题3之SparkException:Error notifying standalone scheduler's driver endpoint
  13. 2021年山东省安全员B证试题及解析及山东省安全员B证作业模拟考试
  14. 【小技巧】周杰伦没有离开网易云音乐
  15. 动手的乐趣_1969功率放大器
  16. 鱼眼图像的校正(Python实现)
  17. oracle实现sha加密解密,oracle部分字段加密解密 实现模糊搜索
  18. 面向对象设计之魂(六大原则)
  19. html把div下移,Html:zoom div下移
  20. 公安统计报表计算机信息系统2015版,[广东省东莞市公安统计报表信息系统的设计与实现.ppt...

热门文章

  1. HTML5-打字游戏
  2. APP测试—专项测试概念
  3. python颜色识别_python颜色识别
  4. unity visual effect Graph 1
  5. 51单片机数值存储c语言教程,单片机c语言教程:C51变量
  6. 修改Linux窗口大小
  7. Delphi开发Windows服务程序教程
  8. Extjs基础入门视频教程
  9. Linux权限命令chmod
  10. 根据省份名称返回省份简称(js代码)