句子大全

句子大全 > 句子大全

Kaggle文本语义相似度计算Top5解决方案分享

句子大全 2014-09-29 18:45:04
相关推荐

对于LDA和tfidf的句子表示原理在此不做细讲,在实践中我们发现,使用tfidf值对词向量做一个加权,得到的句子表示也是一种不错的表示。

深度模型

深度模型有两种思路,一种是基于表示,一种是基于交互。不过基于交互的模型大多也是先要拿到文本表示,从文本表示构建交互,从交互到特征抽取的思路。其基本的模型如下所示

这是一个非常直观的思路,最后一层的matching score建模方法甚至可以用一个简单的FC代替,或者做一次element-wise 乘之后接FC。下面有在IR中用表示方法做这个问题的几篇论文。

DSSM: LearningDeep Structured Semantic Models for WebSearchusing Click-through Data (Huanget al., CIKM’13) CDSSM: Alatentsemanticmodelwith convolutional- poolingstructureforinformationretrieval (ShenY,HeX, Gao J,etal.CIKM’14) ARC I: ConvolutionalNeural NetworkArchitecturesfor MatchingNaturalLanguageSentences(Huet al., NIPS’14) LSTM-RNN:Deep Sentence Embedding Using the Long Short Term MemoryNetwork:Analysis and Application toInformation Retrieval (Palangietal.,TASLP’2016)

基于交互的方法是通过Interaction来对文本相似性建模,其模型基本的原理是。

有一篇非常有意思的文章Text Matching as Image Recognition. (Liang Pang, Yanyan Lan, Jiafeng Guo, Jun Xu, and Xueqi Cheng. AAAI 2016)这也是庞亮学长在AAAI 2016上的工作,所以他们打这个比赛,完全就是把中科院的模型拉出来遛遛。这个模型也很直觉,就是把两个文本的相似性建模成一张图片,再用CNN做特征抽取器。

拿到每个词的embedding。 (embedding) 构建两个文本的相似矩阵。 (Interaction) 把相似矩阵放入两层CNN中。 (Feature extract) 把CNN的结果放入两层的全连接中。 (FC) 获得二分类的score。 (distribution)

后来的一些工作都大同小异,比如不直接使用词向量,利用RNN的隐层向量去构建交互等等。具体的文章如下,感兴趣的同学可以看一下。

DeepMatch: A Deep Architecture for Matching Short Texts (Lu and Li, NIPS’13) ARC II: Convolutional Neural Network Architectures for Matching Natural Language Sentences (Hu et al., NIPS’14) MatchPyramid: Text Matching as Image Recognition. (Liang Pang, Yanyan Lan, Jiafeng Guo, Jun Xu, and Xueqi Cheng. AAAI 2016) Match-SRNN: Modeling the Recursive Matching Structure with Spatial RNN. (Shengxian Wan, Yanyan Lan, Jiafeng Guo, Jun Xu, and Xueqi Cheng. IJCAI 2016)

下面回到这个比赛中,具体结合数据谈一谈。

在比赛中发现,训练集和测试集的正负样本比有明显差异,分布上的差异最后体现在logloss指标上的gap,在比赛中大家推导出一个后处理的公式,然后可以拉平分布带来的分数异动。使用贝叶斯公司能推导出这个后处理,前提是可以测出分布的情况下。有论文对这个做了详细的讲解。"Adjusting the Outputs of a Classifier to New a Priori Probabilities: A SimpleProcedure

https://pdfs.semanticscholar.org/d6d2/2681ee7e40a1817d03c730d5c2098ef031ae.pdf

比赛中一些预处理方法有

词元化/词干花 停止词删除 标点符号清洗 特殊符号替换 词向量扩充句子得到另一份句子(这个直觉的思路是,利用词向量找相关词的特性,增加传统特征方法的容错性。比如集合度量方法,开心和高兴虽然是一个意思,但是不扩充近义词的话,其容错性很低)

top1 -top 5 详细解决方案获取方式:

不得不提的是,这个比赛中有一个非常关键的leak信息。一个问题如果出现频繁的话,就很可能是一个重复的问题。后来发现前几名在这个leak上做了很多文章,取得了非常好的效果。后来CPMP给的解释是:

A question that is asked often has more chances to be redundant. Thanks for sharing.

以第一名的解法为例,他的特征工程中含有大量的来自图的Structural features 。我感觉这部分也是最关键的。第一名的解法有300多个模型做了stacking。简直爆炸。

第四名HouJP学长的,亮点就是深度模型的分数很高,不愧是中科院IR大佬。

第五名的解法也是在图的建模上挖掘了大量的特征。

第七名亮点就是这个人比较懒,花了大量的时间在深度模型上。和第一名都用了一个叫 decomposable attention 的东西。

后来总结一下这个赛题,由于基于图的特征的存在,使得这部分的特征工程尤为重要,这也是我们做的不好的地方。前几名在图上都做了充分的挖掘,体现了强大的特征工程能力。不过这部分东西,单纯的文本相似性/相关性的工作没什么贡献,如果抱着研究目的的同学可以忽略这部分。

由于这是我参加的第一次比赛,所以印象十分深刻。学到了一些对比赛使用的流程性的东西,体会到pipeline的重要性,不过教训也很多,也算一种成长吧。

https://zhuanlan.zhihu.com/p/35093355

将机器学习模型部署为REST API

FashionAI服装属性标签图像识别Top1-5方案分享

阅读剩余内容
网友评论
相关内容
拓展阅读
最近更新