美文网首页墨海
实战_资讯推荐场景中多路召回实践01

实战_资讯推荐场景中多路召回实践01

作者: Nefelibatas | 来源:发表于2022-02-07 16:32 被阅读0次

召回服务框架

03.png

任务调度平台

主流的任务调度框架airflow

airflow是一款开源的,分布式任务调度框架,它将一个具有上下级依赖关系的工作流,组装成一个有向无环图

特点:

  • 分布式任务调度:允许一个工作流的task在多台worker上同时执行

  • 可构建任务依赖:以有向无环图的方式构建任务依赖关系(前面任务执行完后面任务也可以继续执行)

  • task原子性:工作流上每个task都是原子可重试的,一个工作流某个环节的task失败

可自动或手动进行重试,不必从头开始任务

:任务调度平台通常是大数据部或者算法工程组的人联合开发,涉及数据,平台,算法,底层存储,监控等

在GDags中构有向无环图

image-20220123204542820.png image-20220123204604976.png

一个dag表示一个定时的工作流,一个工作流包含多个节点

image-20220123205013312.png

示例:

基于item_cf的任务调度

涉及任务

  • 抽取日志数据任务

  • Item_cf计算任务

任务必须先抽取数据,后计算存在先后依赖关系,因此必须设置这两个task依赖关系

向量服务平台

向量服务平台,也称向量检索服务, 其解决的问题是从海量向量数据中高精度、高性能的召回出与目标最相似的数据。

向量服务平台的底层架构有多种,

  1. 基于量化的索引

  2. 基于的索引

  3. 基于的索引

  4. 基于哈希的索引

主要介绍基于树的索引,工业落地使用最多

方法原理:(搜索树思想)用超平面把高维空间分割成多个子空间,并把这些子空间以树型结构存储的索引方式

算法实现:ANN(Approximate Nearest Neighbor)搜索算法, faiss, Annoy, balltree

架构

image-20220123205331990.png

示例:

matrix_cf 获得:

user_embedding

item_embedding

存入向量库中并加载到向量检索中提供服务

ANN算法-Balltree

1. 构建

选择一个距离当前圆心最远的观测点i1,和距离i1最远的观测点 i2,将圆中所有离这两个点最近的观测点都赋给这两个簇的中心,然后计算每一个簇的中心点和包含所有其所属观测点的最小半径。(欧氏距离)

不断递归

image-20220123205520202.png

特征服务

特征服务实际为一个存储用户特征和物料特征的存储平台

特点:

1. 存储的特征,包含:原始型和处理型

2. 存储的特征是实时更新的

3. 对外提供服务是并发、高效、安全的

4.分布式、可扩展性

示例:

用户点击历史特征

hist:[item2, item1] 存放在server nodes中

当用户点击了item3,这个时候,特征实时更新,worker nodes处理后pull到server nodes

Hist:[item3,item2, item1] item3放前面方便获取

image-20220123210321345.png

redis存储平台

redis存储平台是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件

特点:

1. C/S架构,即Client和Server

2. 可分布式、可扩展性、高吞吐量

Client和Server可以是在一台机器上的,也可以不在

image-20220123210505404.png

召回服务开发

item_cf召回

ItemCF的主要思想是:给用户推荐之前喜欢物品的相似物品。模式:I2I

基于物品的协同过滤算法主要有三步:

  • 计算物品之间的相似度

  • 计算推荐结果

  • 惩罚热门物品/加入关联规则

物品相似度的计算公式:

w_{ij}=\frac{|N(i)∩N(j)|}{|N(i)|}

分子部分表示的是对物品i和物品j共同产生过行为的用户个数。

分母表示的是对物品i产生过行为的个数。

一旦物品j被所有用户所点击即热门物品,无论物品i如何整个w_ij都为1,所以需要对热门物品进行惩罚。

w_{ij}=\frac{|N(i)∩N(j)|}{\sqrt{|N(i)||N(j)|}}

当j很大时,整个分母对应都会变大,w_ij变小。

因为不活跃用户对物品相似度的贡献应该大于活跃用户对物品相似度的贡献,所以应该降低活跃用户对相似度的贡献。

所以应该降低活跃用户对相似度计算的权重,即对活跃用户进行惩罚,改进为:

w_{ij}=\frac{\sum_{u∈N(i)∩N(j)}\frac{1}{log(1+N(u))}}{\sqrt{|N(i)||N(j)|}}

然后我们会基于一定的规则对这个相似度权重进行加权

  • 考虑时间因素, 两篇资讯点击时间相近权重大,相远权重小

  • 考虑资讯自身类别因素,两篇资讯的类别的权重,其中类别相同权重大

user_cf召回

UserCF的主要思想是:给用户推荐与其相似的用户喜欢的的物品。

模式:u2u2i【从用户到用户找物品】

基于用户的协同过滤算法主要有三步:

  • 计算用户之间的相似度

  • 计算推荐结果

  • 惩罚热门物品/加入关联规则

用户相似度的计算公式:

w_{ij}=\frac{\sum_{u∈N(i)∩N(j)}\frac{1}{log(1+N(u))}}{\sqrt{|N(i)||N(j)|}}

区别

ItemCF:与该物品有过行为的用户集合

UserCF:与该用户有过行为的物品

FM算法

FM召回

FM英文全称是“Factorization Machine”,简称FM模型,是一种基于矩阵分解的机器学习算法。

是为了解决大规模稀疏矩阵中特征组合问题

基于FM召回的算法主要有三步:

  • 初始化线性部分LR的权重W和交叉部分的隐向量权重V

  • 基于计算公式, 分别求出线性部分的输出和交叉部分的输出

  • 综合两种的输出获得预估值,然后交叉熵loss,梯度更新权重W和V

最终获得每个特征的隐向量权重V

取矩阵上半部分

image-20220124161600383.png image-20220124161659596.png

代码基于step4开发。

相关文章

  • 实战_资讯推荐场景中多路召回实践01

    召回服务框架 任务调度平台 主流的任务调度框架airflow airflow是一款开源的,分布式任务调度框架,它将...

  • 实战_资讯推荐场景中多路召回实践02

    资讯多路召回开发 多路召回部署模块 架构: feature_server对应架构流程特征服务中的item特征与us...

  • 实战_资讯场景中重排策略实践

    推荐系统的重排服务 重排服务(机制服务) 重排序不是必须的 在排序阶段,通过把用户特征,item特征和上下文特征放...

  • 新闻推荐03——多路召回

    多路召回 所谓的“多路召回”策略,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一...

  • 多路召回

    多路召回 所谓的“多路召回”策略,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合在一...

  • 天池新闻推荐比赛-多路召回

    一、多路召回 所谓的“多路召回”策略,就是指采用不同的策略、特征或简单模型,分别召回一部分候选集,然后把候选集混合...

  • 召回

    1.推荐系统的召回2.如何理解推荐系统召回模型中的召回3.推荐系统从0到1[二]:个性化召回4.推荐系统二---召...

  • AI面试第七弹(模型部署相关知识)

    一、离线模型(Offline) 离线模型存在于很多业务场景中,其中最常见的业务场景就是用在推荐系统的召回阶段,由于...

  • 2019-12-25推荐总结

    第一个问题:我们知道在个性化推荐系统里,第一个环节一般是召回阶段,而召回阶段工业界目前常规的做法是多路召回,每一路...

  • 第十章 数据推荐算法——推荐算法与效果评价

    10.5 推荐算法与效果评价 不同应用场景中推荐算法的评估方式不一定相同,主要集中在五个方面: 1、准确率、召回率...

网友评论

    本文标题:实战_资讯推荐场景中多路召回实践01

    本文链接:https://www.haomeiwen.com/subject/otbmkrtx.html