返回列表

4th place solution

587. Stanford Ribonanza RNA Folding | stanford-ribonanza-rna-folding

开始: 2023-09-07 结束: 2023-12-07 基因组学与生物信息 数据算法赛

第四名解决方案

作者: tattaka, monnu, yu4u | 发布日期: 2023-12-08 | 排名: 第4名 | 成就: 竞赛特级大师

首先,非常感谢Kaggle团队和主办方提供了这场有趣的比赛。
tattakamonnu 通过这一成绩完成了他们成为竞赛特级大师的旅程。

总结

  • 多种模型集成
    • Shujun提出的改进版RNAdegformer
    • 一维卷积与残差BPP注意力
    • 带有BPP注意力偏置的Transformer
  • 由eternafold生成的bp_matrix(部分使用contrafold)
    • 直到比赛进行到一半我才意识到这个数据已经被提供了。
  • 使用更高信噪比阈值的微调
  • 使用反应性误差预测的伪标签

改进版RNAdegformer

代码: https://github.com/tattaka/stanford-ribonanza-rna-folding-public

输入

  • 序列
  • BPP矩阵(由EternaFold和Contrafold生成)

架构


RNAdegformerhttps://github.com/Shujun-He/RNAdegformer)做了一些修改,包括调整了层顺序。

  • 除最后一个transformer的kernel_size为1外,其余均为7
  • 后归一化
  • GLU系列激活函数
  • ALiBi位置编码与bp_matrix分开应用于不同的注意力头
  • 其他微小修改的集成
模型名称 伪标签误差预测 使用伪标签 前馈激活函数 归一化层 Conv1D添加归一化和激活 使用contrafold(第二BPP) 连接注意力权重到BPP偏置 交叉验证
exp064 SwiGLU Layernorm 0.12087
exp070 exp064 SwiGLU RMSnorm 0.1199 / 极小: 0.12143
exp071 GeGLU RMSnorm 0.12146
exp072 exp064 + exp071 GeGLU RMSnorm 0.11976

训练

  • 简单k折交叉验证(k=5)
  • 第一阶段:首先使用信噪比>0.5的数据训练(300轮)
  • 第二阶段:然后使用信噪比>1.0的数据微调少量轮次(15轮)
  • 当仅使用训练数据集时,除了反应性外,还输出每个核苷酸的误差
  • 对于伪标签,第一阶段使用预测信噪比>0.75,第二阶段使用预测信噪比>1.0,且仅使用future=1的数据
    • 加入伪标签后从头开始训练
  • 学习率=1e-3,批次大小=256,AdamW优化器(eps=1e-6),第一阶段使用预热

单模型得分

最佳模型: exp072

  • 交叉验证(k折):0.11976
  • 公开榜得分:0.13681
  • 私有榜得分:0.14124

一维卷积与残差BPP注意力

代码: https://github.com/fuumin621/stanford-ribonanza-rna-folding-4th

基于nyanp提出的一维卷积+BPP注意力架构,我们进行了改进。

架构

  1. 序列嵌入
  2. 一维卷积
  3. SE残差与残差BPP注意力 × 12层
    • 使用BPP作为注意力权重
    • 随着层深度增加,减少一维卷积的核大小
  4. 双向LSTM × 2层
  5. 线性层

输入

  • 序列
  • BPP矩阵(由EternaFold生成)

参数

  • Dropout率: 0.1
  • 维度: 256
  • 核大小: 9, 7, 5, 3(随层深度增加而减小)
  • 学习率: 4e-3,使用余弦调度器
  • 批次大小: 64

训练

训练策略基本采用与上述改进版RNAdegformer相同的方法。

单模型得分

  • 交叉验证(k折):0.12161
  • 公开榜得分:0.13889
  • 私有榜得分:0.1425

未生效的方法

  • 除EternaFold外的BPP包(contrafold_2)
  • 距离矩阵
  • 结构信息
  • BPP特征工程(最大值、求和、nb_count)
  • 基于信噪比的样本权重
  • 等等...

带有BPP注意力偏置的Transformer(@ren4yu的部分)

代码: https://github.com/yu4u/kaggle-stanford-ribonanza-rna-folding-4th-place-solution

该模型借鉴了RNAdegformer的BPP注意力偏置思想,但更接近原始Transformer架构。
未使用位置嵌入,而是在FFN中使用Conv1D来提供相对位置信息。

训练过程

  • 使用AdamW优化器,学习率从2e-3降至2e-4,批次大小128,信噪比过滤阈值=0.5
  • 使用AdamW优化器微调,学习率从2e-4降至0,批次大小256,信噪比过滤阈值=1.0

单模型得分

  • 交叉验证(k折):0.12188
  • 公开榜得分:0.13948
  • 私有榜得分:0.14267

对我无效的方法

  • 增加维度或层数
  • 类UNet的分层架构
同比赛其他方案