“猜你喜欢”的背后揭秘--10分钟教你用Python打造推荐系统
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可!
话说,最近的瓜实在有点多,从我科校友李雨桐怒锤某男、陈羽凡吸毒被捕、蒋劲夫家暴的三连瓜,到不知知网翟博士,再到邓紫棋解约蜂鸟、王思聪花千芳隔空互怼。
而最近的胜利夜店、张紫妍巨瓜案、最强大脑选手作弊丑闻,更是让吃瓜群众直呼忙不过来:瓜来的太快就像龙卷风,扶我起来,我还能吃!
说到底,这其实是一个信息过载的时代:公众号每天数十条的推送、朋友圈的晒娃晒旅游、各种新闻报道扑面而来令人眼花缭乱、目不暇接……
那么问题来了,怎么找到自己的关注点呢?俗话说得好,有问题,找度娘,输入关键词一回车就完事儿了。
然而,懒是人的天性,而有的人(比如小编)则连关键词都懒得搜,希望计算机能自动挖掘我们的兴趣点,并为我们推荐感兴趣的内容,所以我们就迫切地需要推荐系统来帮助我们了。那么现在我们就来讲讲推荐系统吧~
目录
01 什么是推荐系统
推荐系统相信大家并不陌生,从“我有歌也有热评”的云村里的每日歌曲推荐,淘宝的猜你喜欢,再到外卖APP和视频网站的推送,推荐系统似乎成了各种APP的宠儿(请忽略小编的老年人口味)。
热门app的推荐系统
简单来说,推荐系统就是根据用户的各种数据(历史行为数据、社交关系数据、关注点、上下文环境等)在海量数据中判断用户感兴趣的item并推荐给用户的系统。
“哇这个东西就是我想要的。”
“诶,这首歌还真好听。”
“emm这部电影还挺对我胃口的”
推荐系统对用户而言,能够简化搜寻过程、发现新鲜好玩令人惊喜的东西;而对商家而言,则是能够提供个性化服务,提高用户的信任度、粘度以及活跃度,从而提高营收。
02 推荐系统的评判标准
一个完整的推荐系统往往是十分复杂的。既然如此,仅仅通过准确率一个标准推荐系统作评测是远远不够的,为此我们需要定义多个标准,从多维度评价一个推荐系统的好坏。
notation
1.准确度
对打分系统(比如说淘宝的评论一到五星打分)而言,一说到评判标准,最先想到的肯定就是均方根误差RMSE和平均绝对误差MAE啦:
RMSE和MAE计算公式
对TOP N推荐(生成一个TOP N推荐列表)而言,Precision和Recall则是我们的关注点:
Precision和Recall计算公式
说人话版本:Precision就是指系统推荐的东西中用户感兴趣的有多少,Recall就是用户感兴趣的东西中你推荐了多少
举个栗子:
2.覆盖率
表示推荐系统对item长尾的发掘能力
科普知识
马太效应:强者愈强,弱者愈弱
长尾效应:大多数的需求会集中在头部(爆款商品),而分布在尾部的需求是个性化的、零散的、小量的需求(冷门商品)。但这部分差异化的、少量的需求会在需求曲线上面形成一条长长的“尾巴”。如果将所有非流行的市场累加起来就会形成一个比流行市场还大的市场。