比赛简介
- 比赛名称:CHIP2021评测一: 医学对话临床发现阴阳性判别任务
- 测评任务:针对互联网在线问诊记录中的临床发现进行阴阳性的分类判别
- 测评链接:http://www.cips-chip.org.cn/2021/eval1
本次比赛可以视为针对实体的细颗粒情感分析任务,一共有阴性、阳性、其他、不标注四种标签。
- 阳性:已有症状疾/病等相关;医生诊断(包含多个诊断结论);假设未来可能发生的疾病等
- 阴性:未患有的疾病症状相关
- 其他:用户没有回答、不知道;回答不明确/模棱两可不好推断
- 不标注:无实际意义的不标注
任务难点与挑战
- 对话上下文信息的利用
- 标准词信息的引入
噪声和难判断样本
数据不平衡
方案总结
一、整体结构
我们借鉴了R-BERT的思路在BERT的基础上,在需要判别阴阳性的临床发现实体两端分别加入[UNUSED1]
和[UNUSED2]
。针对标准化信息,我们通过构建标准词模版引入该部分的信息,具体构建方法如下:
- 临床发现词+“|标准化为”+标准名
- 临床发现词+“|没有标准化”
此外,我们使用输入者嵌入矩阵生成输入者,拼接在bert输出的向量中。
二、数据处理
-
上下文拼接
- 若文本的输入者为患者,则在文本前拼接“患者:”
- 若文本的输入者为医生,则在文本前拼接“医生:”
- 若当前临床发现词所在的文本是医生输入,则拼接三轮下文患者输入的文本;
- 若是患者输入,则不区分下文输入者信息,直接拼接三轮下文输入文本
- 拼接文本的长度为小于40个字符的一轮上文文本
-
截断选择
- 以临床发现词为核心进行上下文截断
三、数据清洗
- 过滤与预测标签不一致的原始标签
- 任务预训练
四、模型集成
本次任务中,我们一共采用了MC-BERT、Med-BERT、MAC-BERT-Large和任务预训练后的MAC-BERT-Large四种预训练模型。针对每一种预训练模型我们使用10折交叉验证生成10个模型,并使用投票法集成输出结果。
除了正常的投票法外,针对其他
和不标注
两类标签召回少的问题,采用弱者投票机制,即十组投票结果中,若有2组以上的预测结果为“不标注”或“其他”,则忽略其他高票预测结果。
多模型融合则采用规则集成修正的方式进行融合。
五、其他Trick
- EMA
- FGM
六、B榜结果
比赛总结
比赛已经结束,最终侥幸获得了第一名的成绩。很荣幸地受邀在CHIP2021线上会议上进行分享,也看到了其他选手精彩的方案。总体来说,Top方案之间的差距很小,我们更多还是靠一些小的细节trick取胜。本次比赛我们的代码是在自己的ark-nlp上进行开发和实验,后续我们也会继续对ark-nlp进行改进,收录更多的SOTA方式。此外,我们也将积极推动医疗知识图谱和医疗预训练模型的开发,也希望有兴趣的朋友可以加入我们。
- ark-nlp地址:https://github.com/xiangking/ark-nlp
- 方案开源地址:https://github.com/DataArk/CHIP2021-Task1-Top1
- MC-BERT torch版权重:医疗BERT | 中文生物医学文本挖掘的概念化表征学习