老板说“我们要做个性化推荐”时,你该怎么办......
基于用户的协同推荐 终于,经过团队的努力,你的产品已经有了大量活跃用户了,这时候你开始不满足于现有的算法。虽然基于内容的推荐已经很精准了,但总是少了那么一点性感。因为你所有给用户的内容都是基于他们的阅读习惯推荐的,没能给用户“不期而遇”的感觉。 于是,你就开始做基于用户的协同过滤了。 基于用户的协同过滤推荐算法,简单来讲就是依据用户A的阅读喜好,为A找到与他兴趣最接近的群体,所谓“人以群分”,然后把这个群体里其他人喜欢的,但是A没有阅读过的内容推荐给A。 举例我是一个足球迷,系统找到与我类似的用户都是足球的重度阅读者,但与此同时,这些“足球群体”中有一部分人有看NBA新闻的习惯,系统就可能会给我推荐NBA内容,很可能我也对NBA也感兴趣,这样我在后台的兴趣图谱就更完善了。 1、用户群体划分 做基于用户的协同过滤,首先就要做用户的划分,可以从三方面着手: (1)外部数据的借用 这里使用社交平台数据的居多,现在产品的登录体系一般都借用第三方社媒的登录体系,如国外的Facebook、Twitter,国内的微信、微博,借用第三方账户的好处多多,例如降低门槛,方便传播等,还能对个性化推荐起到重要作用。 因为第三方账户都是授权获取部分用户信息的,往往包括性别,年龄,工作甚至社交关系等,这些信息对用户群划分很有意义。 此外还有其他的一些数据也能借用,例如IP地址,手机语种等。 使用这些数据,你很容易就能得到一个用户是北京的还是上海的,是大学生还是创业者,并依据这些属性做准确的大类划分。 比如一篇行业投资分析出来后,“上海创业圈”这个群体80%的用户都看过,那就可以推荐给剩下的20%。 (2)产品内主动询问 常见在产品首次启动的时候,弹框询问用户是男是女,职业等,这样能对内容推荐的冷启动提供一些帮助。但总体来说,性价比偏低,只能询问两三个问题并对用户的推荐内容做非常粗略的划分,同时要避免打扰到用户;这种做法算是基于用户个性化的雏形。 (3)对比用户特征 前文已经提到过,新闻的特征加用户的阅读数据能得到用户的特征,那就可以通过用户特征的相似性来划分群体。 2、内容推荐实施 我们结合一个很小的实例来了解用户协同过滤的原理,包括如何计算用户之间的相似性和如何做出推荐。 假设有A、B、C、D和E共 5 个用户,他们各自阅读了几篇新闻并做出了阅读,赞,收藏,评论,分享操作,我们对这几种行为赋予的分数分别为 1 分、 2 分、 3 分、 4 分和 5 分,这样用户对每条新闻都有自己的得分,其中“-”表示未阅读,得分如下: 接下来,我们需要给用户E推荐4,5, 6 中的哪一篇? 用户的阅读特征向量由用户所有的阅读数据决定,我们以用户E阅读过的新闻数据作为参考标准,来找到与E最相似的用户。 多维向量的距离需要通过欧几里得距离公式来计算,数值越小,向量距离约接近。 算出结果:
因此得出结果:用户D是与用户E阅读喜好最接近的那个,应该优先归为同一类用户。最终结论根据用户D的阅读数据,优先推荐news4。 3、内容选取 我们通过阅读特征向量把用户做群体划分后,接下来就是如何获取新闻推荐的优先级。 上面的例子里面只需要选出一个相似用户,并且用户A,B,C,D都只阅读news4,5, 6 中的一条,所以比较简单,但现实情况中,同一个用户群体阅读的新闻多且随机,用户交互更是错综复杂,如何得出推荐新闻的优先级呢? 假设用户X在系统归属于群体A,这个群体有n个用户,分别为A0,A1,A2……An,这些用户的集合用S(X,n)表示。
4、优缺点 相比于基于内容的推荐算法,基于用户的协同过滤同样优缺点明显。 优点主要在于对分词等算法的精确度无太大要求,推荐都是基于用户的行为数据去不断学习和完善;同时能发现用户的潜在阅读兴趣,能“制造惊喜”。 而缺点则是启动的门槛高,用户量不够时几乎无法开展;并且学习量不够时推荐结果较差。 总结 关于个性化推荐的算法,在网上有很多资料,也有很多其他的实现方法,因为笔者了解也有限,所以也不敢描述。如有兴趣可以自行搜索。 热度和个性化推荐算法,作为大部分内容型产品的核心卖点之一,依然在不断地进化和完善中。没有哪种算法是完美的,甚至没有哪种算法是一定优于其他的,在实际使用中,很多产品都是多算法结合去做好内容推荐。 而产品经理在算法的实施中,绝对不是一句“我们要做个性化推荐”就完事的,必须深入算法内部,对算法的原理做深入了解,然后结合自己的产品特征来部署和优化。 因此我站在产品经理的角度,整理了这一篇初步的算法相关的介绍,如有对文中内容感兴趣的,欢迎探讨!如有描述不当之初,敬请指正,感激不尽! (编辑:威海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |