微软多兴趣召回:Octopus

2024-03-05 03:20
文章标签 召回 微软 兴趣 octopus

本文主要是介绍微软多兴趣召回:Octopus,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Octopus: Comprehensive and Elastic User Representation for the Generation of Recommendation Candidates

背景:

多兴趣通道(channel)结构的多兴趣召回模型在兴趣通道数量上面存在两个问题

  1. 兴趣通道较少,不能充分学习到用户的多个兴趣。
  2. 兴趣通道较多,很多兴趣通道可能和用户兴趣不相关,这样会引入很多不相关的候选集,带来噪声;固定的 topK 策略会导致有噪声的兴趣也会召回到对应的候选集,从而挤占整体相关兴趣的候选数量,造成整体相关候选集数量下降;而且线上耗时和兴趣通道数据是线性相关,兴趣通道越多造成的耗时越大。

在这里插入图片描述

其实说的更简单点,2 个问题:就是多兴趣召回里面,不同用户产出的多个兴趣数量是固定的,没有个性化;每个兴趣向量召回的 topK 个候选,没有考虑不同兴趣的重要度

即如何实现个性化的兴趣数量、如何实现根据兴趣重要度去个性化选择候选数量。

解决方案:

预设多个兴趣通道,但是根据用户历史行为来激活部分兴趣通道,对激活的兴趣通道计算用户的兴趣向量。同时根据兴趣重要度来决定每个兴趣拉取候选集的 quota。

方案详情:

整体结构图如下:
在这里插入图片描述

以上面的结果图为例,预设 M(图中M=8) 个全局的相互正交的兴趣通道,设兴趣向量的维度为 d,

解决第一个问题:如何实现不同用户的兴趣数量个性化
兴趣通道正交

怎么保证各个兴趣向量之间的正交性呢,即怎么保障 M 个兴趣通道对应的兴趣向量矩阵 H ∈ R M × d \mathbf H \in R^{M \times d} HRM×d为正交矩阵,可以通过迭代的方式来,用户行为序列矩阵为 Θ ∈ R N × d \mathbf \Theta \in R^{N \times d} ΘRN×d
通过求兴趣向量矩阵正交基得到
a r g m i n ∑ Θ ∣ ∣ θ − θ H T H ∣ ∣ 2 argmin \sum_{\Theta} \vert \vert \theta - \theta \mathbf H^T \mathbf H \vert \vert_2 argminΘ∣∣θθHTH2
另外通过正则项约束来进一步保证兴趣通道向量矩阵的正交性,其中 I ∈ R M × M \mathbf I \in R^{M \times M} IRM×M是单位矩阵
∣ ∣ H H T − I ∣ ∣ 2 \vert \vert \mathbf H \mathbf H^T - \mathbf I \vert \vert_2 ∣∣HHTI2

兴趣激活

假设用户序列长度为 N,首先将每个序列都投影到 M 个兴趣通道上面,即计算每个序列在 M 个兴趣通道上面的注意力分数(论文中用的是点乘),分数最大的兴趣通道作为激活的兴趣通道,用户 N 个序列就会得到 N 个注意力分数最大的通道,当然只有 M 个通道。以上图为例(M=8,N=7),有 3 个序列在兴趣通道 2 上面计算得到的注意力分数最大,有 2 个序列在兴趣通道 6 上面注意力分数最大,剩下还有 2 个序列在兴趣通道 7 上面注意力分数最大, 这 N=7 个序列行为总共激活了 3 个(兴趣通道 2、6、7)兴趣通道,那么这个用户最后产出的多兴趣数目为 3。这样就把最相关的一些兴趣通道给激活出来了,相关性弱的兴趣通道不会参与候选集召回。

兴趣聚合

上图中,序列行为 1、2、3 激活了兴趣通道 2,序列行为 3、4 激活了兴趣通道 6,序列行为 5、6 激活了兴趣通道 7。最终的用户兴趣向量通过 attention 的方式计算得到。第 l l l个兴趣向量 h l ∈ H h_l \in \mathbf H hlH由激活第 l l l个兴趣通道的序列行为集合根据新计算的注意力分数得到,计算方式如下

ϕ l = ∑ x i ∈ X a i , l θ x i \phi_l = \sum_{x_i \in \mathbf X} a_{i,l} \theta_{x_i} ϕl=xiXai,lθxi

a i , l = exp ⁡ s i m ( θ x i , h l ) ∑ x j ∈ X exp ⁡ s i m ( θ x j , h l ) a_{i,l} = \frac { \exp {sim( \theta_{x_i}, h_l)}} { \sum_{x_j \in \mathbf X} \exp {sim( \theta_{x_j}, h_l)} } ai,l=xjXexpsim(θxj,hl)expsim(θxi,hl)
比如,第一个激活的兴趣通道 2,产出的用户兴趣向量是序列 1、2、3 在兴趣通道 2 上面的注意力权重,然后根据权重乘以行为向量,聚合得到第一个兴趣向量。

训练目标,本来是用户向量尽可能的学的好,即和 target物料向量在向量空间尽可能的接近,向量空间反应了相关性,向量空间距离最接近表示相关性最高,但是多个兴趣向量就不是这样了,因为用户兴趣是多样的,我们只需要选出 target 物料向量和兴趣向量距离最小的那个兴趣向量,然后最小化这个兴趣向量和 target 物料向量的距离,至于其他用户兴趣向量,不用 care。

解决第二个问题:如果实现不同兴趣对应的候选集数量个性化

2 种解决办法

在这里插入图片描述

第一个:竞争式(Competition)

M 个兴趣向量,每个用户兴趣向量先各自召回 J 个候选,计算用户兴趣向量和各自候选集的距离,会得到 M*J 个距离,然后选择 topK 个距离最小的候选。不过有个问题,不同兴趣和候选集的距离可能不可比,比如某个兴趣,和它对应的候选距离天然都要小些,那么这个兴趣对应的候选最终会全部进入 topK 集合中,其他的兴趣可能因为距离天然要大些,可能一个也不会进入到最终的 topK 候选中。

第二个:分配式(Allocation)

从效率考虑,用一个 MLP 来建模兴趣重要度。将前面产出的多个兴趣向量作为模型输入,每个兴趣向量经过 MLP( d × d d \times d d×d d × 1 d \times 1 d×1后经过 sigmoid 激活),计算每个用户兴趣向量的相对重要性

γ i = M L P ( ϕ i ) ∑ M L P ( ϕ j ) \gamma_i = \frac { MLP(\phi_i)} { \sum MLP(\phi_j)} γi=MLP(ϕj)MLP(ϕi)

然后找到和 target 物料向量和距离最小的兴趣向量 ϕ k \phi_k ϕk,设置 label 为 1,计算 γ k \gamma_k γk和 1 之间的交叉熵loss

兴趣重要度模型训练好之后,输入用户的多个兴趣向量,可以得到每个兴趣向量经过网络之后的兴趣重要度得分 γ i \gamma_i γi,根据重要度来决定候选 quota 数量的分配,第 l l l个兴趣向量对应的比例,计算如下

β l = ( γ l ) α ∑ ( γ j ) α \beta_l = \frac { (\gamma_l)^{\alpha} } { \sum (\gamma_j)^{\alpha} } βl=(γj)α(γl)α

其中 α \alpha α是超参数

在这里插入图片描述

实验
不同通道数量的比较

在这里插入图片描述

消融实验

+Orth 表示加兴趣通道正则化
+Group 表示加兴趣激活
OCT© 竞争式
OCT(A) 分配式
在这里插入图片描述

这篇关于微软多兴趣召回:Octopus的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

微软正式推出 Spartan 斯巴达浏览器

作为用于替代 IE 浏览器的下一代继任者,微软的 Project Spartan 斯巴达浏览器可算是吊足了玩家们的胃口!如今,在最新的 Windows 10 Build 10049 版本起,它终于正式登场了。 斯巴达浏览器搭载了全新的渲染引擎、新的用户界面并集成了 Cortana 语音助手。功能上新增了稍后阅读列表、阅读视图、F12开发者工具、支持网页注释 (手写涂鸦),可以保存到 O

微软C#套接字异步通信代码

Asynchronous Server Socket Example.NET Framework 4 其他版本 The following example program creates a server that receives connection requests from clients. The server is built with an asynchronous socket,

号称不死之身的Access,微软一直干不掉,这款国产软件办到了

你或许误以为下面的表格是excel格式的,但实际上,它是Access数据库,这是微软开发的一款曾在全球广受欢迎的数据库软件。 Microsoft Access自1992年问世至今已历经32载,你是否以为它早已被淘汰?事实恰恰相反,这款软件在竞争激烈的市场中依然稳占一隅,被誉为“不死之身”。 Access,僵尸一般的存在 尽管Access已显露出衰老之态,但它却像僵尸一般在数据

微软发布Phi-3.5 SLM,附免费申请试用

Phi-3 模型系列是Microsoft 小型语言模型 (SLM) 系列中的最新产品。 它们旨在具有高性能和高性价比,在语言、推理、编码和数学等各种基准测试中的表现均优于同类和更大规模的模型。Phi-3 模型的推出扩大了 Azure 客户的高质量模型选择范围,为他们编写和构建生成式 AI 应用程序时提供了更多实用的选择。 参考链接:微软 Azure AI 、Phi-3等免费试用申请 自 20

C# 使用微软OFFICE库操作excel

C# 使用微软OFFICE库操作excel写入数据 using System;using Excel = Microsoft.Office.Interop.Excel;namespace ExcelExample{class Program{static void Main(string[] args){// 创建Excel应用程序实例Excel.Application excelApp =

一次性说清楚,微软Mos国际认证

简介: Microsoft Office Specialist(MOS)中文称之为“微软办公软件国际认证”,是微软为全球所认可的Office软件国际性专业认证,全球有168个国家地区认可,每年有近百万人次参加考试,它能有效证明Word、Excel、PPT、Acess等办公软件技能,是目前企业招聘者建立筛选的标准之一,尤其在外企,相对于国内人手一本的计算机二级证书,MOS认证显得更权威! 考试版

亚马逊云免费服务器安装教程AWS微软系统教程含Tomcat,mysql,Tomcat去项目名,端口名!

一直想弄个云服务器耍耍,奈何费用较高,又是个人,所以一直没弄! 昨天偶然得知有免费云服务器,搜索到了亚马逊云 aws.amazon.com 闲话少说! 亚马逊云服务器安装教程windows系统 步骤如下: 1.去aws.amazon.com注册账号,这个不用多说 2.登录进去后,在我的账户里面选择管理控制台 3.然后选择启动虚拟机 4.选择对应的操作系统,鄙人初始linu

微软面试题之以递增顺序打印2^i*3^j*5^k

以递增顺序打印出2^i*3^j*5^k的前n项。假设当前已经求出第x项,那么第x+1项一定是由前x项中的某项乘2,或乘3,或乘5,得到的大于第x项中最小的那个数,于是我们立即得到一个n^2的算法,代码如下 #include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAX = 1e4+10;LL

微软苏州校招笔试 12月27日

题目1 : Lost in the City 时间限制: 10000ms 单点时限: 1000ms 内存限制: 256MB 描述 Little Hi gets lost in the city. He does not know where he is. He does not know which direction is north. Fortunately