论文笔记《Learning deep structured semantic models for web search using clickthrough data》

链接:Learning deep structured semantic models for web search using clickthrough data

一、原理:

使用DNN将序列和文本融合到共同的低维空间,并使用余弦相似度计算两者的距离;

为了处理常见任务中的大规模语料,采用了word hashing

二、模型架构

在这里插入图片描述

X X X为输入层, Y Y Y为输出层, l 1 , l 2 , l 3 l1, l2, l3 l1,l2,l3为隐藏层

l 1 = W 1 X l1 = W_1X l1=W1X

l i = f ( W i l i − 1 + b i ) , i = 2 , . . . , N − 1 l_i = f(W_il_{i-1} + b_i), i=2,...,N-1 li=f(Wili1+bi),i=2,...,N1

y = f ( W N l N − 1 + b N ) y = f(W_Nl_{N-1} + b_N) y=f(WNlN1+bN)

激活函数 t a n h tanh tanh f ( x ) = 1 − e − 2 x 1 + e − 2 x f(x) = \frac{1 - e^{-2x}}{1 + e^{-2x}} f(x)=1+e2x1e2x,放置在输出层和隐藏层 l i , i = 2 , . . . , N − 1 l_i, i=2,...,N-1 li,i=2,...,N1

余弦相似度计算: R ( Q , D ) = c o s i n e ( y Q , y D ) = y Q T y D ∣ ∣ y Q ∣ ∣ ∣ ∣ y D ∣ ∣ R(Q, D) = cosine(y_Q, y_D) = \frac{y_Q^T y_D}{||{y_Q}||||y_D||} R(Q,D)=cosine(yQ,yD)=∣∣yQ∣∣∣∣yD∣∣yQTyD

1. word hashing

目的:减少词袋模型 词向量的维度,基于字母 n − g r a m n-gram ngram

示例: #good# 当n=3, 可得到 #go, goo, ood, od#

与one-hot相比,word hashing可以用更低维度的向量去表示文本

2. DSSM模型训练

通过softmax 函数可以把query 与样本 doc 的语义相似性转化为一个后验概率
在这里插入图片描述

其中 \gamma 是一个softmax函数的平滑因子,
D D D表示被排序的候选文档集。

理想状态下, D D D应该包含所有可能的文档;

在实际中,每一个 ( q u e r y , c l i c k e d − d o c u m e n t ) (query, clicked-document) (query,clickeddocument)对,用 ( Q , D + ) (Q, D^+) (Q,D+)表示,其中Q表示序列, D + D^+ D+是被点击的文档;

假设 D D D包含 D + D^+ D+和4个随机挑选的未被点击过的文档(使用{ D j − ; j = 1 , . . . , 4 D^-_j; j=1,...,4 Dj;j=1,...,4}表示)

最小化损失函数:img

其中 \Lambda 表示神经网络的参数 w i , b i {w_i, b_i} wi,bi的集合

3.模型细节

l 1 l1 l1: word hashing(trigrams), 30k nodes,

l 2 l2 l2 l 3 l3 l3: 300 hidden nodes

Y Y Y: 128 nodes

word hashing 基于一个固定的投影矩阵
similarity 基于128维度的输出层计算

权重初始化:uniform distribution

​ range: [ − 6 / f a n i n + f a n o u t , 6 / f a n i n + f a n o u t ] [ -\sqrt{6/fanin + fanout}, \sqrt{6/fanin + fanout} ] [6/fanin+fanout ,6/fanin+fanout ]

f a i n i n 是输入层的单元数, f a n o u t 是输出层的单元数 fainin是输入层的单元数,fanout是输出层的单元数 fainin是输入层的单元数,fanout是输出层的单元数

优化器:SGD

min-batch = 1024

train epoches = 20

模型实现

https://github.com/Fanynwork/NLPmodels
结果没有使用cos计算,换成了分类器,文本匹配可以当作是一个二分类问题。
有过拟合情况,添加了norm和dropout层,但效果不太好
正确率在68%-69%之间,没有使用预训练词向量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值