8

论文解读(XR-Transformer)Fast Multi-Resolution Transformer Fine-tuning for Extr...

 2 years ago
source link: https://www.cnblogs.com/BlairGrowing/p/15998585.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Paper Information

Title:Fast Multi-Resolution Transformer Fine-tuning for Extreme Multi-label Text Classification
Authors:Jiong Zhang, Wei-Cheng Chang, Hsiang-Fu Yu, I. Dhillon
Sources:2021, ArXiv
Other:3 Citations, 61 References
Paper:download
Code:download

1 背景知识

  训练集 {xi,yi}Ni=1,xi∈D 代表着第 i 个文档,yi∈{0,1}L 是第i个样本的第 ℓ 个标签。

  eXtreme Multi-label Text Classification (XMC) 目标是寻找一个这样的函数 f:D×[L]↦R,f(x,ℓ) 表示输入 x 与标签 ℓ 之间的相关性。

  实际上,得到 top−k 个最大值的索引作为给定输入 x 的预测相关标签。最直接的模型是一对全(OVA)模型:

    f(x,ℓ)=w⊤ℓΦ(x);ℓ∈[L](1)

    • W=[w1,…,wL]∈Rd×L 是权重向量
    • Φ(⋅) 是一个文本向量转换器,Φ:D↦Rd用于将 x转换为 d 维特征向量

  为了处理非常大的输出空间,最近的方法对标签空间进行了划分,以筛选在训练和推理过程中考虑的标签。特别是 [7, 12, 13, 34, 35, 39] 遵循三个阶段的框架:partitioning、shortlisting 和 ranking。

  首先 partitioning 过程,将标签分成 K 个簇 C∈{0,1}L×K ,Cℓ,k=1 代表这标签 ℓ 在第 k 个簇中。

  然后 shortlisting 过程,将输入 x 映射到相关的簇当中:

    g(x,k)=ˆw⊤kΦg(x);k∈[K](2)

  最后 ranking 过程,在 shortlisted 上训练一个输出大小为 L 的分类模型:

    f(x,ℓ)=w⊤ℓΦ(x);ℓ∈Sg(x)(3)

  其中 Sq(x)⊂[L] 是标签集的一个子集。

  对于基于 transformer 的方法,主要花费的时间是 Φ(x) 的评价。但是 K 值太大或太小仍然可能会有问题。实证结果表明,当 cluster 的大小 B 太大时,模型的性能会下降。典型的 X-Transformer 和 LightXML ,他们的簇大小B 通常 B(≤100)  ,聚类数 K 通常为 K≈L/B。

2 XR-Transformer 方法

  在 XR-Transformer 中,我们递归地对 shortlisting 问题应用相同的三阶段框架,直到达到一个相当小的输出大小 LBD。

2.1 Hierarchical Label Tree (HLT)

  递归生成标签簇 D 次,相当于构建一个深度为 D 的 HLT。我们首先构建标签特征 Z∈RL׈d。这可以通过在标签文本上应用文本向量量化器,或者从 Positive Instance Feature Aggregation(PIFA) 中实现:

    Zℓ=vℓ‖vℓ‖; where vℓ=∑i:yi,ℓ=1Φ(xi),∀ℓ∈[L](4)

  其中:Φ:D↦Rd是文本向量化转换器。

  使用平衡的 k-means(k=B) 递归地划分标签集,并以自上而下的方式生成 HLT。

  通过层次聚类,最终得到每两层之间的隶属矩阵:

    {C(t)}Dt=1

  其中  C(t)∈{0,1}Kt×Kt−1  with   K0=1、KD=L 

2.2 Multi-resolution Output Space

  粗粒度的标签向量可以通过对原始标签进行max-pooling得到(在标签空间中)。第 t 层的真实标签(伪标签)为:

    Y(t)=binarize(Y(t+1)C(t+1))(5)

  如果由粗粒度到细粒度进行标签的学习,那么就可以得到 t 个由易到难的任务。

  然而,直接用以上训练方式会造成信息损失。直接做max-pooling的方法无法区分:一个cluster中有多个真实标签和一个cluster中有一个真实标签。直观上,前者应该有更高的权重。

  因而,通过一个非负的重要性权重指示每个样本对每个标签的重要程度:

     R(t)∈RN×Kt+ 

  该重要性权重矩阵通过递归方式构建,最底层的重要性权重为原始 标签归一化。之后递归地将上一层的结果传递到下一层。

    R(t)=R(t+1)C(t+1)(6)

    R(D)=Y(D)

    ˆR(t)i,j={R(t)i,j‖R(t)i‖1 if Y(t)i,j=1α otherwise 

2.3 Label Shortlisting

  在每一层,不能只关注于少量真实的标签,还需要关注于一些高置信度的非真实标签。(因为分类不是100%准确,要给算法一些容错度,之后用 beam search 矫正)

  在每一层,将模型预测出的 top-k relevant clusters 作为父节点。因而,在第 t 层我们需要考虑 t−1 层的标签列表。

    P(t−1)=Top(W(t−1)⊤Φ(X,Θ(t−1)),k)(7)M(t)=binarize(P(t−1)C(t)⊤)+binarize(Y(t−1)C(t)⊤)(8)

  对于每个实例,只有非零的M对应的样本才会被计算进损失函数。最终,在第 t 层的损失函数:
    minW(t),ΘN∑i=1∑ℓ:M(t)i,ℓ≠0ˆR(t)i,ℓL(Y(t)i,ℓ,W(t)⊤ℓΦ(xi,Θ))+λ‖W(t)‖2(9)

2.4 Training with bootstrapping

  我们利用递归学习结构,通过模型自举来解决这个问题。

    W(t)init:=argminW(t)N∑i=1∑ℓ:M(t)i,ℓ≠0ˆR(t)i,ℓL(Y(t)i,ℓ,W(t)⊤ℓΦdnn(xi,θ(t−1)∗))+λ‖W(t)‖2(11)

3 Algorithm

__EOF__


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK