国科网

2025-04-24 17:58:20  星期四
立足国科融媒,服务先进科技
【他山之石】360 多兴趣召回 Mind 实战优化

点赞

0
发布时间:2024年01月22日 浏览量:205次 所属栏目:人工智能 发布者:田佳恬

一、业务背景

随着短视频和信息流等场景的兴起,用户在这些场景中产生了大量的行为序列,包括曝光、播放、点击、点赞和关注等。这些序列本身就具备很高的价值。因此涌现出了许多序列模型,如 YouTube DNN [1]、GRU4REC [2]、MIND [3]等。这些模型通过对用户行为序列进行建模,以提取用户的兴趣。其中,MIND 模型具有独特的特点。

MIND 模型是 2019 年由阿里巴巴团队提出的,其独特之处在于直接建模了用户的多个兴趣,而不是得到一个统一的用户表达。该模型受到了胶囊网络 CapsuleNet 的启发,通过胶囊间的路由计算来提取用户的多个兴趣。在 2020 年,阿里巴巴团队和清华大学团队联合对 MIND 模型进行了改进,提出了 ComiRec 模型 [4]。主要改进在于推理阶段。原本的 MIND 在推理得到多个用户兴趣表达后,分别进行 ann 检索以得到召回结果。而 ComiRec 模型则对多个兴趣检索后的检索结果进行了融合,从而进一步保证了召回结果的多样性。

根据 MIND 模型论文,我们进行了复现并将该模型应用于我们的墨鱼丸小视频场景中。在评估过程中,我们发现原始 MIND 模型存在一些问题,例如胶囊数与用户序列长度之间的强绑定关系以及胶囊之间的差异性不强。为了解决这些问题,我们在初始化胶囊的位置和数量上进行了改进,并改进了路由算法的计算方式,以增加胶囊之间的差异度。


二、原 MIND 模型以及其发展

图片

上图为原 MIND 模型结构,该模型主要分为以下几个模块,分别是 Embedding Layer、Multi-interest Extraction Layer(最重要)、Label-aware Attention Layer、Serving,对于 Embedding Layer 部分,该模型与目前其他序列模型一样,在此不做赘述。我们下面对其他几个模块依次进行介绍。

1、Capsule 胶囊网络以及 MIND 改造

原 MIND 模型的 Multi-interest Extraction Layer 主要参考的是 capsule 网络 [5]。胶囊即是一小群神经元的聚集,其共同输出一个完整的向量。不同于原始的 Dense 结构,胶囊采用路由的方式得到,并进行反向传播优化,路由算法如下:

图片

这里需要注意,每个下层胶囊 i 与上层胶囊 j 都对应一个双线性映射矩阵 W_ij。这里胶囊网络考虑下层胶囊 i 与上层胶囊 j 之间的 W_ij 矩阵,是仿照了神经网络中上层神经元 i 与下层神经元 j 之间的权重 w_ij。由于每个胶囊是多维的,则胶囊间路由采用的是矩阵而非一个标量。

基于该方法,MIND 模型对胶囊的路由进行了改进:

图片

对于共享使用一个双线性映射矩阵,MIND 作者是考虑到在推荐场景中,用户的行为序列是不定长的,且作者希望多个兴趣映射到同一个空间下。另一方面,我们认为 MIND 作者假定了位置信息在其推荐场景中并不重要,无需对每个序列的位置设计不同的映射矩阵。

由于采用了共享双线性矩阵,如果 routing logit b_ij 依然采用零初始化,则第一轮的上层胶囊会全部一样。以后也会一直一样,代表所有底层胶囊的均值。所以对于 routing logit b_ij 采用了正态随机初始化。

论文也提出了一种动态调整胶囊个数的方式,该方式假设了用户合适的胶囊数应当与用户序列数呈现次线性关系。实际上用户合适的胶囊数与业务场景和数据的内部结构相关,很难一概而论。

2、Label-aware和serving

在 label-aware 阶段,对于候选 item,通过 attention 的方式确定每个兴趣重要程度。在计算 softmax 之前,对 logit 进行了以 p 为指数的运算,通过调节 p 来调整多个兴趣权重的差异程度。模型损失函数采用对数 softmax。需要指出的是:

  • 多个用户兴趣采用 attention 方式聚合是必要的,该方式使得用户序列中的小众兴趣在更新时免受主要兴趣的影响和掩盖,从而进行更有效的更新和兴趣捕捉。我们认为,label-aware 的 attention 是多兴趣捕捉的关键所在。
  • 以 p 为指数的运算在实际训练中是有限制的,选取的 p 应满足 x^p 为单调函数,使得得分通过函数后依然保序。可替换成对得分除 τ>0 以控制。

在 serving 阶段,MIND 模型分别计算各个兴趣 emb 做向量检索,以获取 topN 资源。在 MIND 后续工作中,阿里巴巴团队在多个兴趣索引的 topN 个结果如何合并方面进行了研究和改进。

3、优势以及存在的问题

MIND 模型优势在于其显性建模了用户多个兴趣,其论文对比说明,建模多个用户向量表示对于推荐是有很大帮助的。尤其是电商这类资源种类较多,用户兴趣较为广泛的推荐场景。

我们通过分析和实验也发现原 MIND 模型存在以下问题:

  • 胶囊数的强假设:MIND 中假设了胶囊数与用户序列长度存在次线性关系,有一定道理,但对用户序列内部结构考虑不足。
  • 胶囊初始化的随机性:routing logit 随机导致胶囊初始化的随机,稳定性不足。
  • 胶囊间的相似性:胶囊间的相似性过高,可能会导致模型重复捕捉相同的兴趣,兴趣召回覆盖不足。
  • 胶囊内资源内容的一致性不足:胶囊内的资源内容可能缺乏一致性,解释性不足。


三、MIND 改进过程

基于以上的缺点,我们的改进从胶囊初始化、路由计算过程、数据与训练方式三个方面展开。

1、胶囊初始化改进

胶囊路由的过程很容易联想到聚类计算的过程。以聚类算法 Kmeans 为例,在该算法中胶囊的初始化位置对聚类结果的影响是巨大的,类比胶囊网络我们也认为胶囊初始化位置对于胶囊路由计算影响是巨大的。实际上原始 mind 论文并不直接对胶囊做初始化,而是对 logit routing 矩阵做初始化,进而计算出第一轮胶囊的结果。这种方式本身并没有对初始胶囊之间的位置关系进行约束和限制,而我们希望初始化的胶囊之间尽量保持远离,以让其尽可能覆盖不同兴趣。所以我们首先采取了与 kmeans++ 中一样的 maxmin 类似的初始化策略,直接初始化胶囊位置。

(1)maxmin方法

设一个用户全部 items 为 S,则该集合就是我们胶囊的候选集。首先我们在 S 中随机选择一个 item,作为第一个胶囊的初始化位置。假设已选择出的全部胶囊为 C,然后在剩余的全部 items 中,分别计算各个 item 与当前胶囊集合 C 的距离。这里需要说明的是,我们定义点 x 到集合 C 的距离如下

图片

我们选择剩余的全部 items 中,将距离最远的 item 作为本轮选出的胶囊,加入到胶囊集合 C 中,即

图片

该过程一直迭代下去直到选择出的胶囊数达到所需胶囊数。其算法步骤如下:

  • 根据用户序列长度计算用户所需的胶囊数 K。
  • 随机选择一个 item 作为第一个初始化胶囊,将目前全部已经选出的胶囊记为 C。
  • 剩余全部 items 计算其与C距离。
  • 取与 C 距离最大的点作为下一个胶囊,将其加入到 C 中。
  • 重复进行 3-4 直到 C 中的胶囊数达到 K 则停止。

我们下面也给出了一个例子直观地说明该方法的初始化结果,其中蓝色的点由两种分布生成,分别在[-10,10]×[-10,10]上按照均匀分布采样 100 个点,再分别以(±5,±5)为期望,1 为方差的四个正态分布中各采样 20 点,总共 180 个点。通过 maxmin 初始化方法采样 4 个胶囊得到图中橙色点,最终路由后的胶囊位置为图中的红点。

注意到由于我们生成的正态分布位于四个象限,而该初始化方法也分别在四个象限初始化了胶囊。经过胶囊路由计算后,四个胶囊也分别迭代到与其最近的点簇附近,该初始化方式基本上是符合预期的。

图片

但是该方法依然存在缺点:

  • 胶囊数K依然取决于用户序列长度。
  • 初始中心位置边缘,离群点风险增大,序列较短时问题更严重。
  • 随机性,每次初始化不同,不保证收敛结果一致。

(2)markov 方法

重新审视该问题,对于下面的图,其各个点的生成方式与 mm 方法中图的生成方式相同。我们很容易观察到该图应该存在四个簇,而我们希望将该过程进行建模。

我们认为在整个表征空间内,点密度越大则这些点越有可能属于同一兴趣,其应当被同一胶囊覆盖。选择胶囊初始化位置实际上就是选择密度最大的点的“选点问题”。为了刻画一个点所处的位置密度,我们可以通过计算该点与其他点的相似程度来实现。而序列中两点的距离,则代表了序列中"选点问题”所需的全部结构信息。具体而言,如果一个点的邻居点数量越多,且邻居点与其相距越近,那么该点附近的密度就越高,因此该点应该被视为候选胶囊。基于这种想法,我们使用类似于 PageRank 算法中计算节点重要度的方法(既周边密度),该方法本质上是基于 markov 过程的图标签传递问题(graph label propagation)。

图片

我们简单介绍一下离散的 markov 过程。首先离散的 markov 过程是一个随机过程,'离散'说明该随机过程在时间上存在众多离散的时刻 t_0<t_1<…<t_

分享说明:转发分享请注明出处。

    热点图讯
    最新图讯
    相关图讯
    网站简介  |   联系我们  |   广告服务  |   监督电话
    本网站由国科网运营维护 国科网讯(北京)技术有限公司版权所有  咨询电话:010-88516927
    地址:北京市海淀区阜石路甲69号院1号楼1层一单元114
    ICP备案号:京ICP备15066964号-8   违法和不良信息举报电话:010-67196565
    12300电信用户申诉受理中心   网络违法犯罪举报网站   中国互联网举报中心   12321网络不良与垃圾信息举报中心   12318全国文化市场举报网站
    代理域名注册服务机构:阿里巴巴云计算(北京)有限公司