论文阅读“SimCTC: A Simple Contrast Learning Method of Text Clustering”

Li, Chen, et al. "SimCTC: A Simple Contrast Learning Method of Text Clustering (Student Abstract)." Proceedings of the AAAI Conference on Artificial Intelligence. Vol. 36. No. 11. 2022.

摘要导读

本文提出了一种简单的对比学习方法(SimCTC),大大提升了最先进的文本聚类模型。在SimCTC中,一个预先训练好的BERT模型首先将输入序列映射到表示空间,然后再由三个不同的损失函数--clustering head、instance-contrastive learning head和cluster-contrastive learning head进行训练。

模型浅析

该模型主要包含四个主要的组件:

  1. BERT模型,为每个句子的输入编码为一个embedding表示;
    使用nlpaug库里面的Bertbase和Roberta分别产生原始输入的两个增强句子 和。
# 核心代码块如下
import nlpaug.augmenter.word as naw
aug_bert = naw.ContextualWordEmbsAug(
    model_path='bert-base-uncased', 
    action=ACTION, 
    top_k=TOP_K,
    aug_p=AUG_P
    )
text = """Come into town with me today to buy food!"""
augmented_text = aug_bert.augment(text, n=3) # n: num. of outputs
print(augmented_text)

然后将、 和输入到BERT-Like模型中,得到对应的句子编码表示、 和。然后通过同时优化以下三个损失得到文本聚类结果。

  1. clustering head,试图将同一语义类别的句子表述聚类在一起;
    这里使用的是深度聚类模型DEC中KL散度针对原始文本表示进行聚类分配:

    其中表示分配到第个类簇中的概率,
    则是对应的目标分布:

  2. instance contrastive learning head,在实例层面应用对比学习;
    该模块是基于 和设置的。给定表示可以形成2M-1个样本表示对,其中正例样本对儿定义为,剩余的2M-2个样本对为负例样本对。使用对样本表示进行实例级映射:,因此给定,其对应的对比损失如下:

    其中是cosine similarity,是temperature parameter。
    由此,该模块总体的损失为:

  3. cluster contrastive learning head,在类簇层面应用对比学习;
    与instance contrastive learning head类似,该模块也设置了映射head--完成对 和的转换,例如,是真实的聚类个数。其余操作与nstance contrastive learning head一致。


嗯,挺好。长见识。


你可能感兴趣的:(论文阅读“SimCTC: A Simple Contrast Learning Method of Text Clustering”)