DSSM文本匹配在语义召回中的应用

DSSM双塔模型在2013年被微软在论文Learning Deep Structured Semantic Models for Web Search using Clickthrough Data中提出,其应用途径由最初的文本匹配和搜索逐渐推广到了推荐搜索、计算广告、信息流推荐以及机器翻译等等。

一、DSSM介绍

DSSM在搜索推荐中的原理也比较简单:

  • 1、获取搜索引擎中的用户搜索query和曝光doc数据,
  • 2、训练过程中,首先分别构建query和doc的embedding,
  • 3、其次用深度学习复杂网络构建模型的语义表示表示层,
  • 4、模型的输出一般是计算query和doc的cos距离来计算语言相似度,最终获得语义模型,
  • 4、线上infer阶段,首先缓存doc侧所有的embedding,然后实时query通过query测计算embedding,再与计算好的doc的embedding 计算相似度召回。


简化论文中的模型结构,我们可以把DSSM模型总共分成三层:输入层,表示层和匹配层,分别对应到上面的 2,3,4 三点。
根据表示层的不同,近年发展出了一系列DNN-DSSM,LSTM—DSSM等等,当然你也可以使用其他诸如CNN和Transformer等作为表示层网络。
在计算广告领域,query层往往还包括了用户的其他特征,属于另一种模型的变异,可以参见1

二、DSSM实践

DSSM模型结构比较简单,实现上常常用正负样本分类的方式训练模型,通常有二分类和多分类的方式,需要注意的是采用多分类时,doc侧网络需要公用网络层。

    # 定义网络层
    embedding_layer = Embedding(embedding_look_up, 128, input_length=item_len_query,
                                embeddings_initializer='random_uniform')

    # query tower
    input_query = Input(shape=(pad,), name='input_query')
    embedding_query = embedding_layer(input_query)
    inception_query = TextCNN()(embedding_query)
    # item tower
    input_item = Input(shape=(item_len_query,), name="item_input")
    embedding_item = embedding_layer(input_item)
    inception_item = TextCNN()(embedding_item)
    # cosine sore
    cosine_scores = Lambda(cosine_distance, output_shape=cos_dist_output_shape)([inception_query, inception_item])

    prob = Dense(1, activation='sigmoid')(cosine_scores)
    model = Model(inputs=[input_query, input_item], outputs=prob)
    model.compile(
        optimizer="adam",
        loss="binary_crossentropy",
        metrics=['accuracy'])
    model.summary()

笔者也尝试过基于Transformer的多塔模型,限于篇幅,代码就不提供了,结构如下,其效果明显优于基于TextCNN-DSSM模型。

三、DSSM的优缺点

3.1、优点

  • 相比于LSA、LDA、Autoencoder等方法等语义模型存在字典爆炸问题,DSSM在计算上花销更少
  • 使用有监督的方法,优化语义embedding的映射问题
  • 省去大量的人工特征

3.2、缺点

  • 采用词袋模型时没有考虑词的位置关系,对语义理解存在损失。(不过如果采用LSTM或者Transformer作为网络结构可以解决这个问题)
  • 采用弱监督和端到端的这种方式,模型预测结果不可控。

四、总结

对于电商商品召回来说,DSSM不可以不说是一个非常快速有效有方法,Google、百度和阿里等都有类似的实践。若需要更精确的召回,还可以在模型输入层加上其他特征,比如商品的品牌,类别等,甚至可以用上attention,参见苏宁的实践方案2

原文来自小白的便利贴

posted @ 2020-06-14 20:19  peacocks  阅读(1263)  评论(0编辑  收藏  举报