1. 内容画像

概念

对于推荐系统而言,推荐任务主要是进行内容推荐,而对于一个庞大的现有内容库,一个很重要的工作就是将内容进行标签化、类别化等等,这统称为构建内容画像

内容画像中常见的就是对内容进行标签化、类别化,方便内容召回工作,其中很普遍的一类是对文本的内容画像构建,比如新闻推荐。文本内容画像的构建主要是分类、主题、关键词提取

包括内容画像(例如新闻文章的标题、主题、标签等)和环境画像(用户所处交互的上下文环境,例如观看某短视频的时间、地点、浏览过的前后内容、当天已浏览时长等),内容场景可做如下分类:

  • 视频推荐:短视频、长视频、直播
  • 电商推荐
  • 文章推荐:Feeds流、新闻资讯、长文章
  • 社交网络推荐
  • 广告推荐
  • 游戏推荐

技术

通常,通过双向LSTM组合Attention构建的端到端网络模型就可以较好完成目标任务。

1. LDA

可以对文章进行主题提取,属于经典统计学习算法,仍具有一定的用途。

2. RNN(LSTM)

相对于普通RNN,能够缓解梯度消失和梯度下降的问题。

原因:

  • 遗忘门和输入门相连接,使得梯度有两条路径传出 (LSTM中的+号)
  • 利用simgoid函数,

取最后一层、最后一个神经元输出作为终端任务的判别

3. Attention

形式分类:

  1. 从权值分布内容画像和用户画像 - 图1的计算角度。内积(内容画像和用户画像 - 图2,向量必须同维度);全连接(内容画像和用户画像 - 图3#card=math&code=%5Calpha%3Dv%5ET%5Ctanh%20%28w%5ETu%2Bb%29),使两向量同维度,增加复杂度、推荐性);双线性法(内容画像和用户画像 - 图4,通过一个中间矩阵,将两不同维度向量连接起来,将内容画像和用户画像 - 图5分解为两个矩阵,可以认为分别对内容画像和用户画像 - 图6进行了线性变换); 本质上都是做内积
  2. attention q, v, k的角度。
  3. 范围角度
  4. hard, soft

2. 用户画像

0. 用户画像数据来源与分类

原始数据:用户行为日志、用户数据(性别、年龄、设备、注册时间等)、内容数据、外部数据

事实标签:静态画像(用户基本信息:性别、年龄、学历、常住位置等)、动态画像(显式行为:点赞、评论、分享、关注、评分,明确表达的喜好;隐式行为:点击、时长、次数、天数、间隔,未明确标明的喜好)

模型标签:用户内容偏好、用户标签偏好、用户关键词偏好、用户游戏偏好、用户活跃度分层。通常采用聚类分析加权计算

1. 用户画像的内容

用户画像是推荐系统中不可或缺的一部分,但内容并不是很多、也不怎么复杂。

实际上就是一组用户信息的键值对。包括用户基本信息和用户行为信息

1.1 用户基本信息

  • 性别
  • 年龄
  • 地理位置
  • 机型
  • 时间:第一次进入、最后一次使用、活跃时长、累计浏览时长等等

1.2 用户行为信息

根据用户的点击曝光,收集用户行为信息,包括用户点击的分类、关键词、Tag、主题,短期、中期、长期画3像,也就是和内容画像相关的一些信息。

1.3 用户画像生命周期

用户画像可以根据用户行为,按照时间切片进行存储,比如用户看某些分类内容,只在短期内感兴趣,之后便不再感兴趣,按照生命周期可分为:短期、中期和长期

  • 短期画像:3-10小时
  • 中期画像:一周到两周
  • 长期画像:十周到半年

1.4 用户画像的应用

应用:召回、排序、找bad case

2. 用户画像的构建、存储

构建

从简单到复杂

简单的:统计近N天的兴趣Tag的频率或通过tf-idf计算score (初始阶段直接统计频率,等数据量达到一定规模后引入idf)

复杂的:将各个tag针对每个user的权重计算,设计更加复杂

存储

通过MySQL+Redis/Hbase等构建数据库、数据仓库(通常不用Hive,Hive用于离线)

通过kafka等消息队列获取日志从而获取用户兴趣的积累

3. Tag的分数(CTR)计算

3.1 分值设计

基础分值+用户行为的累积

比如:

  • 各个tag的基础分值+uid对于各个tag下的点击、曝光比(c/e)
  • 用户行为可以加上其它更丰富的行为(收藏、点击、评论、分享)

思路:

先验+累积分数+变化率

另外还有 时间+负反馈(隐式、显式)。可以将所有的因素进行线性融合,总体再进行归一化。


3.2 tag分值计算的一般参考

  1. 简单直接,直接按频率
  2. 加上idf等因素
  3. 先计算tag近一段时间的端内点击率与曝光率之比,c/e,再计算其他因素(收藏、评论、分享等)对于该tag的ctr权重影响,W。(将W与c/e进行线性融合

更新流程

长期画像的一般更新流程:

user_image_long_term_update.png

短期画像的一般更新流程:

user_image_short_term_update.png


3.3 tag打分模式:

  1. 千人一面:静态方式,ctr的热度
  2. 千人千面:动态方式,计算量较大
  3. 千人百面:将用户进行聚类、分群(行为+哈希)、对内容分桶

4. 分桶计算文章的Score

通过贝叶斯平滑,在贝叶斯参数参数估计中,下面几个概念非常重要,再次进行回顾:

  • 先验内容画像和用户画像 - 图9#card=math&code=P%28parameter%29)
  • 似然内容画像和用户画像 - 图10#card=math&code=P%28data%7Cparameter%29)
  • 后验内容画像和用户画像 - 图11#card=math&code=P%28parameter%7Cdata%29)
  • 共轭分布:如果后验分布和先验分布属于同类(分布形式相同),则先验分布与后验分布被称为共轭分布,先验分布被称为似然函数的共轭先验,伯努利的共轭先验为Beta分布

初始时先通过最大似然或矩估计,然后不停通过贝叶斯估计进行参数的更新,目前的参数分布为先验,根据加入的数据,计算后验,更新参数;重复更新参数。贝叶斯平滑公式(内容画像和用户画像 - 图12是Beta分布中的参数,内容画像和用户画像 - 图13为点击量,内容画像和用户画像 - 图14为曝光量):

内容画像和用户画像 - 图15

5. 基于用户画像的推荐

  1. 构建用户画像
  2. 建立数据内容倒排
  3. 基于用户短期、中期、长期画像进行推荐