基于深度神经网络的检索相似问题模型邢超(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.
由于行业需求和自媒体的倾向问题,对于我们个人站长建站的方向还是有一些需要改变的。传统的个人网站建站内容方向可能会因为自媒体的分流导致个人网站很多行业不再成为流量的主导。于是我们很多个人网站都在想办法进行重新更换行业,包括前几天也有和网友在考虑是不是换个其他行业做做。这不有重新注册域名重新更换。鉴于快速上手的考虑还是采用香港服务器,这不腾讯云和阿里云早已不是新账户,考虑到新注册UCLOUD账户还算比...
星梦云怎么样?星梦云资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器。星梦云目前夏日云服务器促销,四川100G高防4H4G10M月付仅60元;西南高防月付特价活动,续费同价,买到就是赚到!点击进入:星梦云官方网站地址1、成都电信年中活动机(成都电信优化线路,封锁...
TabbyCloud迎来一周岁的生日啦!在这一年里,感谢您包容我们的不足和缺点,在您的理解与建议下我们也在不断改变与成长。为庆祝TabbyCloud运营一周年和七夕节,TabbyCloud推出以下活动。TabbyCloud周年庆&七夕节活动官方网站:https://tabbycloud.com/香港CN2: https://tabbycloud.com/cart.php?gid=16购买链...
分词工具为你推荐
西部妈妈网我爸妈在云南做非法集资了,钱肯定交了很多,我不恨她们。他们叫我明天去看,让我用心的看,,说是什么...广东GDP破10万亿广东省城市经济排名22zizi.com福利彩双色球22号开奖号蒋存祺蒋存祺的主要事迹同ip网站同IP网站9个越来越多,为什么?www.zjs.com.cn怎么查询我的平安信用卡寄送情况www.kaspersky.com.cn现在网上又有病毒了?www.dm8.cc有没有最新的日本动漫网站?dpscycle痛苦术士PVE输出宏鹤城勿扰齐齐哈尔电视台晴彩鹤城是哪个频道
香港虚拟空间 备案域名出售 域名抢注工具 singlehop virpus 站群服务器 20g硬盘 北京主机 华为网络硬盘 创梦 165邮箱 免费防火墙 双11秒杀 亚马逊香港官网 ftp免费空间 gtt 服务器硬件防火墙 无限流量 512mb 免费外链相册 更多