DSSM学习笔记

1、理论

PaperWeekly:检索式问答系统的语义匹配模型:https://zhuanlan.zhihu.com/p/26879507

文本匹配开山之作-DSSM论文笔记及源码阅读 https://zhuanlan.zhihu.com/p/141226054

DSSM

DSSM也是Representation-Based模型,其中Query端 Encoder 和 Doc端 Encoder都是使用 MLP实现,最后Score计算使用的是cosine similarity后续模型的改进很多都是使用更好的Encoder结构

DSSM 模型原理简述如下:  

  • 先把 query 和 document 转换成 BOW 向量形式,然后通过 word hashing 变换做降维得到相对低维的向量(备注:除了降维,word hashing 还可以很大程度上解决单词形态和 OOV 对匹配效果的影响)。
  • 喂给 MLP 网络,输出层对应的低维向量就是 query 和 document 的语义向量(假定为 Q 和 D)。
  • 计算(D, Q)的 cosine similarity 后,用 softmax 做归一化得到的概率值是整个模型的最终输出,该值作为监督信号进行有监督训练。  

——————————————

①输入层:把文本映射到一个向量空间里并输入到 DNN 中,这里英文和中文的处理方式很大不同。

英文的出入层处理方式是通过 word hashing 方式。通常是用 letter-trigrams 来切分单词(3个字母为一组,#表示开始和结束符)。例如 boy 这个单词,会被切为 bo,boy,oy。之所以选择3个字母的切分粒度,是综合考虑了向量空间和单词冲突。

word hashing 的好处有两个:

  • 压缩空间:50万个单词的 one-hot 向量空间可以通过 letter-trigrams 压缩为一个3万维的向量空间。

  • 增强泛化能力:三个字母的表达往往能代表英文中的前缀和后缀,而前后缀往往具有通用的语义。

中文的处理方式是不做分词处理,直接以单字作为最小粒度。常用单字数量为1.5万左右,而双字的话大约到百万级了,所以这里出于向量空间的考虑,采用单字向量即(one-hot)作为输入,向量空间约1.5万维左右。

②表示层:DSSM 的表示层采用 BOW(bag of words)的方式,相当于把字向量的位置信息抛弃了,整个句子的词都放在了一个袋子里,不分先后顺序。

这样做会损失一定信息,后续的 CNN-DSSM和LSTM-DSSM 可以在一定程度上解决这个问题。紧接着是一个含有多个隐藏层的 DNN。

③匹配层

query 和 doc 的语义相似性可以用这两个语义向量(128维)的 cosine 距离,即余弦相似度来表示。  通过 softmax 函数可以把 query 与证样本 doc 的语义相似性转化为一个后验概率。

通过挖掘搜索点击日志构造 query 和对应的正负 document 样本(实验实际使用的是 document 的 title),输入 DSSM 模型进行训练。文中与 TF-IDF、BM25、WTM、LSA、PLSA 等进行了对比实验,NDCG@N 指标表明,DSSM 模型在语义匹配方面效果当时达到了 SOTA。

————————

DSSM(Deep Structured Semantic Models)深度语义匹配模型,结构上一般分为:输入层、表示层、匹配层。DSSM通常把query和多个doc表征为相应的语义向量,并通过计算余弦相似度来衡量query和doc的距离,最终训练出语义相似度模型,该模型可以用来很好的预测两个句子的语义相似度。  

在训练DSSM模型时,由于知识库中每个标准问题都有若干个扩展问题,为了让模型学习到它们具有相同的语义,我们通过下面的方法构建训练集:

  • 训练:从知识库随机抽取一个query(标准问题或扩展问题),使用这个query对应的标准问题作为正例,从其余的标准问题中随机抽取N条作为负例,通过训练,模型可以很好地表示这一类问题的语义。
  • 在线推理:使用用户问题作为query,所有的标准问题作为doc,为保证推理性能我们事先对每个doc做特征表征得到相应向量并保存在计算图里,线上我们只需用BiLSTM对query进行特征表征得到其对应的向量,然后与事先保存好的doc对应的向量计算余弦相似度,最终取相似度最高的topn doc做为query的候选意图做为意图识别模块的输出。

表示型和交互型

意图识别是判断用户问题可能属于哪些标准问题,为了精确识别用户的意图,我们既可以对用户意图进行分类又可以进行匹配。但由于用户意图种类很多,单纯的分类任务效果要逊于匹配任务。

深度文本匹配任务有两类:

  • representation-based模型是将文本转化为句向量后,再计算句向量间的相似度,但它容易产生语义偏移的现象。
  • interaction-based模型的核心思想是获取交叉矩阵,进行更细粒度的匹配,它可以解决语义偏移的现象。

表示型和交互型

  • 表示型模型更侧重对表示层的构建,它会在表示层将文本转换成唯一的一个整体表示向量。典型的网络结构有 DSSM、CDSMM 和 ARC-I。这种模型的核心问题是得到的句子表示失去语义焦点,容易发生语义偏移,词的上下文重要性难以衡量。
  • 交互型模型(匹配矩阵:对齐矩阵/相似度矩阵):摒弃后匹配的思路,假设全局的匹配度依赖于局部的匹配度,在输入层就进行词语间的先匹配,并将匹配的结果作为灰度图进行后续的建模。典型的网络结构有 ARC-II、DeepMatch 和 MatchPyramid(中科院)。它的优势是可以很好的把握语义焦点,对上下文重要性合理建模。由于模型效果显著,业界都在逐渐尝试交互型的方法。
  • 将文本匹配模型的框架分为三个层,分别是 Embedding 层,Encoding 层(在交互型模型里,该层还包含匹配层), Prediction 层如下所示:

preview

2、项目

DSSM,representation based

q - q 匹配,输出匹配成功的问题对应的answer

 

 

召回策略:热度,LBS,user tag,itemcf,频繁模式挖掘,二部图挖掘,embedding(word2vec、fasttext、bert),deep match(如DSSM、双塔模型)

排序策略,learning to rank 流程三大模式(pointwise、pairwise、listwise),主要是特征工程和CTR模型预估;

  1. 常见的特征挖掘(user、item、context,以及相互交叉),
  2. CTR预估(lr、gbdt、fm、ffm、mlp、widedeep、dcn、deepfm)

qa_match:基于深度学习的层级问答匹配工具 https://www.ctolib.com/topics-143486.html

参考文献

搜索相关性算法在 DiDi Food 中的搜索

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值