墨海

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

2022-02-07  本文已影响0人  Nefelibatas

召回服务框架

03.png

任务调度平台

主流的任务调度框架airflow

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

特点:

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

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

在GDags中构有向无环图

image-20220123204542820.png image-20220123204604976.png

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

image-20220123205013312.png

示例:

基于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召回的算法主要有三步:

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

取矩阵上半部分

image-20220124161600383.png image-20220124161659596.png

代码基于step4开发。

上一篇 下一篇

猜你喜欢

热点阅读