1. 内容画像
概念
对于推荐系统而言,推荐任务主要是进行内容推荐,而对于一个庞大的现有内容库,一个很重要的工作就是将内容进行标签化、类别化等等,这统称为构建内容画像。
内容画像中常见的就是对内容进行标签化、类别化,方便内容召回工作,其中很普遍的一类是对文本的内容画像构建,比如新闻推荐。文本内容画像的构建主要是分类、主题、关键词提取。
包括内容画像(例如新闻文章的标题、主题、标签等)和环境画像(用户所处交互的上下文环境,例如观看某短视频的时间、地点、浏览过的前后内容、当天已浏览时长等),内容场景可做如下分类:
- 视频推荐:短视频、长视频、直播
- 电商推荐
- 文章推荐:Feeds流、新闻资讯、长文章
- 社交网络推荐
- 广告推荐
- 游戏推荐
技术
通常,通过双向LSTM组合Attention构建的端到端网络模型就可以较好完成目标任务。
1. LDA
可以对文章进行主题提取,属于经典统计学习算法,仍具有一定的用途。
2. RNN(LSTM)
相对于普通RNN,能够缓解梯度消失和梯度下降的问题。
原因:
- 遗忘门和输入门相连接,使得梯度有两条路径传出 (LSTM中的+号)
- 利用simgoid函数,
取最后一层、最后一个神经元输出作为终端任务的判别
3. Attention
形式分类:
- 从权值分布
的计算角度。内积(
,向量必须同维度);全连接(
#card=math&code=%5Calpha%3Dv%5ET%5Ctanh%20%28w%5ETu%2Bb%29),使两向量同维度,增加复杂度、推荐性);双线性法(
,通过一个中间矩阵,将两不同维度向量连接起来,将
分解为两个矩阵,可以认为分别对
进行了线性变换); 本质上都是做内积
- attention q, v, k的角度。
- 范围角度
- 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分值计算的一般参考:
- 简单直接,直接按频率
- 加上idf等因素
- 先计算tag近一段时间的端内点击率与曝光率之比,c/e,再计算其他因素(收藏、评论、分享等)对于该tag的ctr权重影响,W。(将W与c/e进行线性融合)
更新流程
长期画像的一般更新流程:
短期画像的一般更新流程:
3.3 tag打分模式:
- 千人一面:静态方式,ctr的热度
- 千人千面:动态方式,计算量较大
- 千人百面:将用户进行聚类、分群(行为+哈希)、对内容分桶
4. 分桶计算文章的Score
通过贝叶斯平滑,在贝叶斯参数参数估计中,下面几个概念非常重要,再次进行回顾:
- 先验:
#card=math&code=P%28parameter%29)
- 似然:
#card=math&code=P%28data%7Cparameter%29)
- 后验:
#card=math&code=P%28parameter%7Cdata%29)
- 共轭分布:如果后验分布和先验分布属于同类(分布形式相同),则先验分布与后验分布被称为共轭分布,先验分布被称为似然函数的共轭先验,伯努利的共轭先验为Beta分布
初始时先通过最大似然或矩估计,然后不停通过贝叶斯估计进行参数的更新,目前的参数分布为先验,根据加入的数据,计算后验,更新参数;重复更新参数。贝叶斯平滑公式(是Beta分布中的参数,
为点击量,
为曝光量):
5. 基于用户画像的推荐
- 构建用户画像
- 建立数据内容倒排
- 基于用户短期、中期、长期画像进行推荐