文本匹配专题-2模型DSSM:Learning Deep Structured Semantic Models for Web Search using Clickthrough Data

目录

论文简介

发表信息

标题:利用点击数据学习网页搜索中深层结构化语义模型
作者:Po-Sen Huang、Xiaodong He 等
单位:伊利诺伊大学厄巴纳-香槟分校、微软研究院
会议:CIKM
时间:2013

研究对象

作者解决的是搜索领域的文本检索和候选文章的排序问题,即给定文本A,对文本BCD等进行相关性排序,将得分高的排序在前面。实质上还是文本匹配问题。DSSM之前,解决方法多为传统机器学习(LSA,LDA等),DSSM作为文本匹配的神经网络方法开山之作,从这之后才出现大量深度学习方法以及工业应用。

任务举例:

输入1为查询语句Q,如:“文本匹配”
输入2为候选文档集D,如:[“文本匹配算法”,“目标检测”,“傅里叶变换”, “爱因斯坦”,“电动牙刷”]
模型输出为Q与D的每个文档匹配得分:[0.8,0.07,0.04,0.06,0.03]

研究背景

  • 潜在语义分析模型(如LSA)本身的约束性,模型质量已达瓶颈。

  • 互联网极速发展带来巨量的点击记录,LSA等更面临着模型存储有限的挑战。

  • 词语不采用one-hot形式,而是映射至向量空间给模型的设计提供了新的思路。

研究意义

• 使得文本匹配进入了深度学习时代(引用量:964)

• 为解决实际工业信息检索问题提供了新的解决策略

详细解读

在这里插入图片描述
所有算法模型都是一步步数学计算过程,都可以用数学公式进行准确的描述,本文也将模型进行严格准确的数学公式化,方便看清具体计算步骤和计算内容。

如上图,模型一共分为6个计算步骤或者说函数,下面我们来一一列举每个步骤的具体输入输出和计算过程。

步骤1-Term Vector词向量

x = f 0 ( x 0 ) x= f_0(x_0) x=f0(x0)

  • $x_0为函数输入,为文本,如查询Q或待匹配文档D
  • $x为函数输出,为数学向量
  • $f_0为函数,该函数将文本转为one-hot向量,向量维度为1行n列,n为词汇表规模。向量中元素值为0或者1,为1表示该句子含有词汇表中对应位置的词,为0表示不含有。

计算举例

x0:我 在 深圳
Q:我 在 中国 深圳
D:[ 我 在 上海,北京 天安门]
则词汇表为:[我,在,深圳,中国,上海,北京,天安门]
x=f0(x0):[1,1,1,0,0,0,0]

步骤2-Word Hashing词哈希

l 1 = f 1 ( x ) = W 1 x l_1= f_1(x)=W_1x l1=f1(x)=W1x

  • $x为步骤1计算结果,即ont-hot向量
  • $W_1为转换矩阵,将one-hot转为更稠密的词哈希向量,即降维。
  • $f_1为词哈希函数。

目的:将one-hot这种稀疏编码向量转换为更为稠密的编码向量。
方法:将大小为n的窗口在词上进行移动切分,移动步长为1,即移动一步,切分出一个token,直到窗口走到词最后位置

$f_1计算举例

输入单词:text
固定窗口:n=3
第一步,单词前后加#号:#text#
第二步,设置步长为1,大小为n的滑动窗口,记录每次滑过的单词切片
切分结果: #te,tex,ext,xt# (所有切分结果去重后就是词汇表)
词汇表:vocabulary=[ #te,tex,ext,xt#, [UNK],[PAD]]
最后,text将表示为vocabulary维度大小的向量,[1,1,1,1,0,0]
如输入teach,结果为[1,0,0,0,4,0]

哈希冲突

单词:ababba 和 abbaba Letter 3-gram结果均为:[#ab, aba, bab, abb, bba, ba#]转换为向量,因为词表与顺序无关,所以向量将是一样的

实质:词哈希等价于线性映射

优势:使得形态上相近的单词有相近的表达有很强的鲁棒性,大幅度缓解OOV问题。

一句文本:text match
one-hot编码:s=[0,0,…,0,1,0,…,0,1,0,…,0,0]
假设词表大小五十万,则 len(s)=500,000 且有求和sum(s)=2
文本的letter 3-gram切片集合:{#te,tex,ext,xt#,#ma,#mat,atc,tch,ch#}
切片集合也可看做one-hot编码:sg=[0,1,1,1,0,1,1,0,0,1,0,0,0,0]
假设3-gram切片数目统计为30612,则len(sg)=30612 且有 sum(sg)=9
每个3-gram切片均有唯一的向量表达,全部切片的向量表达累加后作为文本句子级别的特征向量。

步骤3-Multi-layer nonlinear projection多层非线性映射

l 2 = f ( l 1 ) = t a n h ( W 2 l 1 + b 2 ) l_2= f(l_1)=tanh(W_2l_1+b_2) l2=f(l1)=tanh(W2l1+b2)
l 3 = f ( l 2 ) = t a n h ( W 3 l 2 + b 3 ) l_3= f(l_2)=tanh(W_3l_2+b_3) l3=f(l2)=tanh(W3l2+b3)
y = f ( l 3 ) = t a n h ( W 4 l 3 + b 4 ) y= f(l_3)=tanh(W_4l_3+b_4) y=f(l3)=tanh(W4l3+b4)
f ( x ) = 1 − e − 2 x 1 + e − 2 x f(x) =\frac{1-e^{-2x}}{1+e^{-2x}} f(x)=1+e2x1e2x

  • $l_1 为步骤2输出,即词哈希向量
  • W i 为 矩 阵 , W_i为矩阵, Wib_i为向量,都是模型待学习参数,即变量
  • $f 为激活函数,本文使用tanh。
  • y为最终输出,为编码后的特征向量。

这些计算就是典型的全连接神经网络,没有什么特殊的地方。这个步骤也被称为编码器,后续很多新模型都是在设计不同的编码器,以抽取更丰富和准确的语义信息。

步骤4-Relevance measured计算相关度

R ( Q , D ) = R ( y Q , y D ) = c o s i n e ( y Q , y D ) = y Q T y D ∣ ∣ y Q ∣ ∣ ∣ ∣ y D R(Q,D)= R(y_Q,y_D)=cosine(y_Q,y_D)=\frac{y_Q^Ty_D}{||y_Q||||y_D} R(Q,D)=R(yQ,yD)=cosine(yQ,yD)=yQyDyQTyD

  • y Q , y_Q, yQ,y_D 为步骤3输出,即编码后的特征向量
  • R计算实质为cos距离,为一个0-1的小数,代表两个向量的相似程度

步骤5-Posterior probability computer计算后验概率

在这里插入图片描述

  • P为softmax,分母为文档集中每个文档D’与Q的相似度指数和,分母为当前文档D与Q的加权指数。计算结果为归一化后的0-1的概率。

模型训练

loss function损失函数

在这里插入图片描述

  • D+为集合中与Q匹配那个文档,目标是使该文档概率最大,加上负号后为最小
  • 本损失函数为最大似然估计,就是预测结果概率的连乘。

实验代码

待完善

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值