0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Byte Cup 2018国际机器学习竞赛夺冠记

IEEE电气电子工程师 来源:lq 2019-02-14 09:44 次阅读

9月份,我们两位同学一起组队,参加Byte Cup 2018国际机器学习竞赛。本次比赛由中国人工智能学会和字节跳动主办,IEEE中国代表处联合组织。比赛的任务是文章标题自动生成。最终,我们队伍获得了第一名。

1.比赛介绍

本次比赛的任务是给定文章文本内容,自动生成标题。本质上和文本摘要任务比较类似。本次比赛有100多万篇文章的训练数据。

1.1数据介绍

详细参见:https://biendata.com/competition/bytecup2018/data/。

本次竞赛使用的训练集包括了约130万篇文本的信息,验证集1000篇文章,

测试集800篇文章。

1.2数据处理

文章去重,训练数据中包含一些重复数据,清洗,去重;

清洗非英文文章。

1.3评价指标

本次比赛将使用Rouge(Recall-Oriented Understudy for Gisting Evaluation)作为模型评估度量。Rough是评估自动文摘以及机器翻译的常见指标。它通过将自动生成的文本与人工生成的文本(即参考文本)进行比较,根据相似度得出分值。

2.模型介绍

本次比赛主要尝试了seq2seq的方法。参考的模型包括Transformer模型和pointer-generator模型。

模型如下图:

(其实就是将pointer-generator的copy机制加到transformer模型上)。

同时,尝试了将ner-tagger和pos-tagger信息加入到模型中,如下图所示:

3.问题分析

最开始我们尝试了最基本的transformer模型,通过查看数据,遇到以下几类明显错误:

OOV(out of vocabulary);

数字,人名,地名预测错误;

词形预测错误。

OOV问题,主要原因是数据集词表太大,但是,模型能够实际使用的词表较小;数字,人名,地名预测错误,主要原因是低频词embedding学习不充分;词形预测错误,主要原因是模型中没有考虑词的形态问题(当然,如果训练数据足够大,是能避免这个问题的)。

为了解决这些问题,我们尝试了以下方法。

4.重要组件

4.1copy机制

对于很多低频词,通过生成式方法生成,其实是很不靠谱的。为此,我们借鉴Pointer-generator的方法,在生成标题的单词的时候,通过Attention的概率分布,从原文中拷贝词。

4.2subword

为了避免oov问题,我们采用subword的方法,处理文本。这样,可以将词表大小减小到20k,同时,subword会包含一些单词词形结构的信息。

4.3ner-tagger和pos-tagger信息

因为baseline在数字,人名,地名,词形上预测错误率较高,所以我们考虑能不能将ner-tagger和pos-tagger信息加入到模型中。如上图所示。实验证明通过加入这两个序列信息能够大大加快模型的收敛速度(训练收敛后,指标上基本没差异)。

4.4Gradient Accumulation

在实验过程中,我们发现transformer模型对batch_size非常敏感。之前,有研究者在机器翻译任务中,通过实验也证明了这一观点。然而,对于文章标题生成任务,因为每个sample的文章长度较长,所以,并不能使用超大batch_size来训练模型,所以,我们用Gradient Accumulation的方法模拟超大batch_size。

4.5ensemble

采用了两层融合。第一层,对于每一个模型,将训练最后保存的N个模型参数求平均值(在valid集上选择最好的N)。第二层,通过不同随机种子得到的两个模型,一个作为生成候选标题模型(选择不同的beam_width, length_penalty), 一个作为打分模型,将候选标题送到模型打分,选择分数最高的标题。

5.失败的方法

将copy机制加入到transformer遇到一些问题,我们直接在decoder倒数第二层加了一层Attention层作为copy机制需要的概率分布,训练模型非常不稳定,并且结果比baseline还要差很多;

我们尝试了bert,我们将bert-encoder抽出的feature拼接到我们模型的encoder的最后一层,结果并没有得到提升;

word-embedding的选择,我们使用glove和fasttext等预训练的词向量,模型收敛速度加快,但是,结果并没有random的方法好。

6.结束语

非常感谢主办方举办本次比赛,通过本次比赛,我们探索,学习到了很多算法方法和调参技巧。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 人工智能
    +关注

    关注

    1791

    文章

    46872

    浏览量

    237603
  • 机器翻译
    +关注

    关注

    0

    文章

    139

    浏览量

    14873
  • 数据集
    +关注

    关注

    4

    文章

    1205

    浏览量

    24644

原文标题:Byte Cup 2018国际机器学习竞赛夺冠记

文章出处:【微信号:IEEE_China,微信公众号:IEEE电气电子工程师】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    蚂蚁数科与浙大团队荣获NeurIPS竞赛冠军

    近日,在机器学习领域的顶级国际会议NeurIPS的特设竞赛中,蚂蚁数科旗下的摩斯联合浙江大学计算机体系结构实验室陈文智、魏成坤团队组成的“Morse ARCLab”参赛队伍凭借出色的表
    的头像 发表于 11-26 10:27 92次阅读

    什么是机器学习?通过机器学习方法能解决哪些问题?

    来源:Master编程树“机器学习”最初的研究动机是让计算机系统具有人的学习能力以便实现人工智能。因为没有学习能力的系统很难被认为是具有智能的。目前被广泛采用的
    的头像 发表于 11-16 01:07 245次阅读
    什么是<b class='flag-5'>机器</b><b class='flag-5'>学习</b>?通过<b class='flag-5'>机器</b><b class='flag-5'>学习</b>方法能解决哪些问题?

    NPU与机器学习算法的关系

    在人工智能领域,机器学习算法是实现智能系统的核心。随着数据量的激增和算法复杂度的提升,对计算资源的需求也在不断增长。NPU作为一种专门为深度学习机器
    的头像 发表于 11-15 09:19 317次阅读

    电子设计竞赛准备经历分享

    在我大学生涯中,参加电子设计竞赛无疑是一段难忘且充满挑战的经历。从最初的迷茫与不安,到最终的收获与成长,这段旅程让我深刻体会到了团队合作的力量,以及不断学习与探索的重要性。以下是我个人参加电子设计竞赛的准备经历,希望能为即将参赛
    的头像 发表于 11-06 10:49 183次阅读
    电子设计<b class='flag-5'>竞赛</b>准备经历分享

    入门?毕设?竞赛?项目练手?STM32/嵌入式/物联网学习,有这几款开发板就够了!

    、项目练手、创新竞赛、技能认证等。01STM32入门+项目进阶学习适用场合高校教学、学生毕设、个人学习、项目练手、创新竞赛、技术认证可学习
    的头像 发表于 10-10 16:31 264次阅读
    入门?毕设?<b class='flag-5'>竞赛</b>?项目练手?STM32/嵌入式/物联网<b class='flag-5'>学习</b>,有这几款开发板就够了!

    AMD赞助多支FIRST机器竞赛团队

    AMD 在 2024 赛季赞助了多支 FIRST 机器竞赛团队。FIRST 机器竞赛旨在教导高中生如何构建能够执行特定任务的机器人,同时
    的头像 发表于 09-18 09:45 404次阅读

    TE Connectivity AI Cup 第五届全球竞赛结果揭晓 中国高校团队连续两年夺得桂冠

    中国上海 - 2024 年 7 月 31 日 - 近日,由全球行业技术领先企业TE Connectivity(以下简称“TE”)主办的TE AI Cup第五届全球竞赛圆满收官。来自华南农业大学
    发表于 08-01 14:39 1048次阅读
    TE Connectivity AI <b class='flag-5'>Cup</b> 第五届全球<b class='flag-5'>竞赛</b>结果揭晓 中国高校团队连续两年夺得桂冠

    机器学习算法原理详解

    机器学习作为人工智能的一个重要分支,其目标是通过让计算机自动从数据中学习并改进其性能,而无需进行明确的编程。本文将深入解读几种常见的机器学习
    的头像 发表于 07-02 11:25 790次阅读

    深度学习与传统机器学习的对比

    在人工智能的浪潮中,机器学习和深度学习无疑是两大核心驱动力。它们各自以其独特的方式推动着技术的进步,为众多领域带来了革命性的变化。然而,尽管它们都属于机器
    的头像 发表于 07-01 11:40 1200次阅读

    机器学习的经典算法与应用

    关于数据机器学习就是喂入算法和数据,让算法从数据中寻找一种相应的关系。Iris鸢尾花数据集是一个经典数据集,在统计学习机器学习领域都经常被
    的头像 发表于 06-27 08:27 1578次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>的经典算法与应用

    格灵深瞳斩获首届花样滑冰动作识别竞赛夺冠

    近日,第一届花样滑冰动作识别挑战赛公布了本次竞赛的结果,格灵深瞳凭借领先的算法能力斩获了冠军,并包揽了本次挑战赛的前两名。
    的头像 发表于 05-13 14:04 385次阅读
    格灵深瞳斩获首届花样滑冰动作识别<b class='flag-5'>竞赛</b><b class='flag-5'>夺冠</b>

    机器学习8大调参技巧

    今天给大家一篇关于机器学习调参技巧的文章。超参数调优是机器学习例程中的基本步骤之一。该方法也称为超参数优化,需要搜索超参数的最佳配置以实现最佳性能。
    的头像 发表于 03-23 08:26 565次阅读
    <b class='flag-5'>机器</b><b class='flag-5'>学习</b>8大调参技巧

    【Rust AI】01. 使用Jupyter学习Rust

    ,例如根据乘客的特征预测乘客是否能够幸存。这是一个适合数据分析和机器学习初学者的经典数据集,广泛用于 Kaggle 竞赛。”
    的头像 发表于 01-14 11:16 1603次阅读
    【Rust AI】01. 使用Jupyter<b class='flag-5'>学习</b>Rust

    如何使用TensorFlow构建机器学习模型

    在这篇文章中,我将逐步讲解如何使用 TensorFlow 创建一个简单的机器学习模型。
    的头像 发表于 01-08 09:25 918次阅读
    如何使用TensorFlow构建<b class='flag-5'>机器</b><b class='flag-5'>学习</b>模型

    byte属于java基本类型吗

    是的,byte属于Java的基本数据类型之一。Java中共有8种基本数据类型,分别是byte、short、int、long、float、double、char和boolean。byte类型用于表示8
    的头像 发表于 12-05 10:40 829次阅读