小孩都看得懂的推荐系统

Posted 王的机器

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小孩都看得懂的推荐系统相关的知识,希望对你有一定的参考价值。


全文共 2573  字, 13  幅图,
预计阅读时间 14 分钟。

文末有彩蛋!


我还是推荐系统小白,因此对此课题理解相当浅显,但一定很好懂。这才是学一样新东西的正确开始方式。



01


小孩都看得懂的推荐系统


故事的背景包括 4 个小孩和 5 部动画,每个小孩为每部动画打分


  • 1 分代表最不喜欢

  • 5 分代表最喜欢



02

小孩都看得懂的推荐系统


悠悠觉得「小猪佩奇」还可以,给了 3 分。建立一个 4 × 5 的矩阵


  • 每行代表一个小孩给所有动画打的分数

  • 每列代表一部动画被所有小孩打的分数


悠悠给「小猪佩奇」打完分后,在矩阵第 1 行第 1 列填入 3 分。



03


小孩都看得懂的推荐系统


假设 4 个小孩为 5 部动画打分完毕,哪一个打分矩阵最像真的?


  • 最左边不像,小孩的喜好不会这么千篇一律

  • 最右边不像,小孩的喜好不会这么毫无联系

  • 中间的最像,小孩的喜好会有一定的规律



04


小孩都看得懂的推荐系统


悠悠丫丫年龄差不多,总在一起看动画片,她俩的对动画的品位出奇相似(5 部动画给出同样的评分),比如大爱「小猪佩奇」,小爱「狮子王」,不喜欢「冰雪奇缘」「超人特工队」「玛莎和熊」。


规律 1:不同用户的喜好可能相似。



05

小孩都看得懂的推荐系统


乐乐喜欢看带「人物」的动画,他给「冰雪奇缘」和「超人特工队」高分;丫丫喜欢看带「动物」的动画,她给「小猪佩奇」和「狮子王」高分;多多还比较小,只要是动画都喜欢,他给所有动画高分(多多给的分是乐乐和丫丫给的分之和)。


规律 2:一个用户的喜好可能包含其他多个用户的喜好。



06


小孩都看得懂的推荐系统


「玛莎和熊」的评分是「狮子王」和「冰雪奇缘」的评分的均值。可能原因是「狮子王」里只含有动物,「冰雪奇缘」里绝大部分是人,而「玛莎和熊」里既有动物又有人,而且数目相当。


规律 3:一个动画内容可能包含其他多个动画内容



08


小孩都看得懂的推荐系统


先看一个最简单的推荐系统。


当所有人给所有电影打 3 分,问丫丫应该给「超人特工队」打多少分?


从评分矩阵来看,每个人对每个电影喜欢一样,因此预测出丫丫会给「超人特工队」打 3 分。



09

小孩都看得懂的推荐系统

再看一个稍微复杂的推荐系统。


丫丫应该给「玛莎和熊」打多少分?


从评分矩阵第一行和第三行来看,悠悠丫丫的喜欢相同,因此预测出丫丫会给「玛莎和熊」打 2 分,和悠悠一样。



10


小孩都看得懂的推荐系统


上面例子太简单,如果小孩有很多个,动画有很多部,我们怎么才能从评分矩阵中学到所有的规律呢?


答案:找到隐含特征!


回到上面的例子,如果特征是动画片的类别,那么特征值有两个,人物类和动物类。那么根据不同小孩对这两类动画特征的喜好,如上图,


  • 悠悠和丫丫喜欢动物类,不喜欢人物类

  • 乐乐喜欢人物类,不喜欢动物类

  • 多多都喜欢


再根据具体动画片含这两类特征的比重,如下图


小孩都看得懂的推荐系统


我们可以将 4 × 5 的评分矩阵分解成


  • 4 × 2 的「小孩-特征」矩阵

  • 2 × 5 的「特征-动画」矩阵


如下。


11


小孩都看得懂的推荐系统


因此我们要做的事情就是讲评分矩阵分解成两个非负矩阵的乘积,专业术语是非负矩阵分解(Non-negative Matrix Factorization, NMF), 机器学习包 Scikit-Learn 里有实现哦。


import numpy as npfrom sklearn.decomposition import NMF


用上面数据试了下,虽然分别的矩阵不是完全一样,但矩阵中是 0 的还是 0,其他元素只是差了一个缩放因子(scaling factor),你看最后把两个分解矩阵相乘,差不到能得到原来的评分矩阵。


小孩都看得懂的推荐系统


实际情况下,不可能每个小孩对每部动画都给出评分,因此不能直接用 NMF,那些缺失值才体会推荐系统的价值,我们要根据已有的评分来预测未给的评分,再决定是否推荐。



12


小孩都看得懂的推荐系统


实际情况,打 ?都是未给出评分,这时


  • 设「小孩-特征」矩阵为 U

  • 设「特征-动画」矩阵为 V


用以下误差函数(只考虑未缺失的 Ri,j


    (Ri,j – U 第 行和 V 第 列内积)2


怎么解?梯度下降呗!解完 U 和 V 后相乘发现 R4,4 = 5,那么妥妥的给多多推荐狮子王!



13


以上我理解的推荐系统只是皮毛,想全方位了解它,可参考我朋友高阳团的新书《推荐系统开发实战》,为你们争取了 5 本,而且包邮,下面是具体内容!





CXO 和 BATJ 大咖们力荐的新书《推荐系统开发实战》出版派福利了!


经历近一年的时间,我的新书终于在各大电商网站上线了,在这一年中,前半年是集中时间写稿,后半年则是修正,历时艰辛,但结果还是好的,终于等到了他——《推荐系统开发实战》。在此特别感谢以下六位大咖老师写的推荐语(送书福利在文末):


  • 黄文坚 老师:墨宽投资 CEO,《TensorFlow 实战》作者

  • 洪强宁 老师:爱因互动 CTO &创始人

  • 兜哥:百度安全实验室AI安全负责人,三本关于安全书籍的作者

  • 杨宏志 老师:字节跳动系统架构高级工程师,前知乎首页架构负责人

  • 杨旭东 师:阿里巴巴算法专家

  • 崔娜 老师:京东商城个性化应用组算法负责人


小孩都看得懂的推荐系统


这本书是一本关于推荐系统从入门到进阶的读物,采用“理论+实践”的形式展开,不仅对各种类型的推荐算法进行了介绍,还对算法所涉及的基础理论知识进行了补充。

全书共分为14个章节,如下:

小孩都看得懂的推荐系统
小孩都看得懂的推荐系统
小孩都看得懂的推荐系统
小孩都看得懂的推荐系统
小孩都看得懂的推荐系统
小孩都看得懂的推荐系统


小孩都看得懂的推荐系统


本书共包含34 个实例,其中最后三个为完整的推荐系统实例,在读者进行基础知识学习的同时,可通过相应的实例加深对理论的理解。最后三个完整的实例更是将读者从一个分散化的学习状态带入一个完整的推荐系统开发中来,对学习和工作都有很强的指导意义。

书中的实例开发几乎都是基于公开的数据集进行的,当然也涉及一些网络中获取的数据,其最终目的都是让读者能够更好地理解推荐算法,更直观地认识推荐系统。书中所涉及的数据集和实例代码都会提供给读者,这不仅在一定程度上方便读者学习,而且为以后的工作提供了便利。

如果你想要知道书中的大概内容,可参考:

下面是图书的实拍图:

 小孩都看得懂的推荐系统

小孩都看得懂的推荐系统

购买

目前本书已经在京东,当当和天猫上线,感兴趣的朋友可以关注购买了!

小孩都看得懂的推荐系统小孩都看得懂的推荐系统

京东自营,二维码识别购买

小孩都看得懂的推荐系统小孩都看得懂的推荐系统

当当自营,二维码识别购买           小孩都看得懂的推荐系统 小孩都看得懂的推荐系统
淘宝扫码,识别购买

福利

  • 答疑解惑

        本书的读者,可以加小编微信,小编拉你进读者交流群,一起探讨。小编微信为:

小孩都看得懂的推荐系统
  • 签售

  • 送书





如果你真的愿意去努力,你人生最坏的结果,也不过是大器晚成。

Thinkgamer
长按识别二维码,关注「搜索与推荐Wiki」


你点的每个 “在 看”,我都认真当成了喜欢

以上是关于小孩都看得懂的推荐系统的主要内容,如果未能解决你的问题,请参考以下文章

小白都看得懂的布局加载流程

人人都看得懂的正则表达式教程

今天怕p8架构师用154行写个冒险岛,小白都看得懂的语言描述

莽村李青都看得懂的Vue响应式原理

人人都看得懂的正则表达式教程

人人都看得懂的C语言进阶系列之数据存储