【论文阅读】二进制的Embedding

  • 论文标题: Learning Compressed Sentence Representations for On-Device Text Processing
  • 中文标题: 面向机上文本处理的语句压缩表示学习
  • 论文下载链接: 1906.08340
  • 论文项目代码: GitHub@BinarySentEmb

序言

本文是7位来自杜克大学的学者, 1位斯坦福大学的学者, 以及1位微软研究所的研究员联名发表在ACL 2019上的一篇paper, 主要是关于低资源句子嵌入学习的方法, 实话说笔者本以为原作者背景这么强必有高论, 可惜并没有看到很新颖的做法, 感觉内容偏于浅显, 不像是他们这种水平的人, 还是9个人联名合作的paper, 或许是实验结果比较好吧, 倒是可以作为熟悉这个方面的一篇入门paper;

句子嵌入的学习在NLP领域中是非常重要的课题, 因为它可以给非常多的下游任务提供一个预训练的句子嵌入模型, 包括语义匹配, 文本分类, 情感识别等等, 几乎所有非单词级别的NLP任务, 如句子级别, 文档级别, 都避不开句子嵌入这个难题, 有些简单的做法会将句子中所有的词向量取均值或是加权平均, 抑或是拼接, 前者过于简单, 缺乏表征性, 后者又无可避免地面临维数过高而占用大量资源的难题, 因此找到一个简单且具有高可用性的句子嵌入其实是非常关键的, 而本文恰好就是一个很适合熟悉这块方法的paper, 就结果而言, 本文做到了在几乎不损失原模型性能的条件下, 将内存占用减少了2个数量级, 至少在模型跑不动的情况下, 算是一个权宜之策;



摘要 Abstract

  1. 自然语言处理(Natural Language Processing, 下简称为NLP)问题中常常会使用到语句级别的向量表示, 但是往往通过数据学习到的句子向量是连续的(continuous)以及是实值的(real-valued), 这不便于在缺乏计算资源的平台(low-resource(memory and computation) platform)中进行存储与读取, 尤其是移动设备(如手机);

  2. 本文提出四种策略将通用的连续型句子嵌入(sentence embeddings)转化为二值化的形式(binarized form), 并且保持其原嵌入中所包含的语义信息;

  3. 本文在广泛的下游任务中测试了这种二值化的句子嵌入, 实验结果显示这种方法约牺牲 2 2% 2的模型性能水平, 却能够减少超过 98 98% 98的存储需求; 不仅如此, 在计算句子相似度的问题中, 可以简单计算两个二值化的句子嵌入的汉明距离(Hamming distance), 而无需计算两个连续型句子嵌入的内积, 这样可以降低计算复杂度;

  • 笔者注:
    • 汉明距离定义为两个二进制编码异或运算后各位数值加和的结果, 如 101110 1 ( 2 ) 1011101_{(2)} 1011101(2) 100100 1 ( 2 ) 1001001_{(2)} 1001001(2)之间的汉明距离是 2 2 2, 本质上就是两个二值向量的欧式距离;

1 引入 Introduction

  1. 句子嵌入的学习方式:
  • (1) 无监督学习: 参考文献[20, 13, 16, 11, 21];
  • (2) 通过特定NLP任务进行有监督学习:
    • ① 文本匹配(paraphrase identification): 参考文献[34]
    • ② 自然语言推断(natural language inference): 参考文献[7]
    • ③ 语篇关系分类(discourse relation classification): 参考文献[22]
    • ④ 机器翻译(machine translation): 参考文献[35]
  1. 前人对于句子嵌入的研究都基于嵌入向量是连续的(continuous)与实值的(real-valued)假设前提, 这样的问题在于:
  • (1) 内存占用(memory footprint)与存储成本巨大;
  • (2) 检索语义相似的句子的计算成本巨大, 因为需要对比数据库中每一对句子嵌入的相似度(计算内积);
  1. 本文的设计思路:
  • 本文提出的二值化嵌入的目的在于可以节约内存空间, 并且只需要比较汉明空间(Hamming space)中二进制编码的最小距离即可以简单匹配语义相似的句子;
  • 一种简单的想法是通过设置硬阈值(hard threshold)将连续性向量的每个维度二值化, 但是这种策略会给模型性能带来显著的折损, 而且也无法控制二值化句子嵌入的维数(只能与原连续型句子嵌入维数相同);
    • 笔者注:
      • 如对于某个连续向量 ( 0.3 , 0.4 , 0.9 , 0.7 , 0.2 ) (0.3, 0.4, 0.9, 0.7, 0.2) (0.3,0.4,0.9,0.7,0.2), 在硬阈值 0.5 0.5 0.5的控制下可以转为二值向量 ( 0 , 0 , 1 , 1 , 0 ) (0, 0, 1, 1, 0) (0,0,1,1,0)
  • 因此本文提出三种新策略来参数化这种从预训练的连续型嵌入到二值化嵌入的转换;
    • 本文既对诸如随机投影(random projection)等简单运算操作进行二值化测试, 也训练深度神经网络模型, 如正则自动编码器(regularized autoencoder), 用于将连续向量转为二值向量的实验;
    • 特别地, 本文还提出一种语义保全目标(semantic-preserving objective), 这个目标通过标准自动编码器架构(standard autoencoder architecture)来增强, 以促进模型抽象出富含信息(informative)的二进制编码;
      • 笔者注:
        • 根据下文中的描述, 这个语义保全目标是指训练自动编码器架构模型时使用的损失函数;
    • 本文将参考文献[7]中提出的InferSent嵌入模型作为测试句子嵌入来进行二值化实验, 当然本文的二值化方法是可以很容易地应用到其他预训练的连续型句子嵌入上;
  1. 本文的实验结果:
  • (1) 本文的模型评估方法同样参照参考文献[7]中提及的SentEval toolkit; 最终结论是以牺牲 2 % 2\% 2%的模型性能为代价, 可以将内存占用降低到原模型的 1.5 % 1.5\% 1.5%;
  • (2) 本文也发现在其他的语句匹配任务上, 使用二值化嵌入的汉明距离(Hamming distance)可以取得与连续型嵌入相近(on par)乃至更优的效果
    • 这可以在下文中的Table 1中看到实验结果;
  • (3) 本文还在参考文献[2]提出的SNLI数据集上进一步实施 K K K近邻语句检索实验( K K K-nearest neighbor sentence retrieval experiment), 结果显示二值化嵌入确实可以有效地将语义相似地语句给提取出来;
  1. 本文的贡献:
  • (1) 首次在学习通用的(general-purpose)二值化句子嵌入上进行系统性地研究, 并给出四种不同的转换策略;
  • (2) 一种带有语义保全损失函数(semantic-preserving loss)自动编码器架构, 这种架构被实证分析证实在诸多下游NLP任务中能够取得较好评估结果;
  • (3) 一种新的进行语句匹配的方法, 即计算二值化嵌入的汉明距离(Hamming distance)就可以取得与计算连续型嵌入的余弦相似度(cosine similarity)相似乃至更优的性能;

2 相关工作 Related Work

  1. 关于从大规模语料数据中学习预训练的句子嵌入的方法, 大致可以分为两类:
  • (1) 在特定转换任务(transferring task)上训练预训练模型并进行微调: 参考文献[8, 26, 24, 10, 4]
  • (2) 提取(extract)通用的(general-purpose)句子嵌入的方法, 这种方法可以有效应用于下游NLP任务, 而无需微调编码器参数: 参考文献[20, 13, 16, 11, 37, 21, 23, 30]
  • 本文提出的方法可以归属到第二类, 区别在于本文训练的是二值化嵌入;
  1. 关于使用深度神经网络学习低耗内存(memory-efficient)的嵌入的方法, 大致可以分为两类:
  • (1) 使用离散型句子嵌入; 参考文献[15, 29, 9]
  • (2) 使用二进制数据表示的句子嵌入: 参考文献[5, 28, 31]
  • 相对来说二进制数据表示的句子嵌入更加节约内存, 而且有高效计算汉明距离(Hamming distance)的优势; 但是(2)中的参考文献都是单词级别的压缩嵌入, 目前还很少有在句子级别学习压缩嵌入的研究;
  1. 此外本文的研究还与语义哈希(semantic hashing)相关: 参考文献[27, 39, 33, 38, 28];
  • 这些参考文献都是基于在特定领域文档中训练模型并进行模型评估的, 因此不能用作通用的句子嵌入, 区别于本文的二值化嵌入具有通用性;
  • 笔者注:
    • 语义哈希是指将高维空间向量映射至低维汉明空间, 并保持原空间向量相似性, 使得新空间向量的汉明距离反映原空间向量相似度的哈希算法;
    • 语义哈希引入了近似的概念, 认为在海量数据的搜索中, 在大多数情况下, 完全精确的查找并不是必须的, 近似解己经足以满足用户绝大多数的要求, 因而通过哈希算法迅速定位数据集中一定概率下与搜索关键词相关的数据, 配合汉明空间相似度度量的快速性和索引结果容易进一步扩展的特点, 可以大幅提高索引和检索的效率;

3 提出的方法 Proposed Approach

  • 本文旨在将连续型句子嵌入转换成压缩的二值化句子嵌入, 并且保存前者包含的语义信息;
  • 数学抽象表示:
    • x x x是输入语句, f f f是通过预训练的通用句子编码器(general-purpose sentence encoder)定义得到的映射函数, 则 f ( x ) f(x) f(x)表示由这个编码器提取得到的连续型句子嵌入;
    • 本文需要学习到一个函数 g g g f ( x ) f(x) f(x)转为高信息量的(highly informative)的二值化句子嵌入 g ( f ( x ) ) g(f(x)) g(f(x));

3.1 硬阈值 Hard Threshold

  1. 硬阈值方法的数学符号及公式:
  • h h h表示连续型句子嵌入;
  • b b b表示二值化句子嵌入;
  • s s s表示硬阈值;
  • L L L表示 h h h的维数;
  • 硬阈值方法可以用下面的数学公式表示: b ( i ) = 1 h ( i ) > s = s i g n ( h ( i ) − s ) + 1 2 (1) b^{(i)}=\bm{1}_{h^{(i)}>s}=\frac{{\rm sign}(h^{(i)}-s)+1}{2}\tag{1} b(i)=1h(i)>s=2sign(h(i)s)+1(1)
  1. 硬阈值方法的缺陷:
  • (1) 语义信息大量缺失, 因为硬阈值方法无需训练;
  • (2) 转换后的二值化嵌入 b b b与原连续型嵌入 h h h的维数需要保持一致, 即都为 L L L;

3.2 随机投影 Random Projection

  1. 随机投影方法的概述:
  • (1) 与硬阈值方法相同, 随机投影方法也是无需训练的, 即直接在预训练的连续型句子嵌入上应用一个随机投影;
  • (2) 随机投影方法与局部感知哈希(Locality-Sensitive Hashing, 下简称为LSH)相关;
    • 笔者注:
      • LSH的基本思想是将原始数据空间中的两个相邻数据点通过相同的映射或投影变换(projection)后, 这两个数据点在新的数据空间中仍然相邻的概率很大, 而不相邻的数据点被映射到同一个桶的概率很小;
      • 也就是说, 如果我们对原始数据进行一些哈希映射后, 我们希望原先相邻的两个数据能够被哈希到相同的桶内, 具有相同的桶号;
      • 对原始数据集合中所有的数据都进行哈希映射后, 我们就得到了一个哈希表, 这些原始数据集被分散到了哈希表的桶内, 每个桶会落入一些原始数据, 属于同一个桶内的数据就有很大可能是相邻的, 当然也存在不相邻的数据被哈希到了同一个桶内;
      • 因此, 如果我们能够找到这样一些哈希函数, 使得经过它们的哈希映射变换后, 原始空间中相邻的数据落入相同的桶内的话, 那么我们在该数据集合中进行近邻查找就变得容易了, 我们只需要将查询数据进行哈希映射得到其桶号, 然后取出该桶号对应桶内的所有数据, 再进行线性匹配即可查找到与查询数据相邻的数据;
      • 换句话说, 我们通过哈希映射变换操作, 将原始数据集合分成了多个子集合, 而每个子集合中的数据间是相邻的且该子集合中的元素个数较小, 因此将一个在超大集合内查找相邻元素的问题转化为了在一个很小的集合内查找相邻元素的问题, 显然计算量下降了很多;
  • (3) 随机投影方法解决了硬阈值方法的两个缺陷:
    • ① 参考文献[36]证明了随机句子编码器可以根据词向量有效地构建广泛适用的(universal)句子嵌入, 同时可以自由调整句子嵌入的维数;
    • ② 但是参考文献[36]是基于连续型句子嵌入投影到连续型句子嵌入上的情况;
  • (4) 本文关心的问题是如果是投影到二值化句子嵌入上是否能够同样保持同样的性质;
  1. 随机投影方法的数学符号及公式:
  • W ∈ R D × L W\in\mathbb{R}^{D×L} WRD×L表示投影矩阵;
  • D D D表示投影后句子嵌入的维数, 大小可以进行调整;
  • L L L表示投影前句子嵌入的维数;
  • 根据参考文献[12, 36]中使用的标准启发式初始化(standard initializaion heuristic)方法, 投影矩阵 W W W的初始值可以使用均匀采样得到: W i , j ∼ U n i f o r m ( − 1 D , 1 D ) (2) W_{i,j}\sim {\rm Uniform}\left(-\frac{1}{\sqrt{D}},\frac{1}{\sqrt{D}}\right)\tag{2} Wi,jUniform(D 1,D 1)(2)
  • 利用投影矩阵 W W W得到维数为 L L L的连续型嵌入后, 即可使用Formular 1中的硬阈值方法再将投影结果转为二值化嵌入;

3.3 主成分分析 Principal Component Analysis

  1. 主成分分析可以用于特征降维, 即减少预训练的连续型句子嵌入的维数;

  2. 论文中给出了主成分分析的详细步骤:

  • (1) 给定语句集合 { x i } i = 1 N \{x_i\}_{i=1}^N {xi}i=1N和其对应的连续型嵌入 { h i } i = 1 N ⊂ R L \{h_i\}_{i=1}^N\subset\mathbb{R}^L {hi}i=1NRL
  • (2) 嵌入向量中心化: h i = h i − 1 N ∑ i = 1 N h i h_i=h_i-\frac{1}{N}\sum_{i=1}^Nh_i hi=hiN1i=1Nhi
  • (3) 奇异值分解: H = U Λ V ⊤ H=U\Lambda V^\top H=UΛV, 其中:
    • H = ( h 1 , h 2 , . . . , h N ) H=(h_1,h_2,...,h_N) H=(h1,h2,...,hN)
    • Λ ∈ R L × N \Lambda\in\mathbb{R}^{L×N} ΛRL×N是奇异值矩阵;
    • U U U V V V是正交矩阵;
    • 则相关矩阵(correlation matrix)可以写作 H H ⊤ = U Λ 2 U ⊤ HH^\top=U\Lambda^2U^\top HH=UΛ2U
  • (4) 主成分挑选:
    • 假设对角矩阵 Λ 2 = d i a g ( λ 1 , λ 2 , . . . , λ L ) \Lambda^2={\rm diag}(\lambda_1,\lambda_2,...,\lambda_L) Λ2=diag(λ1,λ2,...,λL)有非负的奇异值: λ 1 ≥ λ 2 ≥ . . . ≥ λ L ≥ 0 \lambda_1\ge\lambda_2\ge...\ge\lambda_L\ge0 λ1λ2...λL0
    • 则可以筛选出 U U U的前 D D D出来作为投影矩阵 W = U 1 : D W=U_{1:D} W=U1:D
    • 此时 W H WH WH的相关矩阵就是 W H H ⊤ W ⊤ = d i a g ( λ 1 , λ 2 , . . . , λ D ) WHH^\top W^\top={\rm diag}(\lambda_1,\lambda_2,...,\lambda_D) WHHW=diag(λ1,λ2,...,λD)
    • 这表明将原连续型嵌入降维到了 D D D维;
  • (5) 最后可以在已经降维的连续型嵌入上适用硬阈值方法得到二值化嵌入, 注意这里的硬阈值一般就可以取 0 0 0, 因为数据已经被中心化了;

3.4 自动编码器框架 Autoencoder Architecture

  1. 前面几种方法的缺陷与解决:
  • (1) 实际模型并不能直接对二值化的嵌入进行训练并赋予其语义信息;
  • (2)本质上这些方法都是通过对已经经过训练后的连续型嵌入所做出的后处理, 这与实际模型训练是完全割裂的;
  • 为了解决这个问题, 本文提出一种自动编码器框架, 通过一种新型的损失函数来使得二值化嵌入可以学习到更多的语义信息; 具体而言, 首先用编码器网络(encoder network)将连续型嵌入映射为二值隐层向量(binary latent vector), 再使用解码器网络(decoder network)将其重构为二值化嵌入;
  1. 编码器网络原理及数学抽象:
  • 编码器网络类似随机投影的方法, 即先进行线性变换后再二值化;
  • 数学公式表达: b ( i ) = 1 σ ( W i ⋅ h + k ( i ) ) > s ( i ) = 1 2 [ s i g n ( σ ( W i ⋅ h + k ( i ) ) − s ( i ) ) + 1 ] (3) b^{(i)}=\bm{1}_{\sigma(W_i\cdot h+k^{(i)})>s^{(i)}}=\frac{1}{2}\left[{\rm sign}(\sigma(W_i\cdot h+k^{(i)})-s^{(i)})+1\right]\tag{3} b(i)=1σ(Wih+k(i))>s(i)=21[sign(σ(Wih+k(i))s(i))+1](3) 其中:
    • h h h表示连续型句子嵌入;
    • b b b表示二值化句子嵌入;
    • k ( i ) k^{(i)} k(i)为偏差项(bias term) k k k的第 i i i个元素;
    • s ( i ) s^{(i)} s(i)为决定第 i i i个元素投影到 0 0 0 1 1 1的阈值;
  • 模型训练中, 可以对隐层变量(latent variable)使用确定的(deterministic)或者随机的(stochastic)二值化操作:
    • (1) 确定的二值化: 如设置 s ( i ) = 0.5 s^{(i)}=0.5 s(i)=0.5对任意 i i i成立;
    • (2) 随机的二值化: 如设置 s ( i ) ∼ U n i f o r m ( 0 , 1 ) s^{(i)}\sim{\rm Uniform}(0,1) s(i)Uniform(0,1)对任意 i i i成立;
    • Section 4中有这两种方法的效果比较;
  1. 解码器网络原理及数学抽象:
  • 参考文献[3, 9, 28]提出线性解码器(linear decoders)是encoder-decoder框架下学习二进制编码非常好的选择;
  • 因此本文使用的也是一个线性变换来从原始的连续型嵌入得到二进制编码: h ^ ( i ) = W i ′ ⋅ b + k ′ ( i ) (4) {\hat h}^{(i)}=W_i^{\prime}\cdot b+k^{\prime(i)}\tag{4} h^(i)=Wib+k(i)(4) 其中:
    • W ′ W^\prime W k ′ k^\prime k分别是学习得到的权重项与偏差项;
    • 重构损失函数(reconstruction loss)定义为 h h h h ^ \hat h h^之间的均方误差(mean square error, 下简称为MSE): L r e c = 1 D ∑ i = 1 D ( h ( i ) − h ^ ( i ) ) 2 (5) \mathcal{L}_{rec}=\frac{1}{D}\sum_{i=1}^D\left(h^{(i)}-{\hat h}^{(i)}\right)^2\tag{5} Lrec=D1i=1D(h(i)h^(i))2(5)
    • 自动编码器(autoencoder)模型对重构损失函数进行优化, 使得二进制向量 b b b尽可能多地从 h h h中编码信息;
    • 参考文献[14]中提出的Straight-through估计量(estimator)可以用来估计二进制变量的梯度;

3.4.1 语义保全正则器 Semantic-preserving Regularizer

  1. 自动编码器框架的缺陷:
  • Formular 5定义的重构损失函数(reconstruction loss)使得二进制变量能够学习到丰富的语义信息;
  • 但是仍然缺少可以用于直接促进二进制向量保全原始连续型嵌入中包含的相似性信息的损失函数;
  • 结果会导致虽然模型的重构损失函数值被训练到很低, 但是只能得到次优的二进制表示(参考文献[31]);
  • 为了解决缺陷, 本文提出另一个训练目标;
  1. 语义保全正则器数学抽象及公式:
  • 考虑一个语句三元组 ( x α , x β , x γ ) (x_\alpha,x_\beta,x_\gamma) (xα,xβ,xγ), 它们的连续型嵌入为 ( h α , h β , h γ ) (h_\alpha,h_\beta,h_\gamma) (hα,hβ,hγ), 转换后的二值化嵌入 ( b α , b β , b γ ) (b_\alpha,b_\beta,b_\gamma) (bα,bβ,bγ)
  • d c ( ⋅ , ⋅ ) d_c(\cdot,\cdot) dc(,)表示两个连续型嵌入的余弦相似度;
  • d h ( ⋅ , ⋅ ) d_h(\cdot,\cdot) dh(,)表示两个二值化嵌入的汉明距离;
  • l α , β , γ l_{\alpha,\beta,\gamma} lα,β,γ为指示函数, 若 d c ( h α , h β ) ≥ d c ( h β , h γ ) d_c(h_\alpha,h_\beta)\ge d_c(h_\beta,h_\gamma) dc(hα,hβ)dc(hβ,hγ)则取值为 1 1 1, 反之取值为 − 1 -1 1;
  • 注意到若 d c ( h α , h β ) ≥ d c ( h β , h γ ) d_c(h_\alpha,h_\beta)\ge d_c(h_\beta,h_\gamma) dc(hα,hβ)dc(hβ,hγ), 则我们希望训练后的二值化嵌入应当满足 d h ( b α , b β ) ≤ d h ( b β , b γ ) d_h(b_\alpha,b_\beta)\le d_h(b_\beta,b_\gamma) dh(bα,bβ)dh(bβ,bγ);
    • 笔者注:
      • 余弦相似度的取值范围是 [ − 1 , 1 ] [-1, 1] [1,1], 值越大表示距离越小;
      • 汉明距离的取值范围是非负整数集合, 值越大表示距离越大;
  • 则语义保全正则器可以定义为: L s p ∑ α , β , γ max ⁡ { 0 , l α , β , γ [ d h ( b α , b β ) − d h ( b β , b γ ) ] } (6) \mathcal{L}_{sp}\sum_{\alpha,\beta,\gamma}\max\{0,l_{\alpha,\beta,\gamma}[d_h(b_\alpha,b_\beta)-d_h(b_\beta,b_\gamma)]\}\tag{6} Lspα,β,γmax{0,lα,β,γ[dh(bα,bβ)dh(bβ,bγ)]}(6) 通过将 L s p \mathcal{L}_{sp} Lsp作为损失函数的惩罚项, 就可以使得转换后的二值化嵌入能够尽可能地保存语义相似性的信息: L = L r e c + λ s p L s p (7) \mathcal{L}=\mathcal{L}_{rec}+\lambda_{sp}\mathcal{L}_{sp}\tag{7} L=Lrec+λspLsp(7) 其中\lambda_{sp}是惩罚项权重, 为可调超参数;

3.5 讨论 Discussion

  1. Figure 1中给出了上文提到的几种方法的示意图:
  • Figure 1
  1. 其他一些可能的策略: 都已经通过实证分析得出效果不行;
  • 参考文献[19]: 联合优化连续型嵌入的目标函数和continuous-to-binary parameterization;
  • 参考文献[7]: 在InferSent架构上直接添加一个二值化层, 这将给模型性能带来极大的损失;

4 实验配置 Experimental setup

4.1 预训练的连续型嵌入 Pre-trained Continuous Embeddings

  1. 本文使用参考文献[7]中的InferSent作为预训练的连续型嵌入;
  2. 本文的方法也适用于其他预训练的通用句子嵌入上;
  3. 句子编码器的架构是一个Bi-LSTM, 隐层上进行最大值池化(max-pooling);
  4. 模型参数根据参考文献[2]的数据集SNLI(Standford Natural Language Inference)与参考文献[37]的数据集MultiNLI(Multi-Genre Natural Language Inference)及它们对应的自然语言任务来进行优化;

4.2 训练详情 Training Details

  1. 优化器: Adam;
  2. 学习率: 1 × 1 0 − 5 1×10^{-5} 1×105;
  3. 二值化嵌入的维度: 512 , 1024 , 2048 , 4096 512,1024,2048,4096 512,1024,2048,4096;
  4. 批训练量: 64 64 64;
  5. 惩罚项系数 λ s p \lambda_{sp} λsp: 0.2 , 0.5 , 0.8 , 1.0 0.2,0.5,0.8,1.0 0.2,0.5,0.8,1.0, 其中 0.8 0.8 0.8的实证分析结果最好;
  6. 自动编码器收敛速度: 约 1 1 1小时收敛, 因此可以应用于更大的数据集;

4.3 评估 Evaluation

  1. 本文使用参考文献[6]中提出的SentEval toolkit(Github@SentEval)来进行二进制句子嵌入的评估; 具体而言是将学习得到的二进制句子嵌入在一系列下游任务中评估它的迁移性能(给定编码器的权重不变), 这些下游任务及数据集大致可以分为以下两类:
  • (1) 语句分类(Sentence classification):
    • ① 情感分析(sentiment analysis): MR, SST;
    • ② 商品评论(product reviews): CR;
    • ③ 主观分类(subjectivity classification): SUBJ;
    • ④ 意见极性检测(opinion polarity detection): MPQA;
    • ⑤ 问题类型分类(question type classification): TREC;
  • (2) 语句匹配(Sentence matching):
    • ① 语义相关性(semantic relatedness): SICK-R, STS14, STSB;
    • ② 释义检测(paraphrase detection): MRPC;

4.4 基线 Baselines

  1. 连续型嵌入的基线:
  • (1) Fasttext-Bov: 参考文献[17]
  • (2) Skip-Thought Vectors: 参考文献[20]
  • (3) InferSent: 参考文献[7]
  1. 二值化嵌入的基线:
  • (1) InferLite的二值化版本: 参考文献[19]
    • 这是本文能找到的可以用于对比的通用的句子表示;

5 实验结果 Experimental Results

  1. 本文在五种学习通用二值化嵌入的模型变体上进行实验, 详细实验数据见Table 1:
  • (1) 硬阈值: HT-binary, 阈值取值范围 { 0 , 0.01 , 0.1 } \{0,0.01,0.1\} {0,0.01,0.1};
  • (2) 随机投影: Rand-binary;
  • (3) 主成分分析: PCA-binary;
  • (4) 自动编码器: AE-binary;
  • (4) 带惩罚项的自动编码器: AE-binary-SP;

Table 1

5.1 迁移任务评估 Task transfer evaluation

  1. 一系列迁移任务上的评估结果同样可见Table 1:
  • (1) 自动编码器架构基本上都取得了最好的结果;
  • (2) 带惩罚项的自动编码器相比标准自动编码器效果略优, 甚至接近InferSent本身的效果, 只差了约 2 % 2\% 2%;
  • (3) 随机投影与主成分分析的效果也还行;

5.2 近邻检索 Nearest Neighbor Retrieval

  1. 案例分析:
  • Table 2
  • Table 2中是SNLI数据集中的语句在连续型嵌入与二值化嵌入下进行近邻检索(即寻找语义相近句子的结果)的对比; 可以看出二值化嵌入的检索结果是合理的;
  1. 检索速率:
  • Python脚本下在SNLI中抽取 10000 10000 10000个句子分别进行近邻检索, 连续型嵌入耗时 3.67 μ s 3.67\mu s 3.67μs, 二值化嵌入仅用时 0.288 μ s 0.288\mu s 0.288μs;

5.3 消融研究 Ablation Study

5.3.1 语义保全损失函数的影响 The effect of semantic-preserving loss

  1. 通过调整Formular 7中的超参数 λ s p \lambda_{sp} λsp(从 0.0 0.0 0.0 1.0 1.0 1.0), 可以得到Table 3中的对比结果:
  • Table 3

5.3.2 采样策略 Sampling strategy

  1. 正如上文Section 3.4中所述, 二进制隐层向量(binary latent vector) b b b可以通过确定的(deterministic)或随机的(stochastic)采样的阈值生成, 这里也对这两种方法进行了对比, 结果如Figure 2所示:
  • Figure 2

5.3.3 嵌入维度的影响 The effect of embedding dimension

Figure 3


6 结论 Conclusion

  • 这部分内容不再赘述, 基本都是些重复性的套话;
  • 笔者感觉本文有点水, 本来看作者是来自斯坦福大学, 微软研究所这样的顶级机构, 开头说提出了四种策略, 以为必有高论, 结果前三种原来就是硬阈值, 随机投影和主成分分析, 是非常平实的方法; 最后一种策略也没有看到太多亮点, 也就是找了一个惩罚项加在了均方误差损失函数后面, 这居然也能发表ACL实在是让笔者有点惊诧, 大约机构背景也是录稿的重要参照之一, 即便是顶级会议上怕也不乏人情稿唉;

参考文献 Reference

[01] Yossi Adi, Einat Kermany, Yonatan Belinkov, Ofer Lavi, and Yoav Goldberg. 2017. Fine-grained analysis of sentence embeddings using auxiliary prediction tasks. CoRR, abs/1608.04207. 
[02] Samuel R. Bowman, Gabor Angeli, Christopher Potts, and Christopher D. Manning. 2015. A large annotated corpus for learning natural language inference. In EMNLP. 
[03] Miguel A Carreira-Perpin´an and Ramin Raziperchikolaei. 2015. Hashing with binary autoencoders. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 557–566. 
[04] Daniel Cer, Yinfei Yang, Sheng yi Kong, Nan Hua, Nicole Limtiaco, Rhomni St. John, Noah Constant, Mario Guajardo-Cespedes, Steve Yuan, Chris Tar, Yun-Hsuan Sung, Brian Strope, and Ray Kurzweil. 2018. Universal sentence encoder. CoRR, abs/1803.11175. 
[05] Ting Chen, Martin Renqiang Min, and Yizhou Sun. 2018. Learning k-way d-dimensional discrete codes for compact embedding representations. arXiv preprint arXiv:1806.09464. 
[06] Alexis Conneau and Douwe Kiela. 2018. Senteval: An evaluation toolkit for universal sentence representations. arXiv preprint arXiv:1803.05449. 
[07] Alexis Conneau, Douwe Kiela, Holger Schwenk, Lo¨ıc Barrault, and Antoine Bordes. 2017. Supervised learning of universal sentence representations from natural language inference data. In EMNLP. 
[08] Andrew M Dai and Quoc V Le. 2015. Semi-supervised sequence learning. In Advances in neural information processing systems, pages 3079–3087.
[09] Bo Dai, Ruiqi Guo, Sanjiv Kumar, Niao He, and Le Song. 2017. Stochastic generative hashing. In Proceedings of the 34th International Conference on Machine Learning-Volume 70, pages 913–922. JMLR. org. 
[10] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. 2018. Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805. 
[11] Zhe Gan, Yunchen Pu, Ricardo Henao, Chunyuan Li, Xiaodong He, and Lawrence Carin. 2017. Learning generic sentence representations using convolutional neural networks. In EMNLP. 
[12] Xavier Glorot and Yoshua Bengio. 2010. Understanding the difficulty of training deep feedforward neural networks. In Proceedings of the thirteenth international conference on artificial intelligence and statistics, pages 249–256. 
[13] Felix Hill, Kyunghyun Cho, and Anna Korhonen. 2016. Learning distributed representations of sentences from unlabelled data. In HLT-NAACL.
[14] G Hinton. 2012. Neural networks for machine learning. coursera,[video lectures]. 
[15] Eric Jang, Shixiang Gu, and Ben Poole. 2016. Categorical reparameterization with gumbel-softmax. arXiv preprint arXiv:1611.01144. 
[16] Yacine Jernite, Samuel R. Bowman, and David A Sontag. 2017. Discourse-based objectives for fast unsupervised sentence representation learning. CoRR, abs/1705.00557. 
[17] Armand Joulin, Edouard Grave, Piotr Bojanowski, and Tomas Mikolov. 2016. Bag of tricks for efficient text classification. arXiv preprint arXiv:1607.01759. 
[18] Diederik P Kingma and Jimmy Ba. 2014. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980. 
[19] Jamie Kiros and William Chan. 2018. Inferlite: Simple universal sentence representations from natural language inference data. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pages 4868–4874.
[20] Ryan Kiros, Yukun Zhu, Ruslan Salakhutdinov, Richard S. Zemel, Antonio Torralba, Raquel Urtasun, and Sanja Fidler. 2015. Skip-thought vectors. In NIPS. 
[21] Lajanugen Logeswaran and Honglak Lee. 2018. An efficient framework for learning sentence representations. ICLR. 
[22] Allen Nie, Erin D. Bennett, and Noah D. Goodman. 2017. Dissent: Sentence representation learning from explicit discourse relations. CoRR, abs/1710.04334. 
[23] Matteo Pagliardini, Prakhar Gupta, and Martin Jaggi. 2018. Unsupervised learning of sentence embeddings using compositional n-gram features. In NAACL-HLT. 
[24] Alec Radford, Karthik Narasimhan, Tim Salimans, and Ilya Sutskever. 2018. Improving language understanding by generative pre-training. URL https://s3us-west-2. amazonaws. com/openai-assets/researchcovers/languageunsupervised/language understanding paper. pdf. 
[25] Sujith Ravi and Zornitsa Kozareva. 2018. Selfgoverning neural networks for on-device short text classification. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pages 804–810. 
[26] Sebastian Ruder and Jeremy Howard. 2018. Universal language model fine-tuning for text classification. In ACL. 
[27] Ruslan Salakhutdinov and Geoffrey Hinton. 2009. Semantic hashing. International Journal of Approximate Reasoning, 50(7):969–978. 
[28] Dinghan Shen, Qinliang Su, Paidamoyo Chapfuwa, Wenlin Wang, Guoyin Wang, Lawrence Carin, and Ricardo Henao. 2018. Nash: Toward end-to-end neural architecture for generative semantic hashing. In ACL. 
[29] Raphael Shu and Hideki Nakayama. 2017. Compressing word embeddings via deep compositional code learning. arXiv preprint arXiv:1711.01068. 
[30] Shuai Tang and Virginia R de Sa. 2018. Improving sentence representations with multi-view frameworks. arXiv preprint arXiv:1810.01064. 
[31] Julien Tissier, Amaury Habrard, and Christophe Gravier. 2019. Near-lossless binarization of word embeddings. AAAI. 
[32] Benjamin Van Durme and Ashwin Lall. 2010. Online generation of locality sensitive hash signatures. In Proceedings of the ACL 2010 Conference Short Papers, pages 231–235. Association for Computational Linguistics. 
[33] Jingdong Wang, Heng Tao Shen, Jingkuan Song, and Jianqiu Ji. 2014. Hashing for similarity search: A survey. arXiv preprint arXiv:1408.2927. 
[34] John Wieting, Mohit Bansal, Kevin Gimpel, and Karen Livescu. 2016. Towards universal paraphrastic sentence embeddings. CoRR, abs/1511.08198. 
[35] John Wieting and Kevin Gimpel. 2018. Paranmt-50m: Pushing the limits of paraphrastic sentence embeddings with millions of machine translations. In ACL. 
[36] John Wieting and Douwe Kiela. 2018. No training required: Exploring random encoders for sentence classification. CoRR, abs/1901.10444. 
[37] Adina Williams, Nikita Nangia, and Samuel R Bowman. 2017. A broad-coverage challenge corpus for sentence understanding through inference. arXiv preprint arXiv:1704.05426. 
[38] Jiaming Xu, Peng Wang, Guanhua Tian, Bo Xu, Jun Zhao, Fangyuan Wang, and Hongwei Hao. 2015. Convolutional neural networks for text hashing. In Twenty-Fourth International Joint Conference on Artificial Intelligence. 
[39] Dell Zhang, Jun Wang, Deng Cai, and Jinsong Lu. 2010. Self-taught hashing for fast similarity search. In Proceedings of the 33rd international ACM SIGIR conference on Research and development in information retrieval, pages 18–25. ACM.

附录: 图表汇总

Figure 1
Table 1
Table 2
Table 3
Figure 2
Figure 3

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页