懂你的推荐算法,你懂的


本文由 给产品经理讲技术 发布于pmcaff.com

作为一个喜欢思考人生的美男子,我时常感慨,现在这个年代,人们上网获取信息的成本真的好低。智能手机,人手一台,打开3G连上WIFI就能上网,百度一搜,什么都有。当然百度上搜出来的大多数可能并不是你想要的,但这并不妨碍上面的论点成立。也正是因为成本太低,人们反而不愿意主动取获取信息,于是各种各样的推荐系统有了大展身手的机会。

推荐在生活中是一个再平常不过的事情,你失业了,有人会给你推荐工作。你失恋了,有人会给你推荐姑娘。但是在我们这个时代,机器远没有人类聪明,这些事情要是交给机器去做,你就得设计出一套机器能理解的算法出来,这就是所谓的推荐算法。大家看到算法两个字不要慌,以为我又要搬一个大东西出来。你可以把算法看做现实生活中的办事流程,它规定了你第一步干什么,第二步干什么,只要你按它说的做,就可以把事情办好。举个例子,你现在要做一个电影推荐APP,我们来看下整个过程是怎样的。

在推荐算法中,我们第一步要有一大堆要推荐的东西。也就是说,你的电影首先要足够多,才能满足不同用户的需求。算法再精准,最后发现推导出来的结果,在你的数据库中并没有,就悲剧了。第二步是要有用户的行为数据。这个也是越多越详细越好。这时候你要把看了哪部电影,看完没有,评价怎么样悄悄的记下来,上传到后台服务器。经过长期的积累,这些数据将为你以后的精准推荐奠定基础。

有了上面的数据基础,我们就可以进入正题了。推荐算法有不少,我们今天介绍一种最基本的叫做协同过滤算法。它的核心思想是"物以类聚,人以群分",具体可以分为基于用户的协同过滤算法和基于物品的协同过滤算法。我一直觉得专业领域起这种高大上的名字,是用来过滤智商的,因为很多人看到这里就不打算往下看了。

先看第一种,它的核心思想是根据用户的历史行为,找到兴趣相似的用户,然后进行推荐。假设从历史数据上来看,用户A喜欢《捉妖记》、《大圣归来》,用户B喜欢《栀子花开》、《小时代》,用户C喜欢《捉妖记》。那我们就可以简单认为AC二人口味相似,C极有可能也喜欢A所喜欢的《大圣归来》。这是最简单的情况,实际上仅仅用喜不喜欢来评价感兴趣程度是远远不够的,用户不可能看完还填个调查表选择yes or no,但是会通过一些其他行为比如影评、是否收藏来反应他们的喜欢程度。计算机只能理解量化的东西,所以在算法中,这些行为会转化成相应的分数,比如完整看完的,给3分,看完还给了正面评价的,给5分,看到一半就怒删的,给负10分。这样每个用户都会有一个电影评分表,在计算两个用户相似度的时候,把这些数据综合比对,代入下面这种专门计算相似度的公式,就能得到二人口味的相似程度。现在我们要给用户D推荐电影,分别计算AD、BD、CD的相似度,找到跟D最相似的用户,然后把A喜欢的,都推荐给D,就行了。

第二种是用户根据历史行为找相似的物品,然后推荐给用户。还是上面的假设,现在假设用户E喜欢《栀子花开》和《小时代》,那我们可以推导出,喜欢《栀子花开》的用户(B和E)都喜欢《小时代》,那基本可以确定两部电影是相似的,下回来个用户F,他喜欢《栀子花开》,那我顺便就把《小时代》推荐给他,他可能比较容易接受(当然也就只能接受这样的了,嘿嘿)。

大家可能要问,我的APP第一天上线,没有这些所谓的用户行为数据怎么推荐啊。这就是推荐算法面临的冷启动问题。这时候可以用基于内容的算法了。你可以事先把所有电影归个类,战争片归到一起,喜剧片归到一起,动画片归到一起。用户H看了一部喜剧片,你就把所有喜剧片推荐给他。显而易见,这种算法简单粗暴,当然命中率也最低。

推荐算法大概也就是这些东西。


点击阅读原文,即可收听由喜马拉雅电台提供的精彩音频。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值