小样本学习记录————利用所有数据的元学习Few-shot Text Classification with Distributional Signatures

在计算机视觉中,低水平的模式是可以跨学习任务迁移的。然而,直接将这一方法应用于文本是具有挑战性的-词汇特征对一项任务具有很高的信息量,对另一项任务可能无关紧要。本文的模型不仅从单词中学习,还利用了它们的分布签名,这些签名编码了相关的单词并发模式。我们的模型在元学习框架内进行训练,将这些签名映射为注意力分数,然后用这些分数对单词的词汇表示进行加权。

网络结构

注意力生成器

关注单词统计的函数,根据大的资源库来统计一般词的重要性,利用支持集来估计特定词的重要性,生成的注意力机制构建下游分类的表示。

  • 根据文献中的记载,频繁出现的词不太可能是信息性的,(因为这里the会比较容易出现),所以要降低频繁词的权重,增加稀有词的权重,本文选用了Arora的一种既定的方法。

    s(xi):=ϵϵ+P(xi)s(x_i):=\frac \epsilon {\epsilon + P(x_i)}s(xi​):=ϵ+P(xi​)ϵ​

    这里ϵ是10−3,xi是第i个单词,P(xi)是xi在源域的重要性。\epsilon是10^{-3},x_i是第i个单词,P(x_i)是x_i在源域的重要性。ϵ是10−3,xi​是第i个单词,P(xi​)是xi​在源域的重要性。

  • 支持集中有区别的词在查询集中也有可能有区别。所以定义了所以如下的统计数据来反应单词重要性。

    t(xi):=H(P(y∣xi))−1t(x_i):=\mathcal H(P(y|x_i))^{-1}t(xi​):=H(P(y∣xi​))−1

    (P(y∣xi))是支持集上的极大似然,H(.)是熵算子,t(.)根据频率分布高度加权。(P(y|x_i))是支持集上的极大似然,\mathcal H(.)是熵算子,t(.)根据频率分布高度加权。(P(y∣xi​))是支持集上的极大似然,H(.)是熵算子,t(.)根据频率分布高度加权。

  • 直接使用统计量可能不是效果很好原因如下

    • 两个统计量可能互补,不清楚如何结合。

    • 这些统计量对于分类来说单词重要性噪声近似。使用双向LSTM融合输入信息,使用点积注意力来预测单词xix_ixi​的注意力分数。

      αi:=exp(vThi)∑jexp(vThj)\alpha_i :=\frac {exp(v^Th_i)} {\sum_jexp(v^Th_j)}αi​:=∑j​exp(vThj​)exp(vThi​)​

      hih_ihi​是i处的双向LSTM输出,v是可学习的向量。

岭回归

在注意生成器下,岭回归者在看了几个例子后很快就学会了做出预测。首先,对于给定情节中的每个例子,我们构建一个词汇表征,重点放在重要的单词上,由注意力分数表示。下一步,给出这些词汇表示,我们从零开始训练支持集上的岭回归。最后,我们进行预测。

  • 构建表征:根据不同的词的重要程度进行词汇表征。

    ϕ(x):=∑iα⋅febd(xi)\phi(x):=\sum_i\alpha·f_{ebd}(x_i)ϕ(x):=i∑​α⋅febd​(xi​)

    febd(⋅)f_{ebd}(·)febd​(⋅)是预训练后对x的嵌入表示。

  • 从支持集训练:岭回归允许模型进行端到端的闭合解可以减少过拟合。

    W=ϕST(ϕSϕST+λI)−1YSW = \phi^T_S(\phi_S\phi_S^T+\lambda I)^-1Y_SW=ϕST​(ϕS​ϕST​+λI)−1YS​

    I是定义的矩阵,W是权重矩阵,λ\lambdaλ是正则化系数。

  • 在查询集的推理:使用Y^Q\hat Y_QY^Q​推理P^Q\hat P_QP^Q​,使用交叉熵损失类更新参数。

    Y^Q=αϕQW+b\hat Y_Q = \alpha\phi_QW + bY^Q​=αϕQ​W+b

理论分析

  • 为了针对提高输入扰动的鲁棒性,设(P, S, Q)集合,P是原集,Q是查询集, S是支持集,对于任何S和Q的交集,注意力生成器会产生词的重要性。

    α=AttGen(x∣S,P)\alpha = AttGen(x|S,P)α=AttGen(x∣S,P)

    因为重要的单词可能会被常见的单词替换(如the,a经常出现),所以我们使用σ(w)\sigma(w)σ(w)表示单词的扰动,使用P(W)=P(σ(W))P(W)=P(\sigma(W))P(W)=P(σ(W))来表示w,这样可以使单词映射到相同的特征空间。

训练过程

了解完这篇文章的网络结构,下面根据几副来好好理解一下训练过程

元训练

  • 在元训练的每个episode中。首先从训练集拿出N个类样本,在从N类样本中进行支持集和查询集的抽取,在这一episode中将剩下的样本作为源池库。
  • 元测试中,从测试集抽取支持集和查询集,将训练集作为源池库。

源池库的作用是为了让对查询集分布更加的合理,减少过拟合。

在每一个episode中,可以将数据集分成以下的部分。

整体结构

文章的整个思路根据下图再进行一次梳理就显得很清楚了,

  • 首先根据支持集和源池库中的样本中单词分布通过双向LSTM得到注意力分数α\alphaα,
  • α\alphaα和FastText进行从词嵌入相乘构造特征向量ϕ(x)\phi(x)ϕ(x)。
  • 在支持集中训练,利用YSY_SYS​和对支持集的特征向量ϕ(x)\phi(x)ϕ(x)得到W参数。
  • 最后利用得到的W和对查询集进行特征表征后得到的ϕ(x)\phi(x)ϕ(x)计算查询集的概率值,计算误差进行参数更新。

进行特征表征后得到的ϕ(x)\phi(x)ϕ(x)计算查询集的概率值,计算误差进行参数更新。

论文代码是开源的,感兴趣的小伙伴可以先看看,后续我会再补上代码研读。https://github.com/YujiaBao/Distributional-Signatures

小样本学习记录————利用所有数据的元学习Few-shot Text Classification with Distributional Signatures相关推荐

  1. MySQL学习记录 (三) ----- SQL数据定义语句(DDL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  2. MySQL学习记录 (二) ----- SQL数据查询语句(DQL)

    相关文章: <MySQL学习记录 (一) ----- 有关数据库的基本概念和MySQL常用命令> <MySQL学习记录 (二) ----- SQL数据查询语句(DQL)> &l ...

  3. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  4. 【提示学习】Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inference

    论文信息 名称 内容 论文标题 Exploiting Cloze Questions for Few Shot Text Classification and Natural Language Inf ...

  5. 【网络流量识别】【深度学习】【四】DNN、GBT和RF—利用大数据和深度学习技术进行入侵检测

    本文发表于2019年4月,ACM东南会议纪要,作者为奥萨马·费克等人,现收录于ACM网站. 原文题目:使用大数据和深度学习技术进行入侵检测 原文链接:使用大数据和深度学习技术进行入侵检测|2019年A ...

  6. VQA任务学习记录1(附数据使用代码记录)

    0.前言 最近需要学习处理VQA任务特此记录,这个主要是对论文bottom-up and top-down()和bilinear attention network()中的代码部分的学习记录,目前也并 ...

  7. RPLIDAR思岚雷达学习记录--4--雷达数据实时保存

    数据持续输出测试 第三节中最后虽然可以读取到雷达的角度和距离数据,但是每次后面读取的数据都会覆盖之前的数据,因此尝试使用动态的文件名,这样每次保存数据都会使用不同的文件名,数据就不会被覆盖.决定使用当 ...

  8. ROS学习-记录和回放数据

    本博客将介绍怎么使用ROS系统来记录数据到一个.bag文件中,然后回放数据,在运行系统中产生类似的效果. 记录数据(创建一个bag文件) 从一个运行的ROS系统中记录topic数据,并存储到bag文件 ...

  9. 【迁移学习(Transfer L)全面指南】元学习

    文章目录 1 什么是元学习? 2 与迁移学习 3 元学习的基本问题可以分成三大类 4 总结 1 什么是元学习? 元学习即Meta-Learnig,它希望模型获取一种"学会学习"的能 ...

最新文章

  1. 解决每次git pull需要不用输入用户名信息
  2. C#中各种数据类型转换的方法的类
  3. 19、修改和删除事件(ALTER/DROP EVENT)
  4. 最详细的创建虚拟机_创建_安装配置_配置启动向导
  5. 类和类之间的关系解析-1
  6. 机器人与目标匹配问题及解决 虚拟动力学 纳什平衡 Q-Learning
  7. (140)System Verilog替代交叉覆盖率
  8. 游戏地图制作---Tiled使用教程
  9. 系统安装-黑苹果之路
  10. python学习笔记-递归函数
  11. JVM(四)—一道面试题搞懂JVM类加载机制
  12. 计算机二级web最全真题题库下载
  13. 本科毕业设计(论文)格式最详细总结
  14. oracle新增字段,并设置默认值
  15. 学习 C++,关键是要理解概念,而不应过于深究语言的技术细节
  16. 留着以后慢慢做的计算几何(题表)
  17. 企业如何实现在线客服功能?
  18. 解决低版本matlab打开高版本Matlab的.m文件时,出现中文乱码的问题。
  19. 9个最佳的大数据处理编程语言
  20. 微机原理DOSBox安装与使用

热门文章

  1. 能量景观(Energy landscape)
  2. Kaggle Top1% 是如何炼成的!
  3. python模拟上传图片_用python创建自己的等离子图片模拟
  4. 高中信息技术合格考试Python编程知识点全整理【连载....】
  5. linux startx错误,Linux startx命令错误:
  6. MySQL数据库删除大量数据的方式
  7. 2013年MBA、MPA、MPAcc入学考试综合能力辅导教材
  8. Python数据处理(三)——美国西雅图自行车流量可视化
  9. 没有比这个更详细的Elasticsearch教程
  10. 又一微信自动化框架wxauto横空出世了!