【深度学习算法原理】Deep Structured Semantic Models(DSSM)
1. 概述
深度语义模型(Deep Structured Sematic models, DSSM)是在2013年由微软的研究人员提出,主要解决的是在搜索的过程中,对于传统的依靠关键词匹配的方法的弊端(语义上的相似)提出的潜在语义模型。DSSM算法在实际工作中也被证明是卓有成效的算法,不仅在搜索中得到广泛的应用,同时也被使用在推荐系统的召回中。
2. 算法的基本思想
2.1. DSSM的网络结构
DSSM算法的网络结构如下所示:
从上述的网络结构图中可以看出,DSSM的核心思想是将不同的对象映射到统一的语义空间中,并在该空间中计算对象之间的相似度。 在其具体的计算过程包括两个方面:第一,将query和documents映射到同一个低维的向量空间中;第二,利用余弦计算相似性。
首先将query和documents分别表示成向量xQx_QxQ和xDx_DxD,在参考文献的论文中,作者针对向量的构建过程给出了一些具体的建议,针对具体的任务可以有选择的采用。得到query和documents的对应向量后,通过深层神经网络将其表示为同一个空间中的向量yQy_QyQ和yDy_DyD,即所谓的语义特征(Semantic feature)。具体的计算过程如下所示:
li=f(Wili−1+bi)l_i=f\left ( W_il_{i-1}+b_i \right )li=f(Wili−1+bi)
其中,WiW_iWi是第lil_ili层网络的权重,bib_ibi是第lil_ili层网络的偏置。fff是第lil_ili层网络的激活函数。
在得到query和documents的语义特征后,通过cosine计算query和documents之间的相似性:
R(Q,D)=cosine(yQ,yD)=yQTyD∥yQ∥∥yD∥R\left ( Q,D \right )=cosine\left ( y_Q,y_D \right )=\frac{y_Q^Ty_D}{\left \| y_Q \right \|\left \| y_D \right \|}R(Q,D)=cosine(yQ,yD)=∥yQ∥∥yD∥yQTyD
2.2. DSSM模型的损失函数
假设给定的query为QQQ,document为DDD,那么相似的概率P(D∣Q)P\left ( D\mid Q \right )P(D∣Q)为:
P(D∣Q)=exp(γR(Q,D))∑D′∈Dexp(γR(Q,D′))P\left ( D\mid Q \right )=\frac{exp\left ( \gamma R\left ( Q,D \right ) \right )}{\sum _{{D}'\in \mathbf{D}}exp\left ( \gamma R\left ( Q,{D}' \right ) \right )}P(D∣Q)=∑D′∈Dexp(γR(Q,D′))exp(γR(Q,D))
其中γ\gammaγ为平滑系数。在模型训练的过程中,我们希望使得相似的文档的概率较大,即对于正样本(Q,D+)\left ( Q,D^+ \right )(Q,D+),使得其概率最大,通过最大似然,可以得到最终的损失函数:
L(Λ)=−log∏(Q,D+)P(D+∣Q)L\left ( \Lambda \right )=-log\prod _{\left ( Q,D^+ \right )}P\left ( D^+\mid Q \right )L(Λ)=−log(Q,D+)∏P(D+∣Q)
以上的损失函数是原始论文中提及的损失函数,同样,可以采用其他的损失函数形式,如直接使用相似性或者采用Triplet loss。
2.3. DSSM模型的训练
在训练的过程中,样本的构建也至关重要,对于QQQ,选择一个正样本D+D^+D+以及4个负样本{Dj−;j=1,⋯,4}\left \{ D_j^-;j=1,\cdots,4 \right \}{Dj−;j=1,⋯,4},除了样本选择之外,需要计算损失函数的梯度,以便计算除网络中的参数WiW_iWi和bib_ibi。
参考文献
- Learning deep structured semantic models for web search using clickthrough data
【深度学习算法原理】Deep Structured Semantic Models(DSSM)相关推荐
- DSSMs: Deep Structured Semantic Models
Attention! 我的Dr.Sure项目正式上线了,主旨在分享学习Tensorflow以及DeepLearning中的一些想法.期间随时更新我的论文心得以及想法. Github地址:https:/ ...
- 论文翻译1-----DSSM:Deep Structured Semantic Models
说明: 论文全部名称:Learning Deep Structured Semantic Models for Web Search using Clickthrough Data 论文中文全称:使用 ...
- 推荐系统(十七)双塔模型:微软DSSM模型(Deep Structured Semantic Models)
推荐系统(十七)双塔模型:微软DSSM模型(Deep Structured Semantic Models) 推荐系统系列博客: 推荐系统(一)推荐系统整体概览 推荐系统(二)GBDT+LR模型 推荐 ...
- 深度学习算法原理_用于对象检测的深度学习算法的基本原理
深度学习算法原理 You just got a new drone and you want it to be super smart! Maybe it should detect whether ...
- DSSM(DEEP STRUCTURED SEMANTIC MODELS)
Huang, Po-Sen, et al. "Learning deep structured semantic models for web search using clickthrou ...
- TensorFlow深度学习算法原理与编程实战 人工智能机器学习技术丛书
作者:蒋子阳 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2019-01-01 TensorFlow深度学习算法原理与编程实战 人工智能机器学习技术丛书 ISBN:97875170682 ...
- Python大数据综合应用 :零基础入门机器学习、深度学习算法原理与案例
机器学习.深度学习算法原理与案例实现暨Python大数据综合应用高级研修班 一.课程简介 课程强调动手操作:内容以代码落地为主,以理论讲解为根,以公式推导为辅.共4天8节,讲解机器学习和深度学习的模型 ...
- Learning Deep Structured Semantic Models for Web Search using Clickthrough Data (DSSM)
主要研究问题: 给定一个查询(query)和一组文档(document),返回一个排序(ranking),系统根据查询所对应文档的契合度高低排序. 论文主要结构: 一.Abstract 1.基于关键词 ...
- 深度学习算法原理——LSTM
1. 概述 在循环神经网络RNN一文中提及到了循环神经网络RNN存在长距离依赖的问题,长短期记忆(Long Short-Term Memory,LSTM)网络便是为了解决RNN中存在的梯度爆炸的问题而 ...
- ZAO 背后的深度学习算法原理浅析
ZAO最近火爆,成为现象级产品之一,引起大家的广泛关注,ATA上面已经有同学做了一些说明分析,链接如下: https://www.atatech.org/articles/148375?spm=ata ...
最新文章
- 阿里巴巴Java开发规约的IDEA插件使用
- cuda win10安装
- linux cpu占用100原因查询,如何根据查询异常时间节点和连接进而确定CPU使用率100%的原因...
- HIN2Vec:异质信息网络中的表示学习 | PaperDaily #18
- QT学习:容器类及QVariant类
- bzoj2049 [Sdoi2008]Cave 洞穴勘测——LCT
- Nginx+Tomcat动静态资源分离
- 推荐文章:机器学习:“一文读懂机器学习,大数据/自然语言处理/算法全有了...
- JavaScript学习笔记(四)--复杂数据类型Object
- Dubbo消费者服务的订阅
- PyTorch 成程序员“新宠”,TensorFlow 风光不再?
- python编程语言-python编程语言基础知识总结
- 蓝桥杯2017年第八届C/C++省赛C组第三题-算式900
- SSH框架 openSessionInView的配置
- 编程基本功:做自解释的测试文档
- 7.10 添加房间参数
- mysql frm 修复_使用mysqlfrm恢复frm表结构
- ASP.NET Web API实现简单的文件下载与上传
- Gtest 测试指导 入门基础(A)
- 安卓Android sqllite实现保存数据和读数据
热门文章
- 排序算法伪代码以及python实现——插入,归并,快速,堆,计数
- Recovery流程梳理
- 计算机原理加法指令流程图,加法器电路设计方案汇总(八款模拟电路设计原理详解)...
- C语言超级搞笑的代码,冷笑话我们程序员也会讲的啊!
- 关于传递函数的频率响应和低通滤波器
- Ping其他电脑ping不通的解决方法
- cups ipp oracle,架设Linux打印服务器通过Web界面CUPS管理其他电脑访问CUPS web管理界面IPP协议共享本机打印机...
- 形容人的内核是什么意思_cpu核数是什么意思
- python爬取京东商品信息_使用selenium爬取京东商品信息
- TCP序列号(Sequence Number)和确认号(Acknowledgment Number)