查看原文
其他

基于条件LayerNorm的多任务文本分类模型

陈琢 搜狐技术产品 2021-11-19


  

本文字数:1616

预计阅读时间:10分钟


作者介绍


陈琢,哈尔滨工业大学(深圳)研二学生,获奖经历:

  • 2021年腾讯游戏安全技术竞赛(机器学习方向)top2
  • 2021第一届“计图”人工智能算法大赛top15
  • 2021AIWIN-舆情风控竞赛top16
陈琢同学是2021搜狐校园文本匹配算法大赛三等奖获得者,本篇文章是他对此次大赛的技术总结。


赛题介绍


比赛的任务是文本匹配,文本匹配在NLP的应用中属于比较常规常见的任务,但是在这个比赛中,主办方给的数据有很大的不同,它分类很多子类,包括长长匹配,短长匹配和短短匹配,而在每个子匹配任务中,又分为AB两类的匹配标准,A类匹配条件比较宽松,B类匹配条件比较严格,这就对选手的模型提出了很高的要求。

# A类样本示例
{
    "source""英国伦敦,20/21赛季英超第20轮,托特纳姆热刺VS利物浦。热刺本赛季18轮联赛是9胜6平3负,目前积33分排名联赛第5位。利物浦本赛季19轮联赛是9胜7平3负,目前积34分排名联赛第4位。从目前的走势来看,本场比赛从热刺的角度来讲,是非常被动的。最终,本场比赛的比分为托特纳姆热刺1-3利",
    "target"" 北京时间1月29日凌晨4时,英超联赛第20轮迎来一场强强对话,热刺坐镇主场迎战利物浦。  热刺vs利物浦,比赛看点如下: 第一:热刺能否成功复仇?双方首回合,热刺客场1-2被利物浦绝杀,赛后穆里尼奥称最好的球队输了,本轮热刺主场迎战利物浦,借着红军5轮不胜的低迷状态,能否成功复仇? 第二:利物浦近",
    "labelA""1"
}
# B类样本示例
{
    "source""英国伦敦,20/21赛季英超第20轮,托特纳姆热刺VS利物浦。热刺本赛季18轮联赛是9胜6平3负,目前积33分排名联赛第5位。利物浦本赛季19轮联赛是9胜7平3负,目前积34分排名联赛第4位。从目前的走势来看,本场比赛从热刺的角度来讲,是非常被动的。最终,本场比赛的比分为托特纳姆热刺1-3利",
    "target"" 北京时间1月29日凌晨4时,英超联赛第20轮迎来一场强强对话,热刺坐镇主场迎战利物浦。  热刺vs利物浦,比赛看点如下: 第一:热刺能否成功复仇?双方首回合,热刺客场1-2被利物浦绝杀,赛后穆里尼奥称最好的球队输了,本轮热刺主场迎战利物浦,借着红军5轮不胜的低迷状态,能否成功复仇? 第二:利物浦近",
    "labelB""0"
}

数据探索


文本长度

  • 包括全文特殊的文本需要处理
  • 长文本长度达到万字

去除特殊符号

  • 巴蒂勇夺赛季首冠🏅️#WTA500#雅拉山谷精英赛女单决赛
  • 巴蒂勇夺赛季首冠,雅拉山谷精英赛女单决赛

分词方式

以词为粒度进行分词(example)

巴蒂|勇夺|赛季|首冠|,雅拉山谷|精英赛|女单|决赛

以字为粒度进行分词(example)

巴|蒂|勇|夺|赛|季|首|冠|,雅|拉|山|谷|精|英|赛|女|单|决|赛

在这里我们选择以词为粒度的分词方式,这样做的优点有

  1. 可以容纳更多的文本内容
  2. 词义的不确定性更低,降低模型的复杂度

模型设计细节


位置编码

  1. 绝对位置编码

    一般来说,绝对位置编码没有外推性,即如果预训练最大长度为512的话,那么最多就只能处理长度为512的句子,但是计算速度快,实现简单

  2. 相对位置编码

    考虑当前位置与被Attention的位置的相对距离,灵活性更大,针对本次任务来说,相对位置编码可以将更多的文本考虑进来

模型结构

数据有AB两类,其下又有3小类,所以判断为多任务学习,那么模型对于数据属于哪一类和数据处理都要有很好的效果,首先选择采用相对位置编码的模型wobert和roformer

方向一

将任务类型进行词嵌入编码,与模型的输出经过拼接,在送入全连接层在进行输出

方向二

通过条件layernorm来实现一个模型做6个子任务

那么我们将输入条件变换到和其一样的维度,然后加到上面即可

效果与分析


那么后续对于两个结构都进行了效果分析,模型在数据上的跑分如下
方案初赛线下初赛线上复赛线下复赛线上
方案一0.7710.735320.79320.7832
方案二0.7820.737640.79440.7869

考虑到模型的部署成本,所以没有使用模型融合,最后采用了方案二作为整体的方案

总结与思考


  • 对于数据的处理是否不够

    在整个模型的构建过程中,本身没有对数据做太多的处理,这是可以后续提高的一个很关键的点,比如对数据进行增强来增加数据量等。

  • 模型的融合等一系列的操作是否可以使用?

    由于本次比赛使用的是单模,没有过多的使用多模型融合,所以后续如果在计算资源允许的情况下,可以使用模型融合进一步提升效果。

  • 对于长文本是否有其他的更好的处理方式?

    在汲取了其他选手的意见和建议,发现对于文本的分割是可以做出改变的,相较于普通的滑窗分割,有权重的分割窗口在这次任务中是具有更好的效果。

首先非常感谢主办方对于这次比赛的辛苦付出和鼎力支持,也认识了非常多优秀的同学,从他们身上也汲取了非常多的知识与见识,也明白自己还有许多的不足之处,在今后,也要不断学习,不断突破。


“码上成团”中奖名单公布

恭喜以下同学获得【定制大礼包】(帆布包*1+工牌卡套*2)!未领奖的同学及时联系小编微信兑奖:sohu-tech20



也许你还想看

(▼点击文章标题或封面查看)


Kaggle TOP1:神奇的时序Trick直接炸榜

2021-07-22

【文末有惊喜!】详解:mach-o文件如何分析多余的类和方法

2021-07-08

MotionLayout动画从未如此简单!

2021-07-15

干货:图像の二值图

2021-04-15

包教包会:设计一套完整日志系统

2021-05-20


: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存