基于深度学习的语义匹配

语义匹配技术,在信息检索、搜索引擎中有着重要的地位,在结果召回、精准排序等环节发挥着重要作用。

传统意义上讲的语义匹配技术,更加注重文字层面的语义吻合程度,我们暂且称之为语言层的语义匹配;而在美团这样典型的O2O应用场景下,我们的结果呈现除了和用户表达的语言层语义强相关之外,还和用户意图、用户状态强相关。

用户意图即用户是来干什么的?比如用户在百度上搜索“关内关外”,他的意图可能是想知道关内和关外代表的地理区域范围,“关内”和“关外”被作为两个词进行检索,而在美团上搜索“关内关外”,用户想找的就是“关内关外”这家饭店,“关内关外”被作为一个词来对待。

再说用户状态,一个在北京和另一个在武汉的用户,在百度或淘宝上搜索任何一个词条,可能得到的结果不会差太多;但是在美团这样与地理位置强相关的场景下就会完全不一样。比如我在武汉搜“黄鹤楼”,用户找的可能是景点门票,而在北京搜索“黄鹤楼”,用户找的很可能是一家饭店。

如何结合语言层信息和用户意图、状态来做语义匹配呢?

我们的思路是在短文本外引入部分O2O业务场景特征,融合到所设计的深度学习语义匹配框架中,通过点击/下单数据来指引语义匹配模型的优化方向,最终把训练出的点击相关性模型应用到搜索相关业务中。下图是针对美团场景设计的点击相似度框架ClickNet,是比较轻量级的模型,兼顾了效果和性能两方面,能很好地推广到线上应用。

                                          图1 clicknet框架

表示层

对Query和商家名分别用语义和业务特征表示,其中语义特征是核心,通过DNN/CNN/RNN/LSTM/GRU方法得到短文本的整体向量表示,另外会引入业务相关特征,比如用户或商家的相关信息,比如用户和商家距离、商家评价等,最终结合起来往上传。

学习层

通过多层全连接和非线性变化后,预测匹配得分,根据得分和Label来调整网络以学习出Query和商家名的点击匹配关系。

在该算法框架上要训练效果很好的语义模型,还需要根据场景做模型调优:首先,我们从训练语料做很多优化,比如考虑样本不均衡、样本重要度、位置Bias等方面问题。其次,在模型参数调优时,考虑不同的优化算法、网络大小层次、超参数的调整等问题。经过模型训练优化,我们的语义匹配模型已经在美团平台搜索、广告、酒店、旅游等召回和排序系统中上线,有效提升了访购率/收入/点击率等指标。

小结

深度学习应用在语义匹配上,需要针对业务场景设计合适的算法框架,此外,深度学习算法虽然减少了特征工程工作,但模型调优上难度会增加,因此可以从框架设计、业务语料处理、模型参数调优三方面综合起来考虑,实现一个效果和性能兼优的模型。

猜你喜欢

转载自blog.csdn.net/hzwaxx/article/details/83829742