汽车行业用户观点主题及情感识别————专业陪跑二十年
队员:
chantcalf
我是鲜肉--永远不皱
我吃火锅,你吃火锅底料
keras+tensorflow
初赛 Rank 16, 复赛A/B Rank 12/22
对文本内容中的讨论主题和情感信息来分析评论用户对所讨论主题的偏好
文本分类,合并主题和情感,分30类
数据未清洗,大量数据模棱两可的,还是都交给模型了。
数据量小,单用字比单用词好点;
300d 预训练固定 + 100d 可训练;
可以分开训练再融合,也可以直接在模型里合一起;
我们使用的是https://github.com/Embedding/Chinese-Word-Vectors ;
其中字词同时训练的,在模型里直接拼接效果非常好。
可以使用不同的预训练词向量做融合(未尝试)。
这个题目全局上下文很弱,明显具有最优子结构,当某个连续子串含有某个标签,整句就有某个标签。
随机取两个样本拼起来,再把它们的标签取maximum, 就得到新样本,我们是每个batch随机采样一个当前batch的和一个全局采样的拼起来。
提高数据增强数据的比例能略微提升线上成绩。
类似的可以在模型中对句子按一定长度扫描或划分,共享模型权值,预测结果取max。这相当与一种隐性的数据增强(怕跑不动,未尝试)。
注意力模型和胶囊网络效果差不多,注意力模型跑得更快。胶囊网络可以每几个胶囊负责一个主题,也可以所有胶囊Flatten后预测,效果也差不多。
直接输出30类。RNN输出或CRF没有更好地效果(猜测是各标签没啥联系)。
F1最优结果阈值基本在0.5附近,也可以就看loss,调阈值提交;
训练集中多标签占比为10%, 提交数量为1.1倍较好。
略微改动结构或数据增强比例都可以当做一个新模型。
每个模型做五折交叉验证,每折五次平均,效果很好。
各模型取均值或加权平均。
第一次尝试stacking,用所有模型预测值当特征,用一个全连接NN做上层,基本同样的五折交叉验证,线上比均值略低。