推荐系统14- DSSM 文本相似度模型

DSSM Deep Structured Semantic Models

原理

通过 Query 和 Title 的海量的点击曝光日志,用 DNN 把 Query 和 Title 表达为低纬语义向量,并通过 cosine 距离来计算两个语义向量的距离,最终训练出语义相似度模型。

训练阶段分别用复杂的深度学习网络构建query侧特征的query embedding和doc侧特征的doc embedding,线上infer时通过计算两个语义向量的cos距离来表示语义相似度,最终获得语义相似模型。这个模型既可以获得语句的低维语义向量表达sentence embedding,还可以预测两句话的语义相似度。

推荐系统14- DSSM 文本相似度模型_第1张图片
image.png

结构

DSSM 从下往上可以分为三层结构:输入层、表示层、匹配层


推荐系统14- DSSM 文本相似度模型_第2张图片
image.png

输入层

英文 英文的输入层处理方式是通过word hashing,例如 boy 这个单词会被切为 #-b-o, b-o-y, o-y-#
word-trigram三个词一组,顺序滑动

中文 采用字向量(one-hot)作为输入,向量空间约为 1.5 万维。

表示层 bow ,cnn ,rnn

bow 词袋模型: 3层 nonlinear projection(wx+b) , 300维 ,300维,128维 最后输出128维
CNN-DSSM: 卷积层c pooling层v 语义层 h
举例:

卷积层:302个字向量  302*90000 -> 300*1     而卷积核是一个 3*90000 的权值矩阵
             而这样的卷积核有 300 个,所以形成了 300 个 300*1 的 feature map 矩阵

池化层:   每个 feature map 都取最大值,得到一个 300 维的向量。Max  
(3)全连接层
个 300 维的向量转化为一个 128 维的低维语义向量。全连接层采用 tanh 函数

匹配层

用doc,query 的128维做cosine相似度比较
残差会在表示层的 DNN 中反向传播,最终通过随机梯度下降(SGD)使模型收敛,得到各网络层的参数{Wi,bi}。

通过softmax 函数可以把Query 与正样本 Doc 的语义相似性转化为一个后验概率:

正负样本
输入 Qury 例如是一个用户特征,然后我们将推荐给用户一系列物品,假设是一系列房源,然后用户点击的房源就是有可能用户想要看的,其实这个也不一定是用户真正意图。那么用户点击就是正样本,反之其他的就是样本。

优缺点分析

优点:DSSM 用字向量作为输入既可以减少切词的依赖,又可以提高模型的泛化能力
缺点:上文提到 DSSM 采用词袋模型(BOW),因此丧失了语序信息和上下文信息

你可能感兴趣的:(推荐系统14- DSSM 文本相似度模型)