540. Learning Equality - Curriculum Recommendations | learning-equality-curriculum-recommendations
感谢主办方举办这场有趣的比赛!我在比赛结束前一个月才加入,很高兴通过一种简单直接的方法获得了第28名。
使用以下通用设置,训练模型将相关主题和内容紧密嵌入在一起:
以下修改显著提升了模型性能:
最佳检索器使用 XLM-RoBERTa (large) 作为骨干网络,训练了7个epoch。在我的交叉验证(CV)中,它的 Recall@50 达到了 91%。
对于每个主题,使用双编码器生成50个候选内容。交叉编码器将主题+内容的联合表示输入到Transformer中,并进行二分类预测它们是否匹配。第二阶段模型使用第一阶段模型的袋外预测作为输入进行训练。
在提升模型性能方面,唯一对我有效的方法是对正类进行过采样以及使用差异化学习率。
我最好的第二阶段模型是一个训练了12个epoch的多语言BERT,在我的CV上达到了63.6%(在Public LB和Private LB上分别为64.3%和68.3%)。
观察其性能和预测结果,我意识到交叉编码器很难仅从文本表示中预测匹配,因此我尝试了将GBDT作为第二阶段模型,但未能提出性能更好的模型。
我找不到比简单拼接效果更好的输入表示方法。
两个模型的序列长度均为128个token。
第一阶段我使用了按主题分割的5折交叉验证,第二阶段使用了按非来源主题分割的3折交叉验证。使用这种设置,我的CV和LB之间有很好的相关性。改为按渠道分割导致我的CV不稳定。探测Public LB发现,实际上有大量(超过40%)的近似重复主题,因此我选择了一个简单的CV设置,这让我与LB有很好的相关性。
第一阶段的评估指标是平均精度和Recall@N,第二阶段则直接使用比赛指标。