这次比赛跟以往的比赛似乎很不一样(虽然这个是我第一次参加),以往比赛的特征技巧,融合技巧,以及一些典型的模型都在这次比赛都失效。我一度怀疑蚂蚁金服是故意设计了数据。。。。
赛题介绍
问题相似度计算,即给定客服里用户描述的两句话,用算法来判断是否表示了相同的语义。
示例:
“花呗如何还款” --“花呗怎么还款”:同义问句
“花呗如何还款” – “我怎么还我的花被呢”:同义问句
“花呗分期后逾期了如何还款”-- “花呗分期后逾期了哪里还款”:非同义问句
对于例子a,比较简单的方法就可以判定同义;对于例子b,包含了错别字、同义词、词序变换等问题,两个句子乍一看并不类似,想正确判断比较有挑战;对于例子c,两句话很类似,仅仅有一处细微的差别 “如何”和“哪里”,就导致语义不一致。
比赛思路
初赛期间,我花了大量时间做特征工程,收效甚微。因为如前面所说,这次比赛传统方法在这次数据里面都没有效果。但是,正因为我在前期做了大量的特征分析,在后期我在设计网络结构的时候能够更加得心应手,比如DIIN 这个网络模型结构,很多top20的队伍都尝试过,可是他们都说这个模型不给力,而这个模型恰恰是我的最强模型,这个跟我之前做的特征工程这部分工作有着紧密的联系。
我预想的比赛的整体流程应该是下图这样,但是最终还是没有用stacking,因为觉得提升不会很大。
这次比赛,我是非常遗憾的,也吐槽一下阿里PAI平台,每次模型训练都要排很久的队。。。 这次我进复赛的排名很低,前100名进复赛,我是第70进的,排位在前的一些大佬有认识的,但是由于排名低,最终决定自己一个人打比赛。自己一个人打比赛,随之而来的问题很多,其中最严重的问题是对时间利用效率非常低,以至于最终我的模型还没有完全收敛,就提交了最终的分数,而且期间因为一些突发事故,我丢失了几次线上提交机会,在仅剩最后一次提交机会的时候,选择了稳妥一点,但是分数低一些的模型融合。
特征工程
1)n-gram similiarity(blue score for n-gram=1,2,3…);
-
get length of questions, difference of length
-
how many words are same, how many words are unique
-
question 1,2 start with how/why/when(wei shen me,zenme,ruhe,weihe)