推荐类比赛小结 (1)

推荐系统细分四阶段:召回 + 粗排 + 精排 + ReRanker

召回:待计算的候选集合大,计算速度快,模型简单,特征较少,尽量让用户感兴趣的物品在这个阶段能够被快速召回,即保证相关物品的召回率。常用的有多路召回,embedding向量召回

精排:首要目标是得到精准的排序结果。需要处理的物品数量少,可以利用较多的特征,使用比较复杂的模型

重排:为了避免排序阶段的结果趋于同质化,让用户有更好的体验,这里对排序的结果进行多样化考虑,提高用户的使用体验

协同过滤

1.用户协同过滤(User - CF)

相似的用户可能喜欢相同物品

核心:构建User - User相似矩阵

2.物品协同过滤(Item - CF)

相似的物品可能被同个用户喜欢

核心:构建Item - Item相似矩阵

Item - CF Baseline

1.实现构建Item - Item相似度矩阵的函数

根据用户session数据构建Item - Item共现矩阵

根据共现矩阵输出相似度矩阵

2.实现根据Item - Item相似度矩阵推荐Top - k函数

寻找和Session内所有item相似的item,推荐Top - k相似的item

如果某个Session内无法推荐出Top - k个item,则剩下的名额用最流行的item补齐

一.召回算法

1.概述

召回模块决定了整个系统最终表现的天花板

核心特点:算法结构简单,计算效率高,准确率不需要太高,每一种召回算法都会针对性解决某一类问题

2.分类

①基于规则:最热门的商品召回,地域召回,兴趣标签召回

②基于协同过滤:基于用户,基于商品

③向量召回:基于内容理解,基于用户行为序列,基于多兴趣

3.向量召回核心思路

I2I:计算item - item相似度,用于相似推荐,相关推荐,关联推荐

        核心是计算item - item相似度矩阵

        item - item相似度矩阵可以通过统计的方法

        item - item相似度可以通过内容理解来生产item向量,通过向量相似度来度量

        item - item相似度可以通过图表示学习来生产item向量,通过向量相似度来度量

U2I:基于矩阵分解,直接给用户推荐item

         输入User特征和Item特征,直接对齐User与Item的向量特征

         通过User的历史序列提取User的向量表征,然后和Item的表征对齐

         通过User的历史序列提取User的多兴趣向量表征,然后和Item的表征对齐

U2U2I:基于用户的协同过滤,先找相似用户,再推荐相似用户喜欢的item

U2I2I:基于物品的协同过滤,先统计用户喜爱的item,再推荐他喜欢的item

U2TAG2I:基于标签偏好推荐,先统计用户偏好的tag,然后匹配所有的item;其中tag一般是item的标签,分类,关键词等

二.多兴趣召回算法

1.要素

多兴趣提取模块(输入序列,输出用户多兴趣表征)

训练时怎么利用多兴趣表征进行loss计算

模型推理的时候是怎么操作的,怎么利用多兴趣表征召回最终item list

2.B2I Dynamic Routing

动态兴趣个数计算

Randomly initialized routing logits

3.Label - aware Attention Layer

通过attention计算出各个兴趣向量对目标item的权重,用于将多兴趣向量融合为用户向量其中p为可调节的参数

p取无穷大的时候收敛最快

三.排序算法

1.简介

对召回阶段所召回的结果进行进一步筛选

模型通常更复杂,使用的特征更复杂

输入为:user信息以及召回item列表

输出为:排序的item列表

Pointwise:对单样本进行打分,做分类或者回归,典型代表有逻辑回归和XGBoost

Pairwise:考虑两两样本间的偏序关系,典型的代表有RankSVM,LambdaMart

Listwise:将排序整体作为优化目标,通过预测分布和真实排序的分布差距来优化模型,典型代表是ListNet

2.Pointwise排序算法分类

核心:输入user,item信息,输出user对item的偏好概率,为一个二分类问题

①机器学习

在比赛中比较有效,打算需要大量特征工程,需要大量人工尝试

实际业务无法很好的支持

实际特务中对实时数据的每一个特征都需要相应的系统开发支持,难以支撑比赛中搞的特征工程方案

常见方法:LR,Lightgbm,GBDT + LR

②基于特征交叉的模型

特征交叉一般指的是对离散特征之间的交叉

重点关注的是离散特征之间的信息建模

常见方法:Wide&Deep,FM,DeepFM

③基于用户历史序列的模型

更加关注用户的历史行为序列

一般使用一些时序模型来提取用户序列的特征

与序列召回的核心区别是:这里对User的序列特征与Item的特征有着更为复杂的交互形式,而不是向序列召回那样简单的计算向量相似度

常见方法:DIN,DIEN,BST

④基于订单检索

主要关注和预估的订单相似的历史订单信息

通常分为两步:根据待预估订单检索出历史中最相似的topk订单

                         融合历史订单信息进行待预估订单的预估

常见方法:UBR4CTR,RITM

四.多任务算法

1.简介

为什么要有多任务模型?

核心任务:提高用户体验

优化单一目标可能无法直接提高用户体验

单目标优化存在偏差(优化点击率 / 购买率 / 完播率 ...)

多任务建模可以更大程度优化用户体验

为什么多任务模型有效?

隐式数据增强:多个目标包含不同信息,同时优化多目标可以降低模型在某一目标上的过拟合风险,变相相当于一个数据增强

1 + 1 > 2:多个目标单独优化的时候没法学习到多个目标之间的关联,通过多任务模型可以利用多个目标之间的关联信息对每一个目标进行更好的建模

2.MMOE模型介绍

Shared - Bottom

通过共享浅层特征,然后针对不同task使用简单的Tower层进行建模

在生成浅层共享特征的时候,可以借鉴参考经典rank模型中的特征提取方法,例如:FM,BiLinear

一般的Tower层都选取简单的MLP层

通过浅层模型参数共享,对目标任务关联度高的情况下学习效果较好

学习的目标之间关联度较低的时候,其建模效果往往不佳

OMOE

Expert:网络结构相同的,内部参数不同的用于提取输入数据特征的模块

MOE层:通过Gate门控机制,给多个expert生产的特征进行加权求和,得到最终的特征

多个Expert的设计可以从多个角度提取输入信息,获取更丰富的信息

相较于Shared - Bottom增加了类似Attention的用于提取特征的模块

MMOE

使用MOE层提取输入数据的多维度信息

对每一个优化目标都增加一组门控网络来对不同优化目标学习出不同的Expert融合的权重信息

Multi - Gate机制可以针对不同的优化目标选择不同的Expert信息进行建模,可以有效的处理学习目标之间相关性不高的问题

五.知识图谱

1.简介

由实体(节点)和关系(不同类型的边)组成的多关系图

每条边都表示为形式(头实体,关系,尾实体)的三个部分,也称为事实

2.翻译距离模型

知识图谱这类三元组的底层符号特性通常使KGs很难操作

我们需要学习,对齐(头实体,关系,尾实体)的向量表征

关键:学习到知识图谱内部向量表征信息

3.MKR

MKR利用知识图谱信息来丰富Item信息,进而解决用户行为稀疏和冷启动的问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值