bilinear model

bilinear model是一种将多个特征结合起来作为input的方法。比如:对于一个词,他的特征就包括:词性特征,word embedding特征etc. 如果结合多source的特征,就加入了更多信息,实现更有效的表征。
最简单的做法是:

  1. 直接拼接两个特征 [f_1:f_2]
  2. 线性组合 F=W_1f_1+W_2f_2

bilinear model实现了特征的多通道输入。我们可以设想,人脑可能有一个通道专门处理位置信息,有另一个通道专门处理色彩信息。


bilinear model.png

Specifically, for feature f_a(l,P)\in \mathbb{R}^{T \times M} and f_b(l,P) \in \mathbb{R}^{T \times N} of picture P at location l, we compute:
b(l,P,f_a,f_b)=f^T_a(l,P)f_b(l,P) \in \mathbb{R}^{M \times N}
\zeta(P)=\sum_{l} b(l,P,f_a,f_b) \in \mathbb{R}^{M \times N}
x=vec(\zeta(P)) \in \mathbb{R^{MN \times 1}}
通俗一点讲,bilinear就是对每个位置上的特征进行矩阵相乘,然后进行sum pooling 或者进行max-pooling。对于一个CNN来讲,有c个通道数,那么在位置i上的特征就是1 \times c的大小,然后与同一位置上,不同CNN得到的1 \times c的矩阵进行乘积,得到c \times c的矩阵,然后将所有位置上的c \times c的矩阵进行求和,再转换成向量的形式就可以得到Bilinear vector。得到的特征需要进行开平方,和归一化操作。
之所以叫bilinear model是因为,f(x,y)=x^TAy固定x时,这个变换对于y是线性的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容