佰盛娱乐欢迎你,24小时在线QQ765054!
服务热线:00852-97158098

情感

佰盛娱乐-AI Challenger 2018:细粒度用户评论情感分类冠军思路总结

2019-04-15 02:04:45 9
佰盛娱乐 2018年8月-12月,由美团点评、创新工场、搜狗、美图联合主办的“ai challenger 2018全球ai挑战赛”历经三个多月的激烈角逐,冠军团队从来自全球81个国家、1000多所大学和公司的过万支参赛团队中脱颖而出。其中“后厂村静静”团队-由毕业于北京大学的程惠阁(现已入职美团点评)单人组队,勇夺“细粒度用户评论情感分类”赛道的冠军。本文系程惠阁对于本次参赛的思路总结和经验分享,希望对大家能够有所关怀和启发。背景在2018全球ai挑战赛中,美团点评主要负责了其中两个颇具挑战的主赛道赛题:细粒度用户评论情感分析和无人驾驶视觉感知。其中nlp中心负责的细粒度用户评论情感分析赛道,最受欢迎,参赛队伍报名数量最多,约占整个报名团队的五分之一。细粒度用户评论情感分析赛道提供了6大类、20个细分类的中文情感评论数据,标注规模难度之大,在nlp语料特别是文本分类相关语料中都属于相当罕见,这份数据有着极其重要的科研学术以及工业应用价值(目前在群众点评app已经可以看到20个类别的情感标签了)。1. 工具介绍在本次竞赛中,采纳了自己开发的一个训练框架,来统一处理tensorflow和pytorch的模型。在模型代码应用方面,主要基于香港科技大学开源的rnet和mnemonicreader做了相应修改。在竞赛后期,还加入了一个基于bert的模型,从而提升了一些集成的成效。2. 整体思路整体将该问题看作20个aspect的情感多分类问题,采纳了传统的文本分类方法,基于lstm建模文本,end2end多aspect统一训练。文本分类是业界一个较为成熟的问题,在2018年2月份,我参加了kaggle的“作弊文本分类”竞赛,当时的冠军团队主要依靠基于翻译的数据增强方法获得了成功。2018年反作弊工作中的一些实践经验,让我意识到,数据是提升文本分类成效的第一关键。因此,我第一时间在网络上寻寻到了较大规模的群众点评评论语料,在kaggle竞赛的时候,nlp的语言模型预训练还没有出现,而随着elmo之类模型的成功,也很期待尝试一下预训练语言模型在这个数据集合上的整体成效。3. 基础模型思路首先,尝试了不使用预训练语言模型的基础模型,基于kaggle toxic竞赛的经验,直接使用了当时表现最好的lstm encode + pooling作为基线模型。在kaggle的竞赛中,大家实验的普遍结果是针对中长文本的分类任务的最佳单模型,都是基于rnn(lstm/gru)或者部分基于rnn的模型,比如rcnn、capsule + rnn这样的模型,而其他的模型,比如单纯的cnn结构相对表现较差,主要可能是因为rnn模型能更好地捕获相对较长距离的顺序信息。4. 模型层面优化在基线模型的基础上,效仿阅读懂得常见的做法,增加了self attention层(计算文本到文本自身的attention权重),并将attention之后的输出和原始lstm输出,采纳gate(rnet)或者semantic fusion(mnemonicreader)的方式进行融合。5. 模型细节处理更宽的参数更多的模型成效更好lstm成效好于gru。hidden size 400 > 200 > 100。topk pooling + attention pooling的成效好于单独的max或者attention pooling。共享层前置,pooling层 和最后fc层不同aspect参数独占成效更好(来自赛后实验,以及其他团队经验)。这里推测主要原因:是这个数据集有20个aspect,每个aspect分4个不同的类别,所需要的参数相对较多。三角学习率调节成效最佳参考bert开源代码的学习率设置带来较大成效提升。采纳word + char的词建模方式这种建模方式能结合分词和字符粒度切分的好处,最大限度幸免词汇unk带来的损失。注意比照kaggle toxic竞赛那次竞赛是英文语料,对应英文,当时的实验结果是word + ngram的建模成效更好,收敛更快,所以针对不同nlp任务,我们需要具体进行分析。采纳尽可能大的词表和其他团队相比,我采纳了更大的词表14.4w(jieba分词),19.8w(sentence piece unigram分词),依靠外部群众点评评论数据基于fasttext预训练词向量,能够支持更大的词表。同时为了幸免训练过拟合,采纳了只finetune训练中高频的词对低频词固定词向量的处理方式。最开始,估计情感相关的词汇相对较少,不需要较大的词表,但是实验过程中创造更大的词表相对地能够提升性能,前提是利用较多的外部数据去比较好的刻画训练数据中低频词的向量。在理论上,我们可以采纳一个尽可能大的词表在预测过程中去尽可能的减少unk的存在(有论文的结论是对应unk不同的词赋于不同随机向量成效,好于一个固定的unk向量。这里类似,假如我们给予一个基于无监督外部数据,通过语言模型训练得到的向量则成效更好)。6. 预训练语言模型这部分是模型成效提升的关键,这里采纳了elmo loss。在简单尝试了官方的elmo版本之后,感觉速度相比照较慢,为此,采纳了自己实现的一个简化版的elmo,实质上只使用了elmo的loss部分。在当前双层lstm encoder的基础上,采纳了最小代价的elmo引入,也就是对当前模型的第一层lstm进行基于elmo loss的预训练,而finetune的时候,模型结构和之前完全不变,只是第一层lstm以及词向量部分采纳的elmo预训练的初始化结果,另外在elmo的训练过程中,也采纳了基于fasttext的词向量参数初始化。这个设计使得elmo训练以及finetune训练的收敛,都加快了许多,只需要大概1小时的elmo训练,就能在下游任务产生明显受益。值得一提的是,elmo和self attention的搭配在这个数据集合成效非常好。7. 模型集成为了取得更好的模型多样性,采纳了多种粒度的分词方式,在jieba分词的主要模型基础上,同时引入了基于sentencepiece的多种粒度分词。sentencepiece分词能带来更短的句子长度,但是分词错误相对jieba略多,容易过拟合,因此采纳了只finetune char向量,固定词向量的策略来幸免过拟合。多种粒度的分词配合word + char的建模方式带来了很好的模型多样性。此外,模型维度的多样性来源自rnet结构和mnemonicreader结构,以及bert模型的结构的不同。在模型选择的时候选取了平均f1值最优的轮次模型,集成的时候采纳了按aspect成效分开加权集成的方式(权重来自valid数据的f1分值排序)。基于以上的多样性策略,只需要7个单模型集成就能取得较好的成效。8. 关于bert在实验中基于char的bert单模型,在本次竞赛中并没有取得比elmo更好的成效,受限于512的长度和只基于char的限制,目前看起来bert模型在这个数据集合更容易过拟合,train loss下落较快,对应valid loss成效变差。相信通过适当的优化bert模型能取得更好的成效。9. 后续优化f1的优化是一个有意思的方向。本次竞赛中,没有对此做特别处理,考虑到f1是一个全局优化值,假如基于batch强化学习,每个batch可能很难拟合稀有样本分布。bert的进一步优化。因为bert出现之前,基于transformer的模型在长文本分类成效大都是差于基于lstm的模型的,所以假如我们按照bert的loss去预训练基于lstm而不是transformer的模型,在分类问题层面的成效如何?另外,在这个数据集合基于transformer的bert,能否取得比elmo更好的分类成效?对话ai challenger 2018冠军:程惠阁q:谈谈对本次参赛的感受?程惠阁:作为一个多年的算法从业者,我真实的感受到在ai时代,技术更新非常之快,比如席卷而来的elmo、bert等预训练语言模型在工业界影响力之大。包括美团在内的许多公司都快速跟进并上线,而且取得了很好收益,因此技术人员时刻保佰盛娱乐持学习的心态是非常重要的。而竞赛和工作存在很大的不同,竞赛相对更加单纯明确,竞赛可以使我在最短时间去学习实验验证一些新的技术,而在标准数据集合验证有效的模型策略,往往在工作中也有实际的价值。对于竞赛以及工作中的模型开发,我觉得比较重要的一点首先要做好细致的模型验证部分,在此基础上逐步开发迭代模型才有意义。比如在这次竞赛中,我从一开始就监控了包括整体以及各个aspect的包括f1、auc、loss等等各项指标。q:对学习算法的新同学有哪些建议?程惠阁:假如有时间,可以系统地学习一些名校的深度学习相关的课程,还有很重要的一点,就是实践,我们可以参加去学校项目或者去大公司实习,当然也可以利用ai challenger、kaggle这样的竞赛平台进行实践。q:为什么会选择参加细粒度用户评论情感分类这个赛道?程惠阁:因为我之前参加过类似的竞赛,并且做过文本分类相关的工作,对这个赛道的赛题也比较感兴趣。q:本次竞赛最有成就感的事情是什么?程惠阁:不断迭代提升成效带来的成就感吧,特别是简化版elmo带来的成效提升。q:参赛过程中,有哪些收获和成长?程惠阁:作为一个tensorflow重度用户,我学会了使用pytorch并且体验到pytorch带来的优雅与高效。体验到了预训练语言模型的威力。在竞赛中和竞赛后,我也收获了许多志同道合的朋友,和他们的交流学习,也关怀我提高了许多。更重要的是,因为这次竞赛,我加入了美团点评这个大家庭,入职这段时间,让我真切地感受到美团点评为了提升用户体验,为了让用户吃的更好,生活更好,在技术方面做了大量的投入。 佰盛娱乐

售前咨询

技术支持

合作建议