2018蚂蚁金服NLP用户意图的精准识别,复赛f1 = 0.7327
向AI转型的程序员都关注了这个号????????????
机器学习AI算法工程 公众号: datayx
智能客服的本质,就是充分理解用户的意图,在知识体系中精准地找到与之相匹配的内容,回答用户问题或提供解决方案。问题相似度计算,是贯穿智能客服离线、在线和运营等几乎所有环节最核心的技术,同时也是自然语言理解中最核心的问题之一,广泛应用于搜索、推荐、对话等领域。
随着蚂蚁金服业务的快速发展、客服服务请求的每日俱增,加上用户描述上的多样性、口语化和省略习惯等,如何精准的判断用户意图、提供正确的答案或解决方案,变得越来越困难。
https://dc.cloud.alipay.com/index#/topic/intro?id=3
解决方案分享,复赛f1 = 0.7327
由于PAI平台限制,所有代码都放在一个文件里面,pai_train.py
是获得本次比赛成绩的文件,实验共使用了4个模型,分别是自定义Siamese网络、ESIM网络、Decomposable
Attention和DSSM网络。其中Siamese、ESIM和Decomposable Attention有char level和word
level两个版本,DSSM网络只有char和word的合并版本。最佳记录由多个模型进行blending融合预测,遗憾没有尝试一下10fold交叉训练模型,前排貌似都用了,而且这里每个模型都只用了2个小时来训练。
完整代码下载地址:
关注微信公众号 datayx 然后回复 NLP 即可获取。
模型性能比较,字符级的esim模型在这个任务中表现最佳。
训练感受:
batchsize不要太大,虽然每个epoch更快完成, 但每个epoch权重更新次数变少了,收敛更慢
使用循环学习率可以收敛到更好的极值点,更容易跳出局部极值,如在一个epoch中,使学习率从小变大,又逐渐变小
利用SWA这种简单的模型融合方法可以获得泛化能力更好的性能,本地提升明显,但线上没有改善。
pai_transform.py
和pai_old.py
是两次不成功的尝试:pai_transform.py
试图参考fastai的ULMFiT方法,通过训练语言模型作为embedding输入,并针对当前分类任务更改网络结构以适应当前训练过程。pai_old.py
试图参考quora分享,使用文本特征工程进行分类。
模型来源siamese参考:https://blog.****.net/huowa9077/article/details/81082795ESIM网络、Decomposable Attention来自Kaggle分享:https://www.kaggle.com/lamdang/dl-modelsDSSM网络来自bird大神分享:https://openclub.alipay.com/read.php?tid=7480&fid=96感谢以上!
阅读过本文的人还看了以下:
不断更新资源
深度学习、机器学习、数据分析、python
搜索公众号添加: datayx