推荐系统架构浅析

数据大师
数据大师
数据大师
292
文章
0
评论
2021-08-2510:50:05 评论 26 1688字
摘要

推荐系统的目标是更有效率的连接用户和内容,主要由数据、算法、架构三个部分组成。

 

一、结构

  • 数据提供信息。数据决定算法的上限
  • 算法提供逻辑。算法一方面从数据中挖掘可用的信息,另一方面提供逻辑,用于根据新数据的特征进行推荐
  • 架构执行策略。架构保证推荐过程的自动化进行,包含接受用户请求、收集、处理、存储用户数据,执行推荐算法、返回推荐结果等。架构保证系统的实时化、自动化执行。

二、整体框架

 

主要包括以下几个模块: - 协议调度: 请求的发送和结果的回传。 - 推荐算法:按照一定逻辑为用户产生最终的推荐结果。 - 消息队列:数据的上报和处理。 - 存储单元:不同的数据类型会存储在不同的存储单元中,例如K-V类型存储在MySQL中,实时性数据存储在redis中,需要进行统计的数据存储在TDW中。

三、用户画像

3.1 用户标签

标签是对用户数据的降维抽象,得到更具备代表性的特征。

3.2 用户画像的分类

 

 

1.原始数据

原始数据包括四个方面 - 用户数据:与用户相关的数据 - 内容数据:用户发表、查看的内容、绑定的关键词、标签等 - 用户行为日志:用户对内容执行的交互操作 - 外部数据:引入用户在其他系统中的数据

2.事实标签

可以分为静态画像和动态画像。 - 静态画像:用户独立于产品场景之外的属性,信息稳定、具有统计意义。 - 动态画像:用户在具体场景中产生的显式行为或隐式行为。 - 显式行为:明确表达出的喜好,例如点赞、分享、关注、正向评分和评论。 - 隐式行为:没有明确表达的喜好,但通过点击、停留时长等形式表现出来。

3.模型标签

模型标签是由事实标签通过加权计算或聚类分析得到,加工后的标签具有更高的信息量和更好的推荐效果。 - 聚类分析:比如将用户分为不同活跃程度的群体等。 - 加权计算:例如将用户的行为与标签进行加权计算,得到每个标签的分数。

四、内容画像

内容画像:对于文字内容进行分析,找到对应的标签和关键词,对于图片和视频内容,还需进行图像和视频处理。 环境画像:推荐进行时的时间、地点、浏览时的上下文也很重要。 推荐内容和场景可以进行如下的划分:

 

五、算法构建

5.1 推荐算法流程

推荐算法的本质是一种在获取用户和内容信息之后,按照一定逻辑给出推荐结果。热度排行是最简单的一种推荐方法,其逻辑就是一个内容被大多数用户喜欢,那么大概率其他用户也会喜欢。但是个性化的推荐使用的是更加复杂、精细的逻辑。 推荐算法主要分为以下几步; - 召回:当用户以及内容量比较大的时候,往往先通过召回策略,将百万量级的内容先缩小到百量级。 - 过滤:对于内容不可重复消费的领域,例如实时性比较强的新闻等,在用户已经曝光和点击后不会再推送到用户面前。 - 精排:对于召回并过滤后的内容进行排序,将百量级的内容并按照顺序推送。 - 混排:为避免内容越推越窄,将精排后的推荐结果进行一定修改,例如控制某一类型的频次。 - 强规则:根据业务规则进行修改,例如在活动时将某些文章置顶。

 

5.2 召回策略

  • 目的:当用户和内容的量级很大时,为了减少计算量,需要对内容进行一次初步的筛选,比如筛选出近一段时间的热门内容,然后在进行推荐。
  • 重要性:召回的内容是精排的基础,如果召回的效果不理想,精排就没有意义。
  • 方法:召回的策略是各种方法的互相补充。
  • 热销找回:将一段时间内的热门内容召回。
  • 协同召回:基于用户和行为的相似性推荐,发现用户潜在的兴趣爱好。
  • 标签召回:根据用户的行为,构建标签,并根据标签召回内容。
  • 时间召回:将一段时间内的最新内容召回,常见于新闻、视频等有时效性的领域。

5.3 精排策略

5.3.1 精排模型

精排模型的不同类别

 

 

精排模型的基本原理

 

 

建立样本

可以将曝光并被点击的样本作为正样本,被曝光但未被点击的样本作为负样本。

特征工程

特征构建的方向主要分为:基础数据、趋势数据、时间数据、交叉数据。

不同交叉方法可以得到不同的参数数量。

 

六、算法衡量标准

  • 硬指标:如推荐内容的点击率,但是唯硬指标论会产生内容低俗化、标题化的情况。
  • 软指标:除点击以外的价值,比如多样性、稳健性等。

End.

作者:叶子新

本文为转载分享,如果涉及作品、版权和其他问题,请联系我们第一时间删除(微信号:lovedata0520)

更多文章前往首页浏览http://www.itongji.cn/

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: