关于人工智能:推荐系统三粗排算法常用模型汇总集合选择和精准预估技术发展历史向量內积WideDeep等模型以及前沿技术

31次阅读

共计 5481 个字符,预计需要花费 14 分钟才能阅读完成。

1. 前言:召回排序流程策略算法简介

举荐可分为以下四个流程,别离是召回、粗排、精排以及重排:

  1. 召回是源头,在某种意义上决定着整个举荐的天花板;
  2. 粗排是初筛,个别不会上简单模型;
  3. 精排是整个举荐环节的重中之重,在特色和模型上都会做的比较复杂;
  4. 重排,个别是做打散或满足业务经营的特定强插需要,同样不会应用简单模型;
  • 召回层:召回解决的是从海量候选 item 中召回千级别的 item 问题

    • 统计类,热度,LBS;
    • 协同过滤类,UserCF、ItemCF;
    • U2T2I,如基于 user tag 召回;
    • I2I 类,如 Embedding(Word2Vec、FastText),GraphEmbedding(Node2Vec、DeepWalk、EGES);
    • U2I 类,如 DSSM、YouTube DNN、Sentence Bert;
  • 模型类:模型类的模式是将用户和 item 别离映射到一个向量空间,而后用向量召回,这类有 itemcf,usercf,embedding(word2vec),Graph embedding(node2vec 等),DNN(如 DSSM 双塔召回,YouTubeDNN 等),RNN(预测下一个点击的 item 失去用户 emb 和 item emb);向量检索能够用 Annoy(基于 LSH),Faiss(基于矢量量化)。此外还见过用逻辑回归搞个预估模型,把权重大的穿插特色拿进去构建索引做召回
  • 排序策略,learning to rank 流程三大模式(pointwise、pairwise、listwise),次要是特色工程和 CTR 模型预估;

    • 粗排层:实质上跟精排相似,只是特色和模型复杂度上会精简,此外也有将精排模型通过蒸馏失去简化版模型来做粗排

      • 常见的特色开掘(user、item、context,以及互相穿插);
    • 精排层:精排解决的是从千级别 item 到几十这个级别的问题

      • CTR 预估:lr,gbdt,fm 及其变种(fm 是一个工程团队不太强又对算法精度有肯定要求时比拟好的抉择),widedeep,deepfm,NCF 各种穿插,DIN,BERT,RNN
      • 多指标:MOE,MMOE,MTL(多任务学习)
      • 打分公式交融: 随机搜寻,CEM(性价比比拟高的办法),在线贝叶斯优化(高斯过程),带模型 CEM,强化学习等
  • 重排层:重排层解决的是展现列表总体最优,模型有 MMR,DPP,RNN 系列(参考阿里的 globalrerank 系列)
  • 展现层

    • 举荐理由:统计规定、行为规定、抽取式(个别从评论和内容中抽取)、生成式;排序能够用汤普森采样(简略无效),交融到精排模型排等等
    • 首图优选:CNN 抽特色,汤普森采样
  • 摸索与利用:随机策略(简略无效),汤普森采样,bandit,强化学习(Q-Learning、DQN)等
  • 产品层:交互式举荐、分 tab、多种类型物料交融

2. 粗排

在搜寻、举荐、广告等须要进行大规模排序的场景,级联排序架构失去了十分宽泛的利用。以在线广告零碎为例,按程序个别蕴含召回、粗排、精排、重排等模块。粗排在召回和精排之间,个别须要从上万个广告汇合中抉择出几百个合乎后链路指标的候选广告,并送给前面的精排模块。粗排有很严格的工夫要求,个别须要在 10~20ms 内实现打分。在如此微小的打重量以及如此严格的 RT 需要下,粗排是如何均衡算力、RT 以及最初的打分成果呢?

2.1 粗排的倒退历史

粗排和精排有两点不同:

  • 算力和 RT 的束缚更严格:粗排的打重量远高于精排,同时有更严格的提早束缚,阿里巴巴定向广告的要求是 10-20ms
  • 解空间问题更重大:粗排和精排训练的时候应用的都是展示样本,然而线上打分环节粗排打分候选集更大,打分阶段间隔展示环节更远,因而粗排阶段打分汇合的散布和展示汇合差距相比精排更大,解空间问题也更重大。

2.1.1 粗排的两大技术路线(汇合抉择和精准预估)

粗排的技术路线其实就是 解决粗排个别该怎么迭代的问题 ,因为粗排是处于召回和精排之间的一个模块,因而粗排自身的迭代会受到前后链路的制约,因而须要站在整个链路的视角来对待这个问题。纵观整个链路,粗排个别存在两种技术路线: 汇合抉择和精准值预估。

汇合抉择技术

汇合抉择技术是以汇合为建模指标,选出满足后续链路需要的汇合的办法,该技术路线在召回十分典型,这其实也十分合乎粗排的定位。该办法长处是算力耗费个别比拟少,毛病是依赖于对后链路的学习,可控性较弱。

什么叫可控性?也就是说如果心愿进行一些调整的话,因为这种形式依赖于通过数据回流对后链路进行学习,而数据回流往往比较慢,同时对数据量也有要求,可能须要前面链路的这些策略调整影响到比拟大的流量之后,粗排才能够学习到,因而这种形式可控性比拟弱,是 偏被动的一种形式

这种技术路线有以下常见的几种办法:

  • 多通道办法:相似于召回,针对不同的指标构建不同的通道,而后别离选出不同的汇合,而后再进行合并抉择。
  • Listwise 办法:个别是间接建模汇合的损失,典型算法如 LamdaMART。为了更好了解 listwise 算法,这里提一下 pointwise 算法和 pairwise 算法,pointwise 算法个别是点估计的形式,训练过程只思考单条样本;而 pairwise 算法训练过程中会思考以后样本和其它样本的互相关系,会结构这样的 pair,并在训练的过程中引入这方面的 pairwise loss,训练指标可能是正 pair 排在负 pair 的后面;Listwise 更近一步,在训练的时候会思考整个汇合,会心愿整个汇合的指标如 NDCG 等达到最大化,如 LamdaMART 算法。
  • 序列生成办法 :间接做汇合抉择。个别蕴含汇合评估器和汇合生成器,算法过程如下:首先,用评估器对所有的 item 进行打分并抉择一个得分最高的,作为汇合中的第一个商品。接下来,再筛选第二个商品,把第一个商品和所有可能的第二个商品进行组合,并用评估器进行打分。之后,抉择得分最高的汇合,并继续应用相似于贪婪的形式一直的搜寻,最终 失去一个最优的汇合

精准值预估技术

精准值预估技术间接对最终零碎指标进行准确值预估,其实也就是 pointwise 的形式。以广告零碎为例,建模的指标个别是 ECPM,即

$ECPM=pCTR*bid$

pCTR 是广告点击率预估,ECPM:EFFECPM:EFFECTIVE COST Per
Mille,每 1000 次展览可用的广告支出,ECPM 是流量端,媒体角度,Bid Request【竞价申请】

利用预估技术预估 pCTR,而后预估 bid,最终依据 ECPM 来进行排序,在粗排的话就是取排序的分最高的 topK 作为最终的汇合。这种形式的长处是可控性强,因为是间接对整个指标进行建模,如果建模形式做了调整的话,能够间接调整排序公式,调整预估模型,对整个链路的掌控力更强。毛病就是算力耗费比拟大,而且预估越精确,算力耗费也越大。

2.1.2 粗排的技术倒退历史(向量內积,Wide&Deep 等模型)

粗排在工业界的倒退历程能够分成上面几个阶段:

① 最晚期的第一代粗排是动态品质分,个别是统计广告的历史均匀 CTR,只应用了广告侧的信息,表达能力无限,然而更新上能够做到很快。

② 第二代粗排是以 LR 为代表的晚期机器学习模型,模型构造比较简单,有肯定的个性化表达能力,能够在线更新和服务。

其中①②能够合称为“粗排的前深度学习时代(2016 年以前)”。

③ 以后利用最宽泛的第三代粗排模型,是 基于向量内积的深度模型。个别为双塔构造,两侧别离输出用户特色和广告特色,通过深度网络计算后,别离产出用户向量和广告向量,再通过内积等运算计算失去排序分数,③ 称为“粗排的深度时代 - 向量内积模型(2016)”。

向量内积模型相比之前的粗排模型,表达能力有了很显著的晋升,其长处:

  • 内积计算简略,节俭线上打分算力
  • User 向量和 Ad 向量离线计算产出,因而能够做的非常复杂而不必放心在线 RT 问题
  • 双塔构造的 user 侧网络能够引入 transformer 等简单构造对用户行为序列进行建模

然而依然有许多问题:

  • 模型表达能力依然受限:向量内积尽管极大的晋升了运算速度,节俭了算力,然而也导致了模型无奈应用穿插特色,能力受到极大限度。
  • 模型实时性较差:因为用户向量和广告向量个别须要提前计算好,而这种提前计算的工夫会拖慢整个零碎的更新速度,导致系统难以对数据分布的疾速变动做出及时响应,这个问题在双十一等场景尤为显著。
  • 存在冷启动问题,对新广告、新用户不敌对
  • 迭代效率:user 向量和 item 向量的版本同步影响迭代效率。因为每次迭代一个新版本的模型,别离要把相应 user 和 item 向量产出,其自身迭代流程就十分长,尤其是对于一个比拟大型的零碎来说,如果把 user 和 item 都做到了上亿的这种级别的话,可能须要一天能力把这些产出更新到线上,这种迭代效率很低。

针对向量内积模型的问题,也有很多相干的改良,典型的如上面这个办法。

另外一个典型的改良办法是向量内积模型的实时化,user 向量通过线上打分实时产出,ad 向量依然离线产出,然而更新频次减少。

通过实时打分,能够引入实时特色,实时性增强。然而实时打分使向量内积模型的 RT 和算力劣势削弱,user 模型处于 RT 的束缚不能设计的很简单,而且该办法还引入了新的打分模型和 ad 向量版本不统一的问题。

④第四代 COLD,下一代粗排框架(2019)- 算力感知的在线轻量级的深度粗排零碎。上面将具体介绍该模型。

2.2 粗排的最新进展 COLD(框架)

后面粗排的相干工作仅仅把 算力看做零碎的一个常量,模型和算力的优化是拆散的 。这里从新思考了模型和算力的关系,从两者联结设计优化的视角登程,提出了新一代的 粗排架构 COLD (Computing power cost-aware Online and Lightweight Deep pre-ranking system)。它能够灵便地对模型成果和算力进行均衡。COLD 没有对模型构造进行限度,能够反对任意简单的深度模型。这里咱们把 GwEN (group-wise embedding network) 作为咱们的初始模型构造。它以拼接好的特色 embedding 作为输出,前面是多层全连贯网络,反对穿插特色。当然,如果特色和模型过于简单,算力和延时都会难以承受。因而咱们一方面设计了一个灵便的网络架构能够进行成果和算力的均衡。另一方面进行了很多工程上的优化以节俭算力。

总结为以下几点:

  • 基于算法 - 零碎 Co-Design 视角设计,算力作为一个变量与模型进行联结优化
  • 模型构造没有限度,能够任意应用穿插特色
  • 工程优化解决算力瓶颈
  • 在线实时零碎,实时训练,实时打分,以应答线上散布疾速变动

2.2.1 模型构造

① 特色筛选

精简网络的办法有很多,例如网络剪枝 (network pruning)、特色筛选 (feature selection)、网络结构搜寻 (neural architecture search)等。咱们抉择了特色筛选以实现成果和算力的均衡,当然其余技术也能够进行尝试。具体来说,咱们把 SE (Squeeze-and-Excitation) block 引入到了特色筛选过程中,它最后被用于计算机视觉畛域以便对不同通道间的外部关系进行建模。这里咱们用 SE block 来失去特色重要性分数。假如一共有 M 个特色,ei 示意第 i 个特色的 embedding 向量,SE block 把 ei 压缩成一个实数 si。具体来说先将 M 个特色的 embedding 拼接在一起,通过全连贯层并用 sigmoid 函数激活当前,失去 M 维的向量 s:

$s=\sigma(W[e_1,…,e_m]+b)$

这里向量 s 的第 i 维对应第 i 个特色的重要得分,而后再将 s_i 乘回到 e_i,失去新的加权后的特征向量用于后续计算。

在失去特色的重要性得分之后,咱们把所有特色按重要性抉择最高的 top K 个特色作为候选特色,并基于 GAUC、QPS 和 RT 指标等离线指标,对成果和算力进行均衡,最终在满足 QPS 和 RT 要求状况下,抉择 GAUC 最高的一组特色组合,作为 COLD 最终应用的特色。后续的训练和线上打分都基于抉择进去的特色组合。通过这种形式,能够灵便的进行成果和算力的均衡。

留神 Se Block 仅用于特色筛选阶段,线上模型不蕴含该构造。

② 基于 scaling factor 的结构化剪枝

此外 COLD 还会进行剪枝,做法是在每个神经元的输入前面乘上一个 gamma,而后在训练的 loss 上对 gamma 进行稠密惩办,当某一神经元的 gamma 为 0 时,此时该神经元的输入为 0,对尔后的模型构造不再有任何影响,即视为该神经元被剪枝。

在训练时,会选用循环剪枝的形式,每隔 t 轮训练会对 gamma 为 0 的神经元进行 mask,这样能够保障整个剪枝过程中模型的稠密率是枯燥递加的。

这种剪枝办法在成果根本不变的状况下,粗排 GPU 的 QPS 晋升 20%。最终模型是 7 层全连贯网络。

2.2.2 工程优化

更多内容参考:https://blog.csdn.net/sinat_39620217/article/details/129049467?spm=1001.2014.3001.5501

2.3 粗排技术的总结与瞻望

更多内容参考:https://blog.csdn.net/sinat_39620217/article/details/129049467?spm=1001.2014.3001.5501

2.3.1 总结!

2.3.2COLD 的进一步倒退以及瞻望

3. 相干文章举荐:

更多内容参考:https://blog.csdn.net/sinat_39620217/article/details/129049467?spm=1001.2014.3001.5501

正文完
 0