论文阅读:DSSM

作者: filterc | 来源:发表于2020-03-14 22:46 被阅读0次

    论文地址:https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/cikm2013_DSSM_fullversion.pdf

    DSSM的全称是Deep Semantic Similarity Model

    要点:

    • 目的是进行语义相似度建模
    • 输入的是一对语料 (X, Y)(在问答场景是query-query,在搜索场景是query-doc等)
    • 基本思路是通过深度网络分别提取输入语义表征向量,通过计算向量距离来计算相似度(如cos)
    • 训练的数据需要有正负例,需要知道哪些 (X, Y) 是语义相似的,哪些是不相似的。负例也可以通过一些方法构造
    • 训练的目标是最大化让正例之间的距离减负例之间距离
    • 模型训练完成后,可以预先计算好文本的语义表征向量,比如问答场景里,所有候选集的query语义向量都可以预先算好,线上只需要计算用户输入query的向量,然后计算向量距离就可以了
    • 词序列的第一步表征使用了字符trigram,但这个方法不能用到中文中


      image.png

    1、特征表征部分

    Word hashing layer

    这一步是为了将不等长的输入词组转成等长的向量表示,常用的方法有很多种,比如最简单的按照词ngram做one-hot,或者按照词embedding做求和或平均。

    DSSM用了字符的ngram,比如cat这个词的trigram就变成(词的开头和结尾用#表示)

    cat → #cat# → #-c-a, c-a-t, a-t-#

    这么做有以下几个好处

    • 在英语中,只有50K 字符的trigrams,可以大大降低输入向量的维度
    • 捕获sub-word的特征,比如英语中的前缀、后缀、词根等都有相似的语义
    • 选择trigram而不是bigram,或者更大的ngram是为了在候选集和冲突率之间折中

    对于50万的单词表,bigram的候选集是1607,但是冲突率是0.2%;trigram的候选集是3万,冲突率只有0.004%

    2、深度部分

    中间是多层的深度网络,下面是论文里面的结构


    image.png

    3、目标函数部分

    image.png

    4、样本选取和指标评估

    论文中数据集使用了搜索点击日志,query和点击的doc作为一组正样本,曝光不点击的doc作为负样本。

    使用NDCG@k(1、3、10)评估的模型的效果。

    附:

    NDCG的计算方法

    NDCG Normalized Discounted cumulative gain是一种常用的评价搜索或者推荐结果的指标,直觉的想法是相关度越高的项出现在越靠前的位置,指标的得分应该越高。

    每一个候选项都有相关度和顺序两个变量,我们来一步一步拆解

    (1)CG就是候选项相关度的求和,这就不考虑顺序的影响


    image.png

    (2)DCG对不同位置上的相关度进行加权,位置i的权重是1/log2(i+1)


    image.png

    还有另一种算法,可以强化相关度的作用


    image.png

    (3)由于不同搜索词对应p可能不同,需要增加归一化

    归一化使用理想情况下最大的DCG,也就是完全按照相关度从大到小排序后计算一次DCG。

    参考:

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

    https://www.cnblogs.com/by-dream/p/9403984.html

    相关文章

      网友评论

        本文标题:论文阅读:DSSM

        本文链接:https://www.haomeiwen.com/subject/zdooshtx.html