SDCN--算法流程学习

本文介绍了SDCN框架,由GCN(图卷积网络)和AE(自编码器)组成,用于处理文本数据中的语义关系和长距离依赖。GCN通过图结构学习单词间交互,AE则提供每层输出给GCN。文章详细描述了模型结构、训练过程及评估指标。
摘要由CSDN通过智能技术生成

SDCN框架

框架图

在这里插入图片描述
SDCN框架主要由GCN和AE组成。
GCN(图卷积网络)用在文本数据上的好处:

  1. 捕捉语义关系:文本数据通常具有复杂的语义关系,例如词与词之间的依赖、句子之间的逻辑连接等。GCN可以通过在图结构中传播信息来学习单词或句子之间的相互作用,从而更好地捕捉到这些语义关系。

  2. 处理长距离依赖:传统基于序列模型(如循环神经网络)处理文本时可能会面临长距离依赖问题,即较远位置上出现的单词对当前位置产生影响。而GCN可以通过多层卷积操作,在不同层级上进行信息传递和聚合,有效地解决了这个问题。

  3. 无需固定长度输入:相比于循环神经网络等需要固定长度输入序列的方法,使用GCN处理文本时不需要限制输入序列长度,并且可以处理不同长度的文本数据,更加灵活。

AE部分

AE和IDEC中AE相似,唯一不同的是需要获取Encoder中每层的输出,以便提供给GCN进行处理(即图中的H)。pretrain300epoch后将AE模型保存以供后续SDCN使用。

GCN部分

在获取Z,即输入数据后,还需要接收来自Encoder的每层输出。这里通过每层特征的融合,让GCN学习到的表示同时包含原始特征信息和图结构信息。

  1. 利用x和邻接矩阵adj通过GNN层进行图卷积,得到初级特征h。
  2. 将h与tra1按比例0.5融合,再通过GNN层,依次类推融合tra2、tra3。
  3. 最后融合z得到最终特征,通过softmax转换为预测分类分布predict。
 def forward(self, x, adj):
        # DNN Module
        x_bar, tra1, tra2, tra3, z = self.ae(x)
        
        sigma = 0.5

        # GCN Module
        h = self.gnn_1(x, adj)
        h = self.gnn_2((1-sigma)*h + sigma*tra1, adj)
        h = self.gnn_3((1-sigma)*h + sigma*tra2, adj)
        h = self.gnn_4((1-sigma)*h + sigma*tra3, adj)
        h = self.gnn_5((1-sigma)*h + sigma*z, adj, active=False)
        predict = F.softmax(h, dim=1)

        # Dual Self-supervised Module
        q = 1.0 / (1.0 + torch.sum(torch.pow(z.unsqueeze(1) - self.cluster_layer, 2), 2) / self.v)
        q = q.pow((self.v + 1.0) / 2.0)
        q = (q.t() / torch.sum(q, 1)).t()

        return x_bar, q, predict, z

SDCN训练部分

  1. 构建SDCN模型,初始化聚类中心,开始训练循环。
  2. 每轮迭代,通过模型进行前向计算,得到聚类分布预测结果q。
  3. 将q传给eva函数进行评估:
    • 将预测类别结果转换为与真实类别对应的编号。
    • 计算多个评价指标,包括ACC,NMI,ARI,F1。
  4. 打印输出评估结果。
  5. 使用评估结果判断模型效果,若效果不佳,则返回继续训练模型,调整参数改进。
  6. 训练完成后,获得最终模型及其在测试集上的聚类评估指标。
  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值