网易云音乐评论内容理解技术
图片来源:https://unsplash.com/photos/F-B7kWlkxDQ
作者:周阳
摘要
歌曲评论是云音乐的核心资产之一,对歌曲评论的内容进行理解,有助于分发好内容,提升用户体验。评论内容理解需要解决的核心问题有:一方面,亿级的评论内容质量参差不齐,存在大量的水评等各种低质量的评论会淹没好评论,损害了用户体验和评论区氛围,因此设计评论分类算法,将评论类别区隔开来,再用推荐策略针对性的进行打压和优化,对社区评论氛围治理有核心作用;另一方面,优质评论千千万,目前主要的分发场景是在最新、最热和推荐Tab,歌曲评论被歌曲天然“隔离”,因此利用NLP技术打破评论是歌曲下的评论这个限制,比如将叙述相同话题的不同歌曲下的评论自动聚集起来形成话题(比如热点、IP主题),然后再进行分发,能起到吸引用户看评,提升用户新鲜感的作用。
1.歌曲评论正负标签识别
云音乐歌曲评论是用户表达感情和观点的主要形式,既有走心的点评、感人的故事等优质评论,也有让人不适的水评论、广告等低俗内容,因此采用文本分类等技术对歌曲评论进行正负向的识别,能在保证内容质量、促进优质内容分发,支持云音乐评论运营活动等方面起到很大的帮助的作用。我们将歌曲评论分为两个标签体系,正向标签(比如故事等)和负向标签(比如水评等)。
1.1 业务难点
歌曲评论文本相比其他类型的文本,存在文本短,语意歧义多等特点,对这类评论文本进行正负向分类的主要难点有:
- 部分类别识别难度较大:比如容易引战的评论:唱的什么破歌;对应的反例:唱的什么破歌,一句不好听的都没有。
- 人工标注样本难以对齐:打标的正负样本之间存在一定比例的交叉,产运标准难以未对齐。
- 标注耗时耗力:正向样本比例低,文本标也要保证质量和数量,比较耗费时间和人力资源。
1.2 解决方案
针对评论分类的任务难点,主要的优化和建模方向有:
- 主动学习:识别难样本,矛盾样本重标,提高标注效率和对齐产运标注。
- 领域内预训练 :用音乐社区领域文本进行领域内预训练,提高模型泛化能力。通过对比学习得到好的评论文本表征,用于样本扩充和噪声样本筛选。
- 多任务学习:各类别任务共享编码层,抵抗噪音、缓解过拟合。
1.2.1 继续预训练
一般来说,对通用的预训练模型在下游垂直语料下进行继续预训练,能有效提升下游任务效果。我们将云音乐社区文本进行了整合训练得到领域内评论预训练模型,文本数据包括评论、视频标题、村民广场帖子标题等、中文歌词,经过清理后得到20亿文本数据,预训练方法采用MLM,得到了社区评论预训练模型,在下游的任务中,核心指标平均提升1%~2%+。
1.2.2 样本扩充和去噪
我们采用开源的RoFormer进行对比学习预训练得到好的评论文本表征,接下来我们通过计算主子评论的相似度,自动进行正样本的扩充,还可以直接寻找topN相似的正样本评论作为正样本,这可以理解为利用相似度自动进行高质量的数据增强,因为我们扩充的样本与原正样本在语意上一致,但是在表达上有区别,所以能有效提高模型的泛化能力,我们在原有几千的标注数据下,各类别扩充高质量1~5W样本,最终显著提升召回率。
1.2.3 多任务学习
多任务学习通过共享编码层,能起到正则化,提高泛化能力的作用;负向模型我们采用的是每个类别一个模型,原因是受业务流程决定;在正向评论分类的模型设计中,我们采用了多任务的结构,之所以选择多任务的结构除了前述的优点,一部分原因还在于正向标签本身是个多标签问题,由于历史原因,标注数据只有对应类别的正样本,所以为了更好的优化每一个类别,我们选择共享BERT编码层,每个类别有自己的正负样本,同时进行训练。通过多任务学习,我们能针对性的优化各个类别的样本数据,而不影响其他类别,毕竟样本为王,能较快的达到目标。
多任务学习图
1.2.4 总结
最终经过以上优化,正负向各类别模型准召均达90%以上,提升2~3%,我们将负面标签运用到评论治理后,线上评论洁净率提升50%以上,此外,我们还沉淀了大量优质评论,未来可用于多场景分发。
2.评论话题聚类
云音乐的歌曲评论是个亿级大宝库,目前主要通过歌曲下最新、最热、推荐三个Tab进行分发,然而其实,在不同歌曲下大家也有可能会聊同样的事情,比如最近的世界杯话题,在很多歌曲下都会有相关的评论,如果我们能通过算法自动将评论聚集起来形成话题,那么就可以以新的形式对评论进行售卖分发,从而可能提升业务指标。
2.1 业务难点
话题聚类可以简单的看着一个聚类问题,然而用聚类问题来解存在的问题是评论文本短、无上下文联系,相对于新闻等文章来说,不能直接使用业界常用的聚类算法;另一个尝试的方向是我们可以通过站外关键词进行匹配,然而通过我们的实践发现,站内很少讨论站外热点话题或站内会受站外刺激衍生出评论热点话题,因此我们需要根据评论的特点设计独有的话题聚合方式。
聚类业务难点图
2.2 解决方案
基于评论上下文信息弱、也很难与站外热点直接匹配等难点,我们将问题细化,首先确定我们需要什么话题,对于音乐类文本来说,除了讨论歌曲、歌手本身的评论,影综漫游是更多的讨论形式;另外,热点发现也是一个方向,如果能自动发现热点,发现的热点也能与外部进行关联上,那这样的评论话题意义就比较具有时效性,因此我们将话题聚类拆分成子任务。
2.2.1 故事类别主题自动生成
云音乐的评论故事丰富多彩,然而直接使用聚类算法去得到话题并不可取,因为评论故事描述不像新闻,有明显的边界,很难分出合适可用的话题,所以我们不妨提前定义好故事的类型,分为不同类型阶段等主题,然后通过标签的组合自动的生成对应的主题;那么定义好了标签,另一个问题又来了,那就是标注,如果再去标注数据来做是比较浪费人力的,对于这类通用的类别,我们完全可以利用开源的Prompt-learning 模型,采用ICL(In-Context Learning)的思想,自动生成对应的标签。我们使用开源的PromptCLUE模型,自动生成对应的主题标签,人工评估准确率在90%左右。
故事类别模型图
2.2.2 IP主题
对于IP主题,我们采取从上而下的做法,在站内我们可直接得到IP下对应的歌曲列表,从而得到对应的评论集合,接下来问题就转换成了IP与评论相关性的问题。
相关性的正样本我们首先通过IP名、IP人物名去召回了相关评论,然后对相关评论做了一些规则改写(比如删除IP名,把IP名随机替换等),从而提高泛化能力,最后我们采用文本对的输入形式进行分类微调。
2.2.3 热点话题挖掘
我们定义短时间内某个话题的发评评论突然增多,就会形成热点话题的形式,那么核心的问题就是怎么找到某个话题和怎么知道某个话题是一个热点,自动聚类的方式已知走不通,通过调研和参考业内主流方案,我们设计了一种热词话题聚合方法。
为了方便清楚简单的阐述,不妨直接用一个实例来进行介绍算法流程:
3.总结与展望
云音乐评论是云音乐独有的宝贵的内容资产,在社区工作中,怎么有效的对评论内容进行分发和售卖,满足用户的情感需求,是我们的使命和宗旨。在之前的工作中,我们对歌曲评论进行了类目的划分和信息的挖掘,取得了一定的效果和收获;未来,我们希望更好的利用好评论这个大宝库,以及整个云音乐社区宝库。我们会在更多的方向,比如相关性、评论生成等方向继续探索,从而期待为业务赋能。
参考资料
[1] Devlin J, Chang M W, Lee K, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[C]//Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies. 2019: 4171-4186.
[2] Su J, Lu Y, Pan S, et al. Roformer: Enhanced transformer with rotary position embedding[J]. arXiv preprint arXiv:2104.09864, 2021.
[3] Raffel C, Shazeer N, Roberts A, et al. Exploring the limits of transfer learning with a unified text-to-text transformer[J]. J. Mach. Learn. Res., 2020, 21(140): 1-67.
[4] Bach S H, Sanh V, Yong Z X, et al. Promptsource: An integrated development environment and repository for natural language prompts[C]//Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2022: 93-104.
[5] 一种海量社交短文本的热点话题发现方法
https://cloud.tencent.com/developer/article/1155587?fromSource=waitui
[6] 后Prompt时代 | NLP统一范式:预训练+大规模多任务学习
https://www.163.com/dy/article/H2IN7ES10511CQLG.html