bert模型简单使用&app分类场景前期效果验证
2020-01-15 本文已影响0人
yangy_fly
好久没更新了,更新一个前一段时间做的项目的前期效果调研过程,目前已经在走工程化流程。
1、项目背景
基于app推送的文本内容隐含地表示了app的属性信息的假设,我们从app推送内容入手,使用NLP的方式尝试获取能够描述app属性的向量数据。同时期望该数据能够为app分类、用户分群等场景带来新的思路。以下调研结果和过程都是基于app分类的场景
2、调研结果
2.1、app多分类结果
category数量 | app总数 | 有label的app数量 | 无label的app数量 | 验证集预测准确率 | 测试集model | 测试集KNN(k=20) | 测试集model+KNN |
---|---|---|---|---|---|---|---|
20 | 387 | 150 | 237 | 0.6 | 0.425 | 0.525 | 0.525 |
- 训练集共120个app(150*0.8),训练语料约32万条文本训练出120个app向量。
- 验证集共30个app(150*0.2),验证语料约8万条文本训练出30个app向量。
- 测试集共40个app。从237个无label的app向量中随机抽样了40个进行人工验证。
- model预测准确率0.425(17/40);KNN准确率是0.525(21/40);结合model和KNN的预测准确率是0.525(21/40),与KNN结果的分子不完全重合。
2.2、推送语句聚类
category数量 | 带label的文本总数 | 测试文本数 | KNN top1准确率(K=5、10、15、20) |
---|---|---|---|
10 | 4873 | 975(约20%*4873) | >90% |
3、调研过程
3.1、数据说明(语料均做过去重/去相似处理)
- 所有数据概要说明
语料总数 | app总数 | 群推语料数量 | 群推app数量 | 单推语料数量 | 单推app数量 | 重合app数量 |
---|---|---|---|---|---|---|
783446 | 387 | 147079 | 110 | 636367 | 352 | 75 |
- 训练数据概要说明
训练语料总数 | 训练app数量 | 验证语料总数 | 验证集app数量 | 测试集语料总数 | 测试集app数量 | app最少语料数 | app最多语料数 |
---|---|---|---|---|---|---|---|
320000 | 120 | 80000 | 30 | 378259 | 40 | 1 | 56715 |
-
训练语料数量分布(app维度)
image.png -
训练category语料数量分布
category数量 | category最少语料数 | category最多语料数 | 最少app数及对应category | 最多app数及对应category |
---|---|---|---|---|
20 | 5 | 99024 | 2:[教育、婚庆、钓鱼、行业交易平台、彩票] | 29:[金融理财] |
-
训练语料分布(category维度)
image.png
3.2、app向量聚类展示
image.png3.3、模仿word2vec训练出app向量
image.png4、后续改进
后续优化点
- 在保证每个app有充足训练语料的情况下,对文本数据做去重去相似处理(目前去重太多)
- 增加app标注数据(增加更多分类的训练数据)
- app分类标注更准确,更多样化(一个app标注多个应属的category)