微信读书冷启动用户书籍推荐初探:一个借助微信用户画像的方法

引言

微信读书 App 中的书籍推荐系统,逐渐开始在运营活动中(每周热榜、新手卡片)使用,尝试从技术侧帮助运营侧提高转活动的化率。

对微信读书的活跃用户,我们根据其读书时长、点评书等用户行为,做书籍推荐。对微信读书新增用户,由于缺少用户行为数据,无法使用这种方法做推荐,此类问题常被称为推荐系统冷启动问题。

然而,我们发现微信用户画像,比如基础属性(年龄、城市、性别等)和公众号阅读兴趣等,与微信读书用户的阅读兴趣相关。借助微信用户画像进行书籍推荐,准确率较随机推荐提升约 1 倍。

分析建模

如何评估微信用户画像与微信读书用户阅读兴趣是否相关?

我们建立预测模型进行初步验证,步骤如下:

  1. 准备数据集:微信读书n本热门书籍,把热门书架加入书架的用户及其微信画像
  2. 预测模型:把问题化简成 n 分类的问题,输入微信画像、输出预测书1 ~ n
  3. 假设:微信读书用户加书架的行为,可以反映其阅读偏好
  4. 在数据集基础上建立的预测模型,可以衡量用户画像和加书架的相关性。结合假设,该模型可以衡量用户画像和阅读偏好的相关性

如果有相关性,那么我们得到的预测模型就可以用于冷启动书籍推荐。

分析数据

微信用户画像基础属性

基础属性包括:城市,年龄,性别等。

其中,城市属性可以转化为 n 线城市作为属性。猜测城市、年龄、性别等属性,与阅读偏好的关联较大。

微信用户画像扩展属性:公众号阅读兴趣

包括一级分类如:如育儿、饮食、旅游、金融财经、时尚美容、养生培训等。

其中,每个用户每月都有一个阅读兴趣记录,由偏好类别、权重组成。比如:用户A 201608 养生健康0.8 教育培训0.1 时尚美容0.1。

选取四本书,抽取加书架的用户,统计这些用户的公众号阅读兴趣的人数累加和,按人数降序排列结果如下:

《囚徒健身:用失传的技艺练就强大的生存实力 保罗·威德 谷红岩译》

兴趣标签 有对应兴趣标签的人数
健身运动 388
养生健康 259
教育培训 238
旅游 235
… …

《逆龄养颜术(我最想要的美肌能量书)》梅切尔·沙尔

兴趣标签 有对应兴趣标签的人数
养生健康 652
教育培训 437
时尚美容 418
旅游 306
… …

《信用卡,从卡奴到卡神(简七理财010)》简七理财

兴趣标签 有对应兴趣标签的人数
金融财经 400
养生健康 385
教育培训 338
旅游 272
… …

《轻断食:正在横扫全球的瘦身革命》 麦克尔·莫斯利 咪咪·史宾赛

兴趣标签 有对应兴趣标签的人数
养生健康 784
教育培训 505
旅游 491
时尚美容 305
… …

猜测此属性与阅读偏好强相关。

特征选取

我们分别取微信用户基础属性、公众号阅读兴趣属性、基础属性+阅读兴趣作为特征。

准备数据集

  1. 随机选取 n 本书,找出曾经加书架的用户(采样确保每本书籍用户数相等,且每个用户书架只有 n 本中的一本),获取用户的微信画像属性 x
  2. 将 n 本书编号 1~n
  3. 提取出标签(书籍编号) y 和属性 x,把样本按 6:4 划分成训练集、测试集

模型选择

使用 Spark mllib 提供的 Random Forest 算法。

在该模型中,输入用户画像 x,输出预测书籍标签 y。

选择 Random Forest 的原因有:

  1. 训练结果为决策树,容易解读和实现

  2. 能够处理高维数据,不用做特征选择,适应性强

将数据划分为训练集和测试集,使用训练集训练模型,最后得到随机森林,即多颗决策树。树节点是决策的过程,树叶是决策结果;权衡多颗树的决策,最终得到模型的预测结果。取其中一颗举为例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
例 Tree0:
If (男)
If ( 微信好友 <= 294.0)
If ( n线城市 <= 2.0)
推荐《罗辑思维》
Else ( n线城市 > 2.0)
《看见》
Else ( 微信好友 > 294.0)
If ( n线城市 <= 1.0)
《罗辑思维》
Else ( n线城市 > 1.0)
《罗辑思维》
Else (女)
If ( 微信好友 <= 417.0)
If ( 微信好友 <= 230.0)
《如果你曾奋不顾身爱上一个人》
Else ( 微信好友 > 230.0)
《如果你曾奋不顾身爱上一个人》
Else ( 微信好友 > 417.0)
If ( 微信好友 <= 1150.0)
《如果你曾奋不顾身爱上一个人》
Else ( 微信好友 > 1150.0)
《罗辑思维》

训练模型

将数据集按 6:4 分为训练集、测试集。

使用训练集训练模型,得到模型参数w。

测试模型

在测试集上,使用模型和参数 w,验证准确率。

验证模型

实验数据集来自加书架的用户属性,假设『微信读书用户加书架的行为,可以反映其阅读偏好』,模型准确率高,可以推论微信画像与微信读书用户阅读偏好相关。

然而,我们希望这个推荐算法能够用与运营活动的书籍推荐,因此需要进行 A/B 测试,来验证随机森林推荐算法的有效性。

效果评估

在 4 本书选择 1 本进行推荐的任务中:

(随机推荐准确率的期望是25%)

特征 训练集 测试集 测试集准确率
微信基础属性 7907 5432 39.96%
公众号阅读兴趣 8038 5301 32.35%
微信基础属性+公众号阅读兴趣 8025 5314 38.85%

在 10 本书选择 1 本进行推荐的任务中:

(随机推荐准确率的期望是 10%)

特征 训练集 测试集 测试集准确率
微信基础属性 19175 12662 19.00%
公众号阅读兴趣 19126 12711 16.38%
微信基础属性+公众号阅读兴趣 19137 12700 19.00%

在 20 本书选择 1 本进行推荐的任务中:

(随机推荐准确率的期望是 5%)

特征 训练集 测试集 测试集准确率
微信基础属性 34131 23112 11.04%
公众号阅读兴趣 34275 22968 9.13%
微信基础属性+公众号阅读兴趣 34319 22924 10.78%

在 50 本书选择 1 本进行推荐的任务中:

(随机推荐准确率的期望是 2%)

特征 训练集 测试集 测试集准确率
微信基础属性 79575 52704 5.02%
公众号阅读兴趣 79424 52855 4.66%
微信基础属性+公众号阅读兴趣 79188 53091 5.30%

在 100 本书选择 1 本进行推荐的任务中:

(随机推荐准确率的期望是 1%)

特征 训练集 测试集 测试集准确率
微信基础属性 127688 85649 2.86%
公众号阅读兴趣 128132 85205 2.54%
微信基础属性+公众号阅读兴趣 127927 85410 3.05%

在 200 本书选择 1 本进行推荐的任务中:

(随机推荐准确率的期望是 0.5%)

特征 训练集 测试集 测试集准确率
微信基础属性 146692 97783 2.81%
公众号阅读兴趣 146142 98333 2.62%
微信基础属性+公众号阅读兴趣 146641 97834 2.94%

总结

根据结果,我们发现微信基础属性与微信读书用户阅读偏好的相关性最高,尤其是年龄、性别、n 线城市、好友数等属性。

其次,用户公众号阅读兴趣与推荐书籍相关,但没有基础属性的显著,可作为推荐策略的考量因素。

在 n 本书推荐 1 本的任务中,结合微信用户画像的先验信息推荐,与随机推荐相比,准确率增加约一倍。

因此,对于微信读书的冷启动用户,运营侧可以考虑结合微信用户画像进行运营活动的书籍推荐(人为设定推荐规则或者使用随机森林),以提高转化率。应用随机森林进行推荐时,需做 A/B 测试以验证模型的有效性。

引用

TODO

本文有帮助?