基于深度神经网络的检索相似问题模型邢超(chaoxing)白子薇(ziweibai)2016/12/27CSLT,RIIT,TsinghuaUniv.
1.
背景32.
相似问题匹配模型43.
运行说明63.
1.
模型语料准备63.
2训练与测试脚本63.
2.
1采样脚本63.
2.
2自动训练脚本63.
2.
3自动测试脚本63.
2.
4备注73.
3核心程序接口说明74.
实验94.
1.
词向量准备94.
2.
参数设置94.
3.
实验结果95.
参考文献111.
背景随着网络大数据挖掘技术以及云计算技术逐渐成熟,深度神经网络在一些自然语言理解任务中展现出远超传统方法的效果以及计算速度.
其中,由微软亚洲研究院提出的DSSM(DeepStructuredSemanticModel)模型在信息检索(IR,InformationRetrieval)中被验证有着较高的性能.
DSSM模型的基本思路是将一个检错语句通过深度神经网络抽象成一个固定维度的向量表征,基于搜索与点击(Search-Click)关系构造分类模型,该模型试图将搜索语句与点击页面的标题在语义层面彼此靠近.
微软在2012年至2014年间,连续提出了多个DSSM模型,由不同的网络结构分为:DSSM(DNNbased),CDSSM(CNNbased),RDSSM(RNNbased),LDSSM(LSTMbased)等.
其中,综合考虑计算时间以及在线策略,本文档主要介绍CDSSM,旨在节约计算资源的前提下,保证最大性能.
CNN应用于自然语言理解任务早在2012年就有研究人员提出,并且在文本分类、句子分类以及信息检索中得到了显著的成功.
一个典型的CNN在语言理解任务中的应用如图一所示.
图一CNN提取文本信息图CNN能够捕获句子中不同位置的信息,并且这些信息抽象出来,用以获得较好的句子向量表征.
微软提出的CDSSM模型,主要的贡献是:1、提出了Tri-Letter的方法,试图解决OOV的问题2、使用CNN抽象搜索语句表达,并且与另一个页面CNN抽象模型进行Softmax分类,优化不同的搜索Query对应点击页面的分类准确率.
CDSSM模型图如图二所示:图二CDSSM模型图2.
相似问题匹配模型由于上述模型在微软Bing搜索引擎中的成功实践,我们提出了一种基于CDSSM模型的相似问题匹配模型,本模型针对智能问答系统中模板匹配的痛点,使用CDSSM模型的基本思想,将模板问题与标准问题进行分组,优化目标试图使得组内问题的相似度大,而不同组之间的问题相似度小.
模型目标是在基于已有的标注模板进行训练,使得系统可以识别出大部分类似标注问题的问题从而减轻标注人员的工作量.
本模型与微软提出的CDSSM模型基本一致,但汉语和英语具有差异性,汉语无法使用lettertri-gram,因此,我们对模型进行了一些改进:逻辑输入由lettertri-gram改为word,真实的输入是由word2vec训练得到的词向量,而非与lettertri-gram对应的one-hot向量.
除此之外,其它两个不同点为:1.
损失函数由softmax改为:Loss=max0,,.
,0+2.
CNN的Region数可配置,采用拼接的方式连接不同region.
相似问题匹配模型如图三所示.
我在清华大学工作Max-PoolingMax-PoolingMax-PoolingOutputVector图三相似度问题匹配模型图3.
运行说明3.
1.
模型语料准备模型的训练语料主要采用汇联标注好的模板,标注了:扩展问题以及标准问题.
通过将扩展问题中的相似词展开,删除语句中包含非中文的语句.
得到多对相似问题.
对相似问题对进行初步处理以便我们后续过程的使用.
1、对数据进行聚类,每类分别保存在一个文件中把所有直接相似的问题和间接相似的问题归并为一类,如果A与B相似,B与C相似,可以认为A和C也是一对相似问题,即ABC彼此都相似,ABC属于一类.
2、使用结巴分词对数据进行分词通过以上方式得到的数据在之后的训练测试过程中不会再更改,并且之后训练、测试用到的数据都是由这些数据而来.
我们提交的数据就是这些数据.
3.
2训练与测试脚本3.
2.
1采样脚本初始语料的数据量太大,训练缓慢,对机器的内存和显存要求过高,因此我们需要对这些数据进行采样,以获得适量的数据进行模型的构建.
为了更好的验证模型,我们采样了多组数据进行训练和测试.
程序名称run_prepare.
sh功能:1、对初始数据进行采样,获取N组数据,每组数据有1000类,每类有500个数据.
2、分割采样数据,90%作为训练数据,10%作为测试数据3、把训练数据整理成训练过程中所需要的矩阵4、把测试数据整理成测试过程中所需要的矩阵使用示例:shrun_prepare.
sh4(参数是采样的数量.
示例中一共得到四个文件,每个文件代表一组采样数据,分别为data_0,data_1,data_2,data_3,0、1、2、3为每组数据的编号)3.
2.
2自动训练脚本程序名称:run_train.
sh功能:训练模型并保存使用示例:shrun_train.
sh00第一个参数'0'是数据组的编号,用编号区分不同组数据及对应的模型,第二个参数'0'代表实验运行指定的GPU3.
2.
3自动测试脚本程序名称:run_test.
sh功能:根据训练得到的模型进行测试,分别测试相同数据在top1、top5、top10三种情况下的正确率,并记录Badcase使用示例:shrun_test.
sh00第一个参数'0'是数据组的编号,根据编号可以定位到对应的测试数据与模型,第二个参数'0'代表实验运行指定的GPU3.
2.
4备注Badcase存在result文件夹中,文件名称与编号和topk有关.
如result_0_top1即第0组数据在top1下的Badcase.
因为机器不同,代码存储路径不同,在运行时,需要对run_train.
sh和run_test.
sh中tool_path,src_path进行修改.
3.
3核心程序接口说明本次提交python核心脚本分别为:simple_train_process.
py,simple_test_process.
py,toolbox.
其中:simple_train_process.
py为训练脚本,参数为:-source接收一个训练样本矩阵,注:本脚本只接受一个每一个类中样本数为450的样本矩阵,并且样本矩阵已经转换为word-index矩阵-dict接收一个词向量文件,注:词向量文件中词向量需要进行meanvariancenormalization,词向量文件中的中文编码为UTF-8-linearCDSSM的输出向量之后,按需要考虑是否配置线性层,使用方法为:线性层的数量每层的节点数,如:310245121024,按空格隔开.
-nonCDSSM的输出向量之后,按需要考虑是否配置非线性层,非线性层的激活函数为tanh,使用方法为:非线性层的数量每层的节点数,如:310245121024,按空格隔开.
-convCDSSM模型中的Region数量,以及不同Region中的Step数,按空格隔开,如:3123.
-num-filterCDSSM中filter的数量.
-batch本文中描述的CDSSM模型,采用mini-batch方法更新参数.
-epoch模型训练的轮数.
-output输出模型存放的位置以及名称.
使用示例:pythonsimple_train_process.
py-source.
.
/data/Data-1000-500.
train.
npy–dict.
.
/data/word_vec_norm-linear0-non0-conv3123-num-filter200-batch500-epoch100-outputmodel/modelsimple_test_process.
py为测试脚本,参数为:-source接收一个候选集矩阵.
-target接收一个测试集矩阵.
-dict接收一个词向量文件,注:词向量文件中词向量需要进行meanvariancenormalization,词向量文件中的中文编码为UTF-8-batch由于内存、显存的限制,将不同词矩阵转化为CDSSM的输出矩阵时,需要按batch进行.
-match每个测试集中的问题对应的候选集中的正确答案范围的dict-linear,-non,-conv,-num-filter,-output与训练脚本中设置的参数一致.
使用示例:pythonsimple_test_process.
py-source.
.
/data/Data-1000-500.
train.
npy-target.
.
/data/Data-1000-500.
test.
npy-dict.
.
/data/word_vec_norm-outputmodel/model-90000-match.
.
/data/match_dict-linear0-non0-conv3123-num-filter200-batch5004.
实验4.
1.
词向量准备我们选择谷歌的开源工具word2vec对语料进行训练.
语料分布:汇联提供的PlainText数据1.
7G分词工具:o词向量:使用jieba分词工具,通过结巴分词中的默认词表对数据进行分词,允许使用HMM模型.
o字向量:将训练语料每个句子逐字隔开.
Word2vec训练参数设置如下表所示类型WindowIterationcbowSizesamplenegativehsbinary词向量8200(skip-gram)2001e-4500字向量8180(skip-gram)2001e-45004.
2.
参数设置non:0linear:0conv:3123num_filter:100batch:500epoch:10参数说明:不设置线性层和非线性层,卷积层有三层,每层的Step数分别为1,2,3,filter数量为100.
一个batch的大小为500,一共训练10轮.
4.
3.
实验结果我们一共准备了四组训练语料与测试语料.
记为data_0;data_1;data_2;data_3.
四组数据top1、top5、top10的正确率如下数据data_0data_1data_2data_3Top10.
97350.
96970.
972180.
9449Top50.
99240.
990920.
990820.
99238Top100.
99450.
993880.
993560.
99516从实验结果可以看到,预测过程中,考虑top5的问题比只考虑top1的问题正确率提升显著.
但是考虑top10的问题与只考虑top5的问题相比,正确率提升不明显.
Badcase主要集中在关键词区分的类上面,即关键词不一致,上下文基本一致,分到两个不同的类中.
或关键词一致,上下文不一致,分到两个不同的类中.
示例:1、关键词不一致,上下文基本一致:眉粉怎么使用浴花怎么使代替收付费有哪类交钱规则额外手续费存在哪类收款规则派即刻清设有现货么预先整洁药剂有现货哇支票业务的收缴规范是多少践约保单的收缴规范包含几种温和型皮肤可以那个么敏感型皮肤可以那个勒腮红刷色怎么样睫毛夹怎么用2、关键词一致、上下文不一致电话端领航能否准许设立电话端领航怎么样设立呢咋样查看订单哇啥样取消订单呢有关帮得佳家用用品的种类帮得佳家用用品有啥功能红果清亮露具有副作用呢红果清亮露拥有新的哇俺要来双洁面膏洁面膏清洁干净注:因为部分数据分类有错误,导致在计算正确率时,一些实际分类正确的数据被判定为错误,导致正确率低于实际值.
我们随机采样了200个Badcase,人工检查后发现有118个属于误判,占59%.
考虑误判的情况,不同数据集top1的实际正确率如下表所示:数据data_0data_1data_2data_3Top10.
9891350.
9875770.
98859380.
9774094.
4改进后实验结果在上一步实验实验的基础上,我们在输出层加上batchnormalization(即对每个batch在输出层都做normalization),测试后几组数据的正确率如下:数据data_0data_1data_2data_3Top10.
975720.
977980.
979840.
95136Top50.
996160.
996160.
996380.
99628Top100.
998360.
998360.
998140.
998345.
参考文献【1】HuangPS,HeX,GaoJ,etal.
Learningdeepstructuredsemanticmodelsforwebsearchusingclickthroughdata[C]//Proceedingsofthe22ndACMinternationalconferenceonConferenceoninformation&knowledgemanagement.
ACM,2013:2333-2338.
【2】GaoJ,DengL,GamonM,etal.
Modelinginterestingnesswithdeepneuralnetworks:U.
S.
PatentApplication14/304,863[P].
2014-6-13.
【3】ShenY,HeX,GaoJ,etal.
Alatentsemanticmodelwithconvolutional-poolingstructureforinformationretrieval[C]//Proceedingsofthe23rdACMInternationalConferenceonConferenceonInformationandKnowledgeManagement.
ACM,2014:101-110.
CloudCone商家在前面的文章中也有多次介绍,他们家的VPS主机还是蛮有特点的,和我们熟悉的DO、Linode、VuLTR商家很相似可以采用小时时间计费,如果我们不满意且不需要可以删除机器,这样就不扣费,如果希望用的时候再开通。唯独比较吐槽的就是他们家的产品太过于单一,一来是只有云服务器,而且是机房就唯一的MC机房。CloudCone 这次四周年促销活动期间,商家有新增独立服务器业务。同样的C...
提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...
官方网站:点击访问酷番云官网活动方案:优惠方案一(限时秒杀专场)有需要海外的可以看看,比较划算29月,建议年付划算,月付续费不同价,这个专区。国内节点可以看看,性能高IO为主, 比较少见。平常一般就100IO 左右。优惠方案二(高防专场)高防专区主要以高防为主,节点有宿迁,绍兴,成都,宁波等,节点挺多,都支持防火墙自助控制。续费同价以下专场。 优惠方案三(精选物理机)西南地区节点比较划算,赠送5...
分词工具为你推荐
外挂购买朋友,您好。我想请问一下,我在网络上购买了一个手游辅助器,他需要刘祚天你们知道21世纪的DJ分为几种类型吗?(答对者重赏)原代码什么叫源代码,源代码有什么作用同ip站点查询如何查看几个站是不是同IPip查询器查看自己IP的指令bbs2.99nets.com西安论坛、西安茶馆网、西安社区、西安bbs 的网址是多少?kb123.netwww.zhmmjyw.net百度收录慢?www.henhenlu.com有一个两位数,十位数字是个位数字的二分之一,将十位数字与个位数字对调,新的两位数比原来大36,这个两位数www.36ybyb.com有什么网址有很多动漫可以看的啊?我知道的有www.hnnn.net.很多好看的!但是...都看了!我想看些别人哦!还有优酷网也不错...www.hyyan.com请问我是HY了吗?在线等
虚拟空间免费试用 青岛虚拟主机 wordpress主机 oneasiahost 加勒比群岛 l5639 贵州电信宽带测速 lighttpd 一点优惠网 京东商城0元抢购 申请个人网站 世界测速 卡巴斯基是免费的吗 腾讯总部在哪 畅行云 域名转入 购买空间 免费网络空间 免费主页空间 塔式服务器 更多