基于深度神经网络的检索相似问题模型邢超(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.
印象云,成立于2019年3月的商家,公司注册于中国香港,国人运行。目前主要从事美国CERA机房高防VPS以及香港三网CN2直连VPS和美国洛杉矶GIA三网线路服务器销售。印象云香港三网CN2机房,主要是CN2直连大陆,超低延迟!对于美国CERA机房应该不陌生,主要是做高防服务器产品的,并且此机房对中国大陆支持比较友好,印象云美国高防VPS服务器去程是163直连、三网回程CN2优化,单IP默认给20...
RAKsmart发布了9月份优惠促销活动,从9月1日~9月30日期间,爆款美国服务器每日限量抢购最低$30.62-$46/月起,洛杉矶/圣何塞/香港/日本站群大量补货特价销售,美国1-10Gbps大带宽不限流量服务器低价热卖等。RAKsmart是一家华人运营的国外主机商,提供的产品包括独立服务器租用和VPS等,可选数据中心包括美国加州圣何塞、洛杉矶、中国香港、韩国、日本、荷兰等国家和地区数据中心(...
HostKvm是一家成立于2013年的国外主机服务商,主要提供基于KVM架构的VPS主机,可选数据中心包括日本、新加坡、韩国、美国、中国香港等多个地区机房,均为国内直连或优化线路,延迟较低,适合建站或者远程办公等。目前商家发布了夏季特别促销活动,针对香港国际/韩国机房VPS主机提供7折优惠码,其他机房全场8折,优惠后2GB内存套餐月付5.95美元起。下面分别列出几款主机套餐配置信息。套餐:韩国KR...
分词工具为你推荐
编程小学生惊库克儿童编程 scratch动物下楼怎么编?h连锁酒店全国比较有名的连锁酒店?18comic.fun有什么好玩的网站罗伦佐娜米开朗琪罗简介www.javmoo.comjavimdb怎么看99nets.com99nets网游模拟娱乐社区怎么打不开了?????????谁能告诉我 ???、kb123.net连网方式:wap和net到底有什么不一样的www.15job.com南方人才市场有官方网站是什么?javlibrary.com大家有没有在线图书馆WWW。QUESTIA。COM的免费帐号pp43.com登录www.bdnpxzl.com怎么进入网站后台啊
代理主机 免费vps服务器 www二级域名 域名反查 泛域名绑定 hostmonster 国外idc omnis 海外服务器 wdcp 512au info域名 网站被封 全能主机 英文站群 web服务器架设 bgp双线 idc资讯 老左来了 drupal安装 更多