如何理解mind多兴趣召回(一)

mind召回的核心点有三个:

1、胶囊网络下的动态路由

2、label aware attention

3、online serving

本文主要介绍下胶囊网络的原理

首先是如何理解胶囊网络,胶囊网络是Dynamic Routing Between Capsules这篇paper在2017年由Hinton提出的(https://arxiv.org/pdf/1710.09829.pdf),起初是为了解决图像识别中图像变换导致模型无法识别原图,胶囊网络可以很好的描述向量的长度和方向来表达实体隐含的信息,即能更好的表达实体的层次信息,通过动态路由的方式,较底层的特征将只被传递到与匹配的高层。其实就是鼻子、眼睛最终表示脸,而手臂、脚会最终表示为四肢,鼻子、眼睛和手臂、脚是比较低阶的特征,而脸和四肢属于高阶特征,鼻子、眼睛在动态路由后会聚类成脸的特征,而手臂、脚会聚类成四肢的特征。

胶囊的输出通常为某个特征的概率及特性,这个概率和特性通常被叫做实例化参数。而实例化参数代表着网络的等变性,它使得网络能够有效的识别姿势,纹理和变化。比如,如果用 CNN 模型去识别一张脸,模型会将一张眼睛和鼻子位置颠倒的图片识别为人脸,但是,胶囊网络的等变性会保证特征图中位置的信息,因此,具有等变性的胶囊网络会在识别人脸时不仅考虑眼睛鼻子的存在,还会考虑它们的位置。

胶囊网络同时对空间信息物体存在概率进行编码,编码在activity vector中。vector的模表示特征存在的概率;vector的方向表示特征的实例化参数;移动特征会改变vector,不影响特征存在概率。讲人话就是,向量的方向表示某一个特征,而向量的长度则表示这个特征存在的概率。

可以说胶囊网络其实是对标量扩展到向量的扩展,因为标量只是一个特定的x,而向量是一组x,所以可以表达更为立体和具象的特征信息,其实capsule就是想取代neuron,因为capsule能更立体和具象,比如每个neuron只能代表一个工作,比如在某图像识别中,它只能代表某一个区域或者某一个特征,但是capsule能够代表一个特性,比如能够通过向量的长度代表pattern存在的概率,通过向量的方向代表pattern具体的特性,区别如下:


胶囊网络的运算过程:


输入:v1,v2

输出:v

W1、W2是可学习参数,Squash函数不会改变s的长度,意思就是向量存在的概率不会有变化,也就是说特征不会变化

这里的输入和输出都是向量

c1和c2是动态路由决定的数值,类似于pooling的操作,针对标量我们可以选择pooling(max pooling, average pooling),但是对于向量,我们可以采用一个更为具象的值,c1+c2的和是1

这里要注意的是几点,c1,c2,c3是经过T轮迭代计算而来,一般在实践过程中,T=3即可收敛,最终得到c1,c2,c3之后,就按照这个方式进行最终的胶囊网络计算。那胶囊网络是如何让鼻子、眼睛能够聚类成脸呢,这里比较重要的在于这个参数b的更新方式,b的更新方式 b = b + a * u,a是激活之后的向量,u是输入的向量,其实就是衡量激活之后的向量与输入向量之间的关系,如果他们越相似,比如接近1,那么b的更新就越大,换句话来讲,就是最终的向量会更倾向于b更大的那个u,这里面还经历过softmax的放大效应,会更加放大b的结果。

下面是T=3的时候,c的计算过程,c的值相当于做pooling,只不过这个pooling是通过动态路由学习到的。

展开阅读全文

页面更新:2024-06-16

标签:标量   向量   路由   概率   胶囊   鼻子   特征   兴趣   眼睛   代表   网络

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top