| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> 详细解读推荐算法MIND(Multi-Interest Network with Dynamic Routing) -> 正文阅读 |
|
[数据结构与算法]详细解读推荐算法MIND(Multi-Interest Network with Dynamic Routing) |
? ? ? 该算法来自论文《Multi-Interest Network with Dynamic Routing for Recommendation at Tmall 》。这篇论文的一作来自阿里巴巴团队。作者在实验部分展示了该算法子Tmall上的效果。 一、研究动机? ? ? ? 推荐系统主要有召回和排序阶段,算法 MIND解决召回问题,即从大量的数据中取出上千个相关的item。召回的方式有很多,经典的有协同过滤和模型召回。模型召回的方法的思路是学习user向量和item向量,通过向量的相似度选出与user相关的item。 ? ? ? 现有的大量模型召回方法是为每个user学习一个向量,对于像Tmall这种大型的商场网站中,用户的兴趣是多样的,其点击的商品也会是多种类别的。因此,一个向量是无法充分建模user的兴趣画像。作者提出了一种MIND的算法来为每个user学习多个向量,多个向量可以捕捉user兴趣的多样性。 二、MIND算法? ? ? 每个样本被处理成三元组的形势,即(user特征;user行为,即user交互过的item;目标item)。对于单个user,MIND的输入是user的特征和行为;目标item用户指导模型训练,也就是作为监督信息。MIND的输出是K个D维的向量,D是单个向量的维度,K是兴趣向量的个数。在计算user和item的相似度时,分别去计算item与user的每一个兴趣向量的相似度,然后取最大值。公式如下: ? ? ? 整个模型的流程如下: ?? ? ? ?从左往右看,other features 是user特征。embedding layer是将稀疏特征转为密集特征。user的特征转为密集向量后串联在一起。item 1到item N表示user交互过的N的item,每个item都有特征。item的特征经过嵌入层后再通过平均池化层(pooling layer),N的item就可以各自的嵌入向量。 ? ?接下来是将这N个嵌入向量输入到multi-interest extractor layer中,输出是多个兴趣向量。多兴趣提取层是基于胶囊网络的路由机制的。 ? ?这篇博客讲解https://blog.csdn.net/leigeno/article/details/118800796路由机制的方法。路由机制可以理解为:将多个向量进行聚类,然后得到几个中心向量。假设兴趣向量个数为M,多兴趣提取层可以理解为将N个item向量聚类成M类,输出这M个类的中心向量。整个路由机制的算法过程如下: ? ? ? ? 第一步是计算每个user的兴趣胶囊个数(兴趣向量个数)。作者提出了一个自适应的方法求每个user的兴趣向量个数(如下),将交互的item个数取2的对数。 ? ? ? ?第二步是随机出初始化每个行为胶囊(item的嵌入向量)和兴趣胶囊(兴趣向量)的权重。 ? ? ? ? 第三步表示执行r次路由。 ? ? ? ? 第四步是将权重归一化。 ? ? ? ? ?第五步是可以立即为加权聚合的方式,每个兴趣胶囊通过权重加权聚合底层item的向量。S是投影矩阵,与传播胶囊网络不同是:所有的底层胶囊和上一层的所有胶囊都共享一个投影矩阵。作者定义共享的投影矩阵的理由是:1)用户的行为item个数都不一样,使用共享矩阵具有可泛化性(没懂?);2)希望所有的兴趣向量在一个向量空间里。 ? ? ? ? ?第六步是路由机制中向量的归一化。 ? ? ? ? ?第七步是累积计算权重,把上一步的权重加上此时的权重。 ? ? ? ? ?最后模型输出了K个兴趣向量。 ? ? ? ? ?K个兴趣向量会分别和用户向量串联,然后输入到全连接神经网络中。 ? ? ? ? ? 最右侧是计算目标item的向量。 ? ? ? ? ? 在模型训练过程中,作者提出了一种标签意识的方法。目标的向量与K个兴趣向量点积求重权重归一化后再加权聚合K个兴趣向量,得到一个最终的用户向量,该向量会与目标向量求sampled softmax loss。作者最终的用户用户时,通过幂函数控制权重的影响: ? ? ? ? ? ?在线上服务时,每个兴趣向量都会被用于召回。 ? ? ? ? ? ? ? ? ?? ? ? ?? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 20:29:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |