文本匹配-dssm

文章目录

论文链接地址

Learning Deep Structured Semantic Models for Web Search using Clickthrough Data

github

https://github.com/KATEhuang920909/deep_text_match

前言

传统文本相似性如BM25、tf-idf等,无法发现语义的query-doc相似对,因此DSSM为计算语义相似度提供了一种方法。

整体模型结构

DSSM模型结构如下:
文本匹配-dssm

输入层

在输入层用到了word hashing操作,这里用了n-grams方式进行hash,例如trigram将boy切分:#-b-o, b-o-y, o-y-#。这样可以将将50万个单词压缩到三万个,bigram可以压缩到1607个,但是会产生更多碰撞冲突,即不同单词会用同一个n-gram形式表示,paper中做了一些统计如下:
文本匹配-dssm
因此作者选择了tri-gram,然后one-hot。中文可以以字为最小单位,常用字为1.5万左右,因此可以直接one-hot。

表示层

表示层为多层DNN,隐藏层神经元大小均为300,最后一层为128,激活函数tanh。

匹配层

匹配层用余弦距离得出相似分数,然后接入softmax将query和doc之间的相似性转化为一个概率值,公式如下:
文本匹配-dssm文本匹配-dssm
其中, γ \gamma γ为平滑引子, D ∈ ( D + , D − ) D \in (D^+ ,D^-) D∈(D+,D−),D为整个样本空间,D+为正样本,D-为负样本。

训练阶段

极大似然估计
文本匹配-dssm
利用随机梯度下降(SGD)使模型收敛。

优缺点

DSSM用字向量,减少切词产生的误差,同时送入模型的编码方式为one-hot,最大程度上减少了基于词向量累加或者拼接这种方式所带来的误差,缺点就是未考虑语序上下文信息

模型改进

CDSSM:1.添加word-trigram,即构建大小为3的滑动窗口,然后拼接起来,维度大小为90K;2.在word-hash层后面接入卷积层和池化层,这样可以一定程度保留了上下文信息。整体结构如下:
文本匹配-dssm
图中feature map 为 300*1,采用max-pooling,然后接128维输出层。
优缺点: 上下文信息有效的保存,间隔较远的上下文信息无法保留

欢迎指正

上一篇:python之独热编码的实现


下一篇:css-:after伪样式