V1版的模型存在一个明显的问题,即对一些与歌曲无关或弱相关的一些优质良好评论会给予较高的语义分数。例如上图例子中歌曲《水星记》下的两条评论,模型同时给予了第一条和第二条评论优质的标签。从文本和语言角度看,两条评论都很优美。然而第一条包含了“银河”、“星空”等与歌曲信息相关的主题词,所以它与歌曲的相关性明显更强。但是之前的质量模型并没有充分考虑这种相关性,因此我们需要再加入一个相关性模型,在优质标签的基础上再分档,从而使得与歌曲更相关的评论能够得到更高的语义分数。
此外,我们之前使用的质量模型在判断相关性上也存在明显的缺陷。首先,考虑到我们需要把歌词,演唱会等更多的信息融入到输入中,质量模型采用的Sentence Pair 这种方式会导致输入序列过长,有可能超过BERT模型的最长处理长度;其次使用CLS可能会使模型看到并过分依赖描述信息,导致过拟合。因此我们重新构建了一个相关性模型,并分为相关性预训练和相关性分类任务两个阶段。要做预训练是因为相关性判定需要使用到标注数据,然而其标注成本较高,所以我们想通过一些自监督的方法,使得相关性分类任务能够得到较好的初始化参数。
② 相关性预训练
我们的预训练模型使用了MLM任务和百万量级的QQ音乐评论。考虑到相关性高的评论中的一些字词或者主题等可能来自于歌词,歌曲名或者描述信息,所以在MLM生成Token时时需要考虑这部分信息的。这里分别对歌曲和评论进行编码,然后通过局部多头注意力机制层,用歌曲信息去表示MSK部分。之后,使用一个门控层去帮助模型取舍评论文本和歌曲信息,并最终得到一个向量表示来进行MSK部分的预测。假设评论的某部分和歌曲信息某部分相同或者具有相同的上下文,那么歌曲信息部分对MLM预测的贡献度就较高,对应门控层中红色部分的模也会较大,这在一定程度上反映了歌曲和评论的相关性。
③ 相关性分类任务
我们的相关性分类任务复用了之前的模型结构和参数。之前提到上图红色的部分代表相关性信息,我们这里将它和模型原始BERT Embedding进行了拼接,去做一个强相关,弱相关和无关的三分类任务。我们把相关性标签应用到排序中,相关性较高的优质评论的排名会上升,最终评论点赞率有所提升。
--
05
未来展望
1. 评论审核
评论审核方面,我们后期的目标是对整体的审核准确率进行持续优化。对人工审核的数据实现自动清洗并且扩充训练集。此外,我们还准备开放更多的音乐评论标签的服务接口。
2. 评论排序
排序上,我们将推进评论流水上报,将经验公式变成排序模型。此外,我们也会对语义因子进行扩展和持续优化。
--
06
Q & A
Q1:排序中的相似度计算会不会很费资源?
A1:不会。因为我们使用的是LSA方法,它的向量化比较简单,其本质就是做SVD矩阵分解。
Q2:情感分析中提到的转折性句式是什么?
A2:例如“你前面唱的还可以,但是后面唱的不太行”,这句话我们认为它的重心是“但是”转折词后面那句话,即我们认为这是比较偏负向的一条评论。再例如“你后面唱的不行,即使你前面唱得很好”,这样的句子重心就在前面。我们通过加入转折词概念的方式来让模型去知道句子的重心在哪里,帮助模型去判断。
Q3:自定义Embedding和BERT Embedding是如何拼接的?
A3:我们是在传统Embedding的基础上加上自定义Embedding,但是我们是在Norm之后加上的,因为我们发现这种方式效果更好。如果直接将两者拼接,自定义Embedding的信息会被之前的BERT Embedding淹没掉。
今天的分享就到这里,谢谢大家。
分享嘉宾:yiping TME 算法工程师
编辑整理:桑小晰 深交所
出品平台:DataFunTalk
01/分享嘉宾