基于深度神经网络的检索相似问题模型邢超(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.
提速啦的来历提速啦是 网站 本着“良心 便宜 稳定”的初衷 为小白用户避免被坑 由赣州王成璟网络科技有限公司旗下赣州提速啦网络科技有限公司运营 投资1000万人民币 在美国Cera 香港CTG 香港Cera 国内 杭州 宿迁 浙江 赣州 南昌 大连 辽宁 扬州 等地区建立数据中心 正规持有IDC ISP CDN 云牌照 公司。公司购买产品支持3天内退款 超过3天步退款政策。提速啦的市场定位提速啦主...
Nocser刚刚在WHT发布了几款促销服务器,Intel Xeon X3430,8GB内存,1TB HDD,30M不限流量,月付$60.00。Nocser是一家注册于马来西亚的主机商,主要经营虚拟主机、VPS和马来西亚独立服务器业务,数据中心位于马来西亚AIMS机房,线路方面,AIMS到国内电信一般,绕日本NTT;联通和移动比较友好,联通走新加坡,移动走香港,延迟都在100左右。促销马来西亚服务器...
腾讯云轻量应用服务器又要免费升级配置了,之前已经免费升级过一次了(腾讯云轻量应用服务器套餐配置升级 轻量老用户专享免费升配!),这次在上次的基础上再次升级。也许这就是良心云吧,名不虚传。腾讯云怎么样?腾讯云好不好。腾讯云轻量应用服务器 Lighthouse 是一种易于使用和管理、适合承载轻量级业务负载的云服务器,能帮助个人和企业在云端快速构建网站、博客、电商、论坛等各类应用以及开发测试环境,并提供...
分词工具为你推荐
外挂购买什么外挂网好点地图应用哪个手机定位软件最好用?阿丽克丝·布莱肯瑞吉唐吉诃德·多弗朗明哥知道什么秘密甲骨文不满赔偿工作不满半年被辞退,请问赔偿金是怎么算的?陈嘉垣马德钟狼吻案事件是怎么回事陈嘉垣陈浩民、马德钟强吻女星陈嘉桓,求大家一个说法。曹谷兰曹谷兰事件 有吧友知道吗www.55125.cnwww95599cn余额查询www.gegeshe.com有什么好听的流行歌曲www.sesehu.comwww.121gao.com 是谁的网站啊
域名备案信息查询 bbr 私服服务器 gateone tk域名 100mbps web服务器安全 优酷黄金会员账号共享 美国独立日 重庆电信服务器托管 国外的代理服务器 中国linux 免费asp空间申请 永久免费空间 1美元 杭州电信 网络速度 google搜索打不开 512内存 新网dns 更多