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

时间:2022-05-30
本文章向大家介绍微信读书冷启动用户书籍推荐初探:一个借助微信用户画像的方法,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

引言

微信读书 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. 能够处理高维数据,不用做特征选择,适应性强

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

例 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