【客户反馈复盘】
根据意图saas管理后台收集的客户反馈,我分别从工程、策略算法角度,总结了以下几点在推送线索时需要解决的问题:
-
工程:
-
避免推送已被抓获、已被查处的人员
-
避免推送公安、缉毒、法务、医务等人员
-
避免推送最新活跃时间距今过久人员
-
避免推送无法落地手机号、住址等个人信息的人员
-
-
策略算法:
-
对体育运动相关的query,例如“冰壶““溜冰“,这些单词具有多重含义,在不同上下文中代表的含义是不同的,因此需要联系上下文进行识别;
-
对单条query的意图强度进行高中低分类;
-
对于整个query序列中不涉及高强度意图的人员、以及近期query不涉及高意图的人员,要识别出来打低分,因为这些在警方研判过程中被视为无效线索;
-
对于某个用户id下整个query序列,模型的注意力应集中于近期的query
-
【初步构思:模型方案设计、技术调研选型、任务拆分】
根据上面总结的问题,自己在策略算法方面初步提出如下方案:
-
模型方案分成如下几步:
-
对query进行意图强度高-中-低2-1-0标注
-
对query进行分词
-
采用BERT pretrained model,对分词后的query进行embedding向量化(为什么选用BERT?一是因为BERT能够很好的解决一个单词在不同上下文中代表不同的含义的问题;二是因为在BERT中,使用了WordPiece的分词方法,使词库更精简,减少训练时间)
-
训练高-中-低 query文本分类器
-
用query文本分类器对于用户的每一条query进行分类,得到一个高-中-低编码序列2-1-0
-
用2-1-0编码序列,给到lstm时序模型(为什么选用lstm?利用其在处理长期序列时,会遗忘最开始的内容,这符合当前业务所需,也就是要模型的注意力应集中于近期的query),在此基础上,借鉴ctr的思路,得到当前用户在下一阶段具有高-中-低风险意图的概率值
考虑样本量有限,整个训练过程可以采用自监督学习--对比学习来进行初步训练,以充分利用不带标签的样本,再在这个基础上用带标注样本进行fine tune。
第一步:
1、文本分类器
(1)文本编码:句子文本编码 word2vec、OOV未知词处理、padding处理是加在前面还是后面
(2)分类器:
- FastText适用于类别较多的文本分类,小类别容易过拟合
- TextCNN分类:不同长度句子经过pooling后变成定长表示
需要解决的问题:
-
样本数量不足
-
自监督学习中,相似样本怎么构造?这一步在文本分类的过程中不需要考虑,因为样本是足够的,一个query就是一个样本;但在时序模型中就要考虑了;
-
序列长度怎么对齐?
-
word embedding过程中,OOV生词怎么处理?
小知:
(1)未知词OOV
- 方法一:FastText.most_similary可以从已知词中找到最为相似的词向量
- 方法二:两个文本集合对齐
- 找到集合a和集合b中的公共词集合
- 集合a中有的,但集合b中没有的==>用公共词集合中的词代替集合b中没有的那一部分词:用相近词替换
(2)伪标签法 Pseudo label 充分利用无标签数据
- 使用标记数据训练有监督模型M
- 使用有监督模型M对无标签数据进行预测,得出预测概率P
- 通过预测概率P筛选高置信度样本
- 使用有标记数据以及伪标签数据训练新模型M’
参考链接:
伪标签(Pseudo-Labelling)——锋利的匕首 - 知乎