用户画像简介

2021-05-15 机器学习 推荐系统

# 一、用户画像的分类

# 1.1 显式画像和隐式画像

  • 显式画像:用户基础信息,根据行为分析出的 tag 等;
  • 隐式画像:可以通过各种网络模型(如 Bert + LSTM 对用户的行为序列进行建模),将所有用户信息(tag 等)训练成一个 embedding。

# 1.2 两种画像的对比

  • 隐式画像出现 bad case 无法溯源,而显式画像可控性、解释性较强;
  • 隐式画像可以挖掘出用户隐含兴趣,而显式画像大多需要人为定义规则。

# 二、显式用户画像的内容

# 2.1 用户基本信息

  • 性别
    • 注册时填写
    • 算法预测,根据用户点击行为预测
  • 年龄
    • 注册填写身份信息、手机号,可间接获取用户年龄
    • 算法预测,根据用户点击行为预测
  • 地理位置
    • IP 地址、GPS 定位、常驻地地址、实时 GPS 定位
  • 机型
    • 手机型号、操作系统

# 2.2 用户行为信息

  • 时间
    • 第一次进入时间
    • 最后一次退出时间
    • 用户活跃时长
    • 累积浏览时长
    • 累积播放时长等
  • 活跃度
    • 线性加权,供模型训练筛选
  • 分类、tag、主题、关键词
    • 形式:[xxx: score, ...]

# 三、用户画像生命周期

  • 短期画像:3 ~ 10 小时
  • 中期画像:3 天、1 周
  • 长期画像:5 周、10 周

为什么要按时间区分画像?

一个美食爱好者,可能在很长一段时间内,看到不反感的美食内容都会点进去;但对于体育分类,可能只会在世界杯、奥运会期间才会点击观看。

通过设置长短期画像,能够尽快更新用户兴趣,使推荐更准确。

# 四、画像更新流程

# 4.1 长、中期画像

  1. 根据 uid 查找最近 n 天日志
  2. 统计该用户点击或曝光的 item 信息
  3. 计算各个 tag 的分值
  4. 形成近期画像
  5. 按规定的时间单位对长、中期画像进行时间切片
  6. 合并上一步获取的画像切片与近期画像,形成更新后画像

举例:按周进行切片,长期画像包括 5 周用户的行为,使用长期画像的后四周与近期画像(1 周)的数据进行融合,避免完全重新计算过于耗时。

# 4.2 短期画像

  1. 根据 uid 读取短期时间窗口内日志
  2. 计算各个 tag 的分值生成更新后短期画像

# 4.3 用户 tag 分数计算

  1. CTR:贝叶斯平滑,威尔逊置信 CTR
  2. 先验分数:根据 APP 情况给 tag 不同的 base 分数
  3. 累积分数:点击、曝光、点赞、收藏等加权(弊端:获取有延迟)
  4. 变化率
  5. 时间衰减
  6. 观看时长
  7. 负反馈:点击 x,标明不感兴趣、反感等,评论是负面情感

所有因素进行线性融合,得到总体 score,再进行归一化,得到用户 tag 分数。

此外某些 tag 可能天生带属性:

  • 举例
    • 奥运会:短时效(快速消费型)
    • 美食:长时效(细水长流型)
  • 应用
    • 短时效 tag 的 score 上升、衰减速度更快
    • 过一段时间对用户曾经感兴趣的 tag 试探
  • 弊端
    • 简单统计可能不准确,需要耗费人力根据 tag 内容设置属性

# 五、基于用户画像的推荐

# 5.1 建立内容分桶倒排

每个 tag 下有若干内容,对每个内容进行打分,按分值倒排存储;当召回某个 tag 下的内容时,直接返回该 tag 下的 TopN,并且下次召回时会进行过滤。

  1. 千人一面:按端内整体用户行为计算,变动不大
  2. 千人千面:个性化排序,embedding 召回
    • 问题:计算量过大(用户数 x 画像中的 tag 数)
  3. 折中方案(千人百面):聚类对用户分群
    • 显式画像 tag 分数生成向量,进行 k-means
    • 隐式画像 embedding 聚类
    • 基于哈希
    • 基于用户行为序列

参考:基于 embedding 的召回 (opens new window)

# 5.2 基于长中短期画像推荐

  • 从不同生命周期的画像中抽取用户感兴趣的分类、关键词下面的内容,进行推荐
  • 长、中、短期画像召回跳数可以通过模型训练进行预测,也可直接通过规则指定
Last Updated: 2023-01-28 4:31:25