当前位置:   article > 正文

QA问答模型实践

问答模型

任务描述

给定中文问答对[(question, answer),标签(label)], 通过构建模型,提升模型的准确率。

数据分析(统计)

  • 数据清洗、分词后,进行统计,如下图可以得到:问题经过处理后最大的词数为37,最小2,平均10。答案经过处理后最大的词数为16892,最小1,平均20。(实际上还要统计中位数等)

  • 经过统计数据中labels, 正例与负例比例为3:97,数据中等偏严重的数据失衡,但是训练数据有10万个,算起来正例有3000,训练的时候可以采取随机负采样方法进行训练(发生了过拟合),也可以使用损失函数权重加权的方式。

模型选择

QA问答任务,有很多种解决方案,本次选择两种模型,都是采用孪生Bi-LSTM结构,不同的是在计算相似时,一个使用点乘+softmax,一个使用cos+对比损失函数。

孪生网络--链接

注:这里的训练集按照一般分类任务来建立模型,并没有使用构建(Q,A正,A负)三元组这样的训练模式。

参数设置

参数设置:max_len = 32, embedding_size = 200, LSTM_hidden_units = 64

模型调参

  • 使用多次随机下采样进行训练,比例为1:3(每次从训练负样本采1万+3000正样本),batch_size = 100, lr = 0.001, epochs = 32 final_acc = 99% val_acc = 90%, f1score  = 92.6. 这里验证数据集分布极为不均衡(但是没办法更改)。
  • 比例为1:10(每次从训练负样本采3万+3000正样本),采用损失函数权重加权(1:10),batch_size = 100, lr = 0.001, epochs = 10 final_acc = 99% val_acc = 84%, f1score  = 90. 这里验证数据集分布极为不均衡(但是没办法更改)。
  • 比例为1:1(每次从训练负样本采3000+3000正样本),batch_size = 100, lr = 0.001, epochs = 100 final_acc = 100% val_acc = 75%, fiscore  = 88.78. 这里验证数据集分布极为不均衡(但是没办法更改)。

 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/AllinToyou/article/detail/346222
推荐阅读
相关标签
  

闽ICP备14008679号