Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

论文解读:胶囊网络在小样本做文本分类中的应用(上)

论文提出用胶囊网络(Capsules Network)来处理短文本的类表示,从而能够进行小样本的学习。通过关系网络学习Query样本和类表示向量的相似行进行分类。

算法的框架图:

由三个部分组成:Encoder + Induction + Relation

1、Encoder

这个部分比较简单,就是提取特征的Bi-LSTM + Attention部分,这里的Attention精过实验会发现Self-Attention比用lstm_output和hidden计算的Attention效果要好。

$self-attention$:

这里就得到encoder的结果

2、Induction

这个模块是论文的核心创新点:提出用胶囊网络(Capsules Network)来动态的表征类向量,句子向量低层特征通过动态路由算法(dynamic routing)映射到高层特征,在胶囊网络里可以称之为胶囊。通过这个网络就能够学习部分sample对某一类文本分类类别的贡献更大,那么就能够反应文本的类表示。

归纳网络induction net的训练过程如下:

需要将support训练得到的类表示向量$c_i$与query输入的查询向量做相似性比较,从而来判断query的文本是属于哪一类或者是属于新的类别

为了能够将胶囊网络学习的语义特征空间根据数据的维度映射到任意的维度,在做dynamic routing之前,论文提出先做一步线性映射,在压缩成胶囊尺寸的单位向量:

接下来就是根据上图所示的代码流程进行动态路由算法,超参数iterate设置的越大,训练会更慢,但是效果也会有一定的提升。动态调整上下两层胶囊的连接权重,并且和为1:

计算$\hat{c}j$表示通过链接权重与encoder的点积得到的权重分配(相关性),再更新$b{ij}$调节连接强度。

具体的胶囊网络的理解可以看看下一篇博客

3、Relation

通过induction模块得到support set的类表示,接下来就是衡量$c_i$和$e_{ij}$之间的相关性,就是简单的dnn。论文中是通过定义的一个三维tensor建模类向量和query向量质检的交互关系,再stack起来,进全连接层对关系进行打分,这里用的是sigmoid。

但是通过实验,relation可以变化和优化的方法很多,直接计算PCC或者cosine距离都能够得到不错的效果。

下面是论文的具体算法过程:

在每个episode中来迭代模型,首先是从训练集类别中随机抽取$C$个类,然后从每个类中选择部分样本构成Support Set,并且会从剩余的样本中抽取样本构成Query Set。在论文中是能够不需要做finetune来泛化学习新的类别的。并且需要训练的episode非常大,需要超过$C_{k_way}^{num_class}$的次数。因此也可以尝试做一些finetune,也会达到不错的效果

论文地址:Dynamic Memory Induction Networks for Few-Shot Text Classification

快商通
快商通

人工智能独角兽企业快商通,掌握自然语言处理、知识图谱、声纹识别、语音识别等技术的自主原创能力,通过将AI、BI引擎技术应用于客服云、销售云、营销云、安全云等产品中,赋能用户实现产业营销智能数字化升级。

理论
暂无评论
暂无评论~