工业界常用的推荐系统模型有哪些?

2024-03-17 03:32

本文主要是介绍工业界常用的推荐系统模型有哪些?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近收到很多同学的提问,目前工业界常用的推荐系统模型有哪些?CTR和推荐算法有什么本质区别?推荐系统中如何做 User Embedding?橙子邀请了淘系技术部的豆苗同学对以上问题进行解答,也欢迎大家一起交流。


Q:工业界推荐系统采用什么架构?


豆苗:

一般来说,工业界推荐系统采用召回->排序两阶段的架构。

召回阶段从海量内容池中召回数千条内容生成候选集,排序阶段利用用户、内容侧丰富的特征、上下文信息和复杂的模型对候选集中的内容进行打分排序,最终为用户返回数十条内容。

本人主要工作在召回侧,所以下面简单列出召回相关的策略和模型。

  召回环节优化通常经历三个阶段

基础个性化召回->深度个性化召回->多目标多策略召回

  • 基础个性化召回

基于统计和传统模型(如swing、userCF、itemCF等)产出各种x2i数据,进行以i2i为主,c2i,、b2i补充,热门兜底的多路召回,各召回链路可单独优化。

  • 深度个性化召回

将user、item转化为向量,通过向量检索技术召回topk,变“精确匹配”为“模糊查找”,提升召回的扩展性。首先需要尝试的是FM,可以参考:张俊林的《推荐系统召回四模型之:全能的FM模型》

阅读地址:

https://zhuanlan.zhihu.com/p/58160982

还有基于用户行为序列、基于多兴趣拆分的、基于graph embedding和和基于知识图谱融合的。

用户行为序列

这类模型代表性的方法是SASRec,这是18年的发表在ICDM上的一篇针对召回的工作,主要是借助transformer来对用户的历史行为序列建模,提取更为有价值的信息。整个模型基本上是套在transformer这个框架下的,所以有position embedding、block的stacking等等,需要注意的是作者也有作一些调整,比如只有当j > i 的时候Qi 和 kj 才会进行相关性的计算,并且采用非固定的Position embedding。

阅读地址:

https://cseweb.ucsd.edu/~jmcauley/pdfs/icdm18.pdf

用户多兴趣拆分

这类模型核心的思想就是认为单一的向量无法充分表征用户,从而采用多个向量表征用户的多峰兴趣,最为典型的就是MIND,它利用动态路由技术,对用户兴趣进行拆分。模型的输入包含三部分:用户属性特征、用户行为特征(例如点击过的商品/内容)和label特征。首先,所有的id类特征都经过embedding层,其中对于用户行为特征对应的embedding向量还会进行average pooling。接着,传递给multi-Interest extract layer,生成的interest capsules。最后将interest capsules与用户属性特征的embedding concate起来经过几层全连接网络,得到用户多个兴趣表达向量。值得注意的是,在模型的最后有设计一个label-aware attention层,用以针对每个用户从多个兴趣中挑选出与其下一次点击行为最相关的兴趣, 送入到后续的训练。

阅读地址:

https://arxiv.org/abs/1904.08030v1

其他相关的多兴趣拆分的方法有:

基于注意力机制

阅读地址:

https://dl.acm.org/doi/abs/10.1145/3394486.3403344

https://dl.acm.org/doi/abs/10.1145/3397271.3401088

基于层次凝聚聚类

阅读地址:

https://dl.acm.org/doi/10.1145/3394486.3403280

Graph Embedding

这类模型是近期推荐系统召回环节较为热门的研究方法,并且也在线上拿到了收益。例如EGES、PinSAGE、PinnerSAGE等。

  • 多目标多策略召回


在以点击率为优化目标的基础上,尝试优化发现性、成交率等其他目标。以及将积累的各种召回模型,根据业务实际需求实行多策略召回。

Q:CTR和推荐算法有什么本质区别?


豆苗:

一般来说,一个完整的推荐算法包含召回、粗排、精排和重排这四个环节,而ctr预估只是在排序时的一个重要参考依据。

借用一张经典的图来抛下观点:

  召回有没有必要?——有必要!

召回环节的设定是对推荐算法效率和效果综合考虑的产物。

它的任务是从全网的item池中筛选与用户相关的item集合,其目标是拉高推荐算法的上限、提高用户粘性,守住相关性的下界,保障用户拥有一个良好的体验。基于上述两点,我们希望召回具备处理数据量大、模型够快的特点。

因而,这也限定了它不能用太多的特征和太复杂的模型。

主流的召回方法主要有两大类:

  • 基于统计的启发式召回

如协同过滤、swing i2i,利用item 共现性,进行相关召回。

  • 基于深度学习的向量召回方法

如MIND、DSSM、GNN等将user、item表示成向量,利用设定好的距离度量方法,通过向量检索召回top-K item。为了满足不同的业务需求,我们通常会设置多路召回,有针对user冷启动的、针对item冷启动的、针对个性化的等在守住相关性的同时完成其他的业务目标。

所以说,在现有的条件下,舍弃召回环节,直接排序未必是一件容易的事。(此处,仍可参考张俊林的《推荐系统召回四模型之:全能的FM模型》

阅读地址:

https://zhuanlan.zhihu.com/p/58160982

  推荐系统仅有ctr预估打分排序就够了吗?——不够!

首先,对于新的user、item,ctr模型预估未必足够准确,我们需要另外的策略机制去解决冷启动。

其次,把ctr分高的item展示给用户,用户就买账吗?一直看同类型的item用户很快会产生疲劳感。因此根据业务场景的不同,我们有时还要考虑item的多样性,例如通过用MMR、DPP等手段去平衡好相关性和多样性。

最后,实际业务场景中,推荐算法是个多目标优化的任务,除了考虑ctr,还需要考虑停留时长、互动率等指标。

最后总结下,召回和排序两个环节各司其职。

虽然排序,特别是精排,处于整个推荐算法链条的最后一环,方便直接对业务指标发力,加之候选集较小,可以使用复杂模型,如各种NN,各种Attention。而召回处于整个推荐链路的前端,其结果经过粗排、精排、重排的筛选,最终作用于业务指标时,影响力已经大大减弱了,但是召回决定了排序效果的上限,是值得我们好好研究的。


Q:推荐系统中如何做 User Embedding?



豆苗:

推荐系统的主要任务是预测实体间会不会存在某种关系。在大部分以用户为主导的推荐系统中,一般会存在两类实体:user和item,相应的就存在两种实体对:user-user和user-item。

user-user间关系:社交关系、行为相似、兴趣相似等

user-item间关系:点击、收藏、加购、点赞、评论等

针对预测关系的不同,首先要构建描述实体间对应关系的训练数据,其次是选择合适的embedding模型。

常用的embedding模型有:

  传统的MF模型

通过对user-item交互矩阵进行分解,从而获取user和item的embedding。代表性的方法有biasSVD、SVD++、PMF、NMF等,MF模型的优势是实现简单、可扩展性强,预测精度也比较好,但是训练速度慢。具体可参考:张小磊的《推荐系统之矩阵分解家族》

阅读地址:

https://zhuanlan.zhihu.com/p/35262187

  端到端DNN-embedding模型

模型中接入embedding层,通过与目标loss联合训练,得到embedding。例如DSSM、youtube双塔结构、NCF等。

  Graph embedding模型

学习node或entire(sub) graph的低维embedding,使得embedding间的关系能够反映原始网络的结构信息。将user和item视为网络中的node,通过node embeding技术得到user/item-embedding。

  浅层模型

在由item-item组成的网络中进行随机游走,产生item序列库。将item序列库当做NLP中语料库作为训练样本输入word2vec进行训练,得到item的embedding。例如:DeepWalk、Node2vec、EGES。具体可参考王喆的《深度学习中不得不学的Graph Embedding方法》

阅读地址:

https://zhuanlan.zhihu.com/p/64200072

  深层模型

目前广泛使用的方法是Graph Convolutional Networks(GCN)。GCN将卷积从图像和NLP领域拓展到Graph Embedding,每个节点单独encode,但encode的时候,会利用卷积操作来汇聚邻域节点的属性信息,并叠加多层网络,形成节点的embedding表示。相比较于浅层模型,卷积核参数或网络的参数是所有节点之间共享的,因此能够有效减少参数量,同时能够泛化到新的节点。例如:GraphSAGE、GAT、NGCF、LightGCN等。更多论文可参考:

阅读地址:

https://github.com/thunlp/GNNPapers

通常情况下,user和item处在相互对等的位置。

所以在建模user-user关系得到user embedding的任务中可尝试将item-item的建模模型迁移过来;在建模user-item关系得到user embedding的任务中,可尝试端到端的双塔模型或异构网络表示模型。

????橙子说

大家还有什么话题想要了解,欢迎评论区留言,我们下期见~

✿  拓展阅读

作者|豆苗

编辑|橙子君

出品|阿里巴巴新零售淘系技术

这篇关于工业界常用的推荐系统模型有哪些?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/817665

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

大模型研发全揭秘:客服工单数据标注的完整攻略

在人工智能(AI)领域,数据标注是模型训练过程中至关重要的一步。无论你是新手还是有经验的从业者,掌握数据标注的技术细节和常见问题的解决方案都能为你的AI项目增添不少价值。在电信运营商的客服系统中,工单数据是客户问题和解决方案的重要记录。通过对这些工单数据进行有效标注,不仅能够帮助提升客服自动化系统的智能化水平,还能优化客户服务流程,提高客户满意度。本文将详细介绍如何在电信运营商客服工单的背景下进行

不懂推荐算法也能设计推荐系统

本文以商业化应用推荐为例,告诉我们不懂推荐算法的产品,也能从产品侧出发, 设计出一款不错的推荐系统。 相信很多新手产品,看到算法二字,多是懵圈的。 什么排序算法、最短路径等都是相对传统的算法(注:传统是指科班出身的产品都会接触过)。但对于推荐算法,多数产品对着网上搜到的资源,都会无从下手。特别当某些推荐算法 和 “AI”扯上关系后,更是加大了理解的难度。 但,不了解推荐算法,就无法做推荐系

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

Andrej Karpathy最新采访:认知核心模型10亿参数就够了,AI会打破教育不公的僵局

夕小瑶科技说 原创  作者 | 海野 AI圈子的红人,AI大神Andrej Karpathy,曾是OpenAI联合创始人之一,特斯拉AI总监。上一次的动态是官宣创办一家名为 Eureka Labs 的人工智能+教育公司 ,宣布将长期致力于AI原生教育。 近日,Andrej Karpathy接受了No Priors(投资博客)的采访,与硅谷知名投资人 Sara Guo 和 Elad G

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听