微信读书冷启动推荐实战:一种基于用户属性的方法

引言

在文章《微信读书冷启动书籍推荐初探:一个借助微信用户画像的方法
1,我们发现用户的阅读偏好与用户属性(性别、年龄、n 线城市、公众号阅读偏好)相关。基于这个发现,我们利用用户属性,给冷启动的新注册用户做个性化推荐,效果较编辑推荐提升约 50%。

说明图片

思路

假设具有相似用户属性的用户,有相似的阅读偏好。

我们可以把相同性别、相同年龄段、相同 n 线城市的微信读书用户划分成群体,统计每个群体的用户最喜欢的书;对新注册的用户,它的阅读偏好很可能与他所在群体的用户相似。因此根据这个先验知识,可以把他所在群体最喜欢的书籍推荐给他。

A/B 测试设计

微信读书搭建了书籍推荐 A/B 测试的基础设施,通过如下方法统计不同推荐策略的转化率:

  1. 在推荐书籍时,后台记录日志:『用户 推荐书籍 推荐策略 推荐位置标识符 时间』
  2. 在用户把书籍加入书架时,前端上报日志:『用户 推荐书籍 推荐位置标识符 时间』
  3. 统计时,给定推荐策略、推荐位置标识符、时间范围,可通过 Spark 脚本统计推荐/加书架转化率

本次实验把有属性的用户随机分成两组:

  • 个性化推荐组(实验组)
  • 编辑推荐组(对照组)

对个性化推荐组的用户,把用户所在群体热门书单推荐给他们。编辑推荐组,沿用以往的固定书单策略。二者在 App 界面的表现形式没有任何差异,只是书籍的不同。

推荐算法实现

  1. 把用户按属性(性别、年龄、n 线城市)划分成多个群体
  2. 对每个群体,统计群体用户最喜欢的书籍,按热度排序,做成推荐书单
  3. 对于每个新注册的用户,根据用户属性找出他所属的群体对应的推荐书单,以新手卡片的形式展示

效果评估

统计新手卡片前十本书推送/加书架转化率,得到表格:

日期 个性化推荐 编辑推荐
20161210 1.56% 0.97%
20161211 1.58% 1.02%
20161212 1.56% 1.10%

转化率统计图片

可以看到,个性化推荐的转化率,比编辑推荐提升了约 50%。

未来工作

  • 可以探索使用其他用户属性,来划分用户群体,使推荐书籍更精准。

  • 本次实验使用的热门的书的定义,是用户感兴趣的书(阅读了 10 分钟且超过了 30% 或者评分大于60分)。未来可以调整热门的定义,如用户评分最高的书,评论最多的书,或者加权综合,来提高转化率。

本文有帮助?