千人千面,漫谈「个性化推荐

转载自公众号:1鸣说。作者:一鸣十二赞产品经理。

摘要:
个性化推荐功能在资讯类、搜索类以及电商类应用中均有广泛应用,本文简单谈谈笔者对个性化推荐的看法,以及抛砖引玉地提出了一种简单但自认为可能有效的个性化推荐算法。

在上一篇文章中,我讲了社交电商的五个重点环节,本文就五个重点环节中的「导购」环节,谈谈个性化推荐的应用。

我在上一篇文章中已经提到,导购环节指的是买家从进入商城到进入商品详情页的过程,这一过程中最重要的是展现买家最感兴趣的商品并让他点击进入该商品的详情页中,如何展现买家最感兴趣的商品,这就是个性化推荐的使用场景。下面的内容不仅仅针对于电商,这些内容套在其他行业也完全通用。

什么是个性化推荐

个性化推荐,指的是通过一定的算法,向用户展现他感兴趣的内容。准确地讲,个性化推荐更高效的连接了人与信息,降低了人获取信息的成本。

以电商为例,我举一个简单的例子,小明是一个数码爱好者,买了一个CPU,实际上小明是想组装一台新电脑,他接下去要买主板、显卡等配件,系统根据以往的情况,推测了这种情况,同时根据小明的经济水平,向小明推荐了一款中档显卡,小明第二次进入商城,发现首页出现的这款商品刚好是自己考虑买的,然后小明直接查看该商品,下单付款完成整个流程。

实际上,以电商为例,并不能很准确地阐述,因为一个东西即便用户再喜欢,也不可能无限制地去购买。以资讯类应用为例,可能更容易理解。谈到个性化推荐,最有名的莫过于今日头条,通过做更精准的个性化推荐,让这款产品成功地成为了一个时间黑洞。还是以小明为例,新用户小明初次打开该应用,系统是不了解小明的,然后小明用了一段时间这个应用后,系统发现当推送数码类文章给小明的时候,小明的打开率非常高,系统就判定小明喜欢此类文章,后续就会增加此类文章的曝光率。

为什么要做个性化推荐

互联网发展从PC端到移动端,人们的时间越来碎片化,然而同时信息的爆炸式增长,增加了用户获取有价值的信息的难度。如果一款产品不能给用户带来价值,那么被卸载是可以被预料到的结果。

对于资讯类产品,想要增加用户驻留的时间。对于搜索类应用,想要更准确地展现用户搜索的内容。对于电商类应用,想要提升用户的转化率。这些都是客观存在的要求,大数据的诞生,也为个性化推荐提供了生存土壤。

从南到北,从东往西,我们面临的用户实在太多了,每个人的爱好和需求都不同,彼之蜜糖汝之砒霜,A用户特别感兴趣的内容,B用户可能闻所未闻。千人一面展现内容的旧互联网模式已经过去,新互联网模式要求千人千面,只有针对每个不同的用户,展现更精准的内容,才能给其提供价值。

个性化推荐的原理

个性化推荐就是更高效的连接匹配人和信息,这其中就两个因素,「人」和「信息」,用户A和用户B属于人,信息C和信息D属于信息:用户A对信息C感兴趣,用户B和用户A的相似度非常高,那么用户B极有可能也对信息C感兴趣。同时信息C和信息D的相似度非常高,那么用户A和B对信息D感兴趣的可能性也非常高。

其实个性化推荐的基本原理非常简单,就是基于相似度的基础上,这里面所有的东西都是「可能」,都存在概率。即便A和B有99%的相似度,也存在A非常感兴趣的信息,对于B来说非常讨厌的可能。我们做个性化推荐,就基于这个原则,我们认为相似的人,可能有相同的兴趣,如果抛开这个前提,那么个性化推荐就非常难做。

个性化推荐是一个非常依赖数据和算法的功能,离开数据,一切推测都是空中楼阁,离开算法,再多数据也难以派上用场。

一个简单的个性化推荐算法

从上面介绍的原理看出,算法的核心就是相似度的判定,而判定相似度的一个非常简单粗暴的方法就是「贴标签」。虽然每个人都是有血有肉的个体,无论用多少文字,都难以完整地阐释一个特定的人。但是为了这个算法的实现,我们假定两个标签完全一样的人相似度为 100% 。

举个简单的例子,小明的标签是:90后,中产家庭,月入2万,男性,数码爱好者,手机发烧友,狂热果粉。小明在刚出粪叉的时候第一时间买了,然后这时候有个小张,具有和小明同样的标签:90后,中产家庭,月入2万,男性,数码爱好者,手机发烧友,狂热果粉,那么我们系统判定小明和小张的相似度为 100% ,同时认定小张也会在这个时候买粪叉。如果这时候小张进入商城,给他推荐粪叉准没错。

为方便讨论,也为了更严谨地阐述这个算法,我们由定性到定量进行分析。

用数字来表示,用 V (Value) 来表示信息E (Information)(备注:防止大写字母I被误认为1,我用E表示)对用户 U(User)的价值。 其中

V越大表示用户对该条信息越感兴趣。我们假定 V=1=100% 表示用户的该条信息非常该兴趣,转换到资讯类应用就是用户必定会打开该条资讯,转换到电商类应用就是用户必定会买这件商品。上述情况下该件商品对小张的价值可以表述为

算法1.1

以上就是算法1.0版本,事实上,两个用户相似度为100%的情况非常少见,还是用上面这个例子,小明(U1)和小张(U2)每个人都有10个标签,他们前9个标签都完全一致,只有最后一个标签不一样。某个信息E对小明的价值是 1 ,即

那么我们认为 小明和小张的相似度为 90% ,也就是0.9,即

我们计算信息E对小张的价值为

算法1.2

用以上策略考虑相似度基本可行,但是忽略了特定标签的价值的影响。还是用上面的例子,小明和小张的其他所有9个标签完全一致,最后一个标签小明是狂热果粉,而小张是狂热果黑,那么信息E对小张的价值很可能是0而不是0.9,问题出在哪里?我们忽略特定标签对信息价值的影响,实际上我们应该给信息也贴上标签,然后再匹配用户和信息之间的关联度(用D表示)。我们给信息E贴上狂热果粉这个标签,那么小明匹配到这个标签,

小张没有匹配到这个标签,那么

后续算法

由于时间有限(我准备睡觉了(~﹃~)~zZ),先推理到这里,我们下一期再续。使用贴标签的方式,是一种简单粗暴但是有效的判定信息是否有价值的算法,后续我们再讨论以下几种情况(逐级递进):

(1)信息E存在多个标签

(2)用户U1和U2的标签数量不一样多

(3)标签增加权重W(Weight),以及动态变更的算法

(4)多个信息分别有不同标签,分别对用户的价值

(5)信息的标签增加权重,以及动态变更

最终达到的效果是,用户U和信息E的标签以及权重是会随着他的操作动态变更的,最后根据一个公式计算E对U的价值:

发表评论