DSSM - 双塔经典模型(微软)
- 《Learning Deep Structured Semantic Models for Web Search using Clickthrough Data》
- 论文由微软发表于 CIKM-2013。DSSM被广泛用于工业界的 召回/粗排 阶段。
模型结构
- 模型结构一目了然,非常简单,双塔结构:user侧一个塔,item一个塔,塔用的是MLP。底层各自有各自的embedding。两塔输出特征维度一致,最后做内积或cosine来计算相似度;损失函数用二分类交叉熵即可。
- dssm的缺点也很明显:无法做user和item的交叉/交互特征。(可参考:新浪微博张俊林的尝试SENet,如何在双塔模型中做user和item的交叉/交互)
DSSM - 召回阶段用法
- 现在工业界的推荐系统的召回阶段基本上多路召回,比如CF召回、CB召回、语义向量召回等,DSSM召回也是语义向量召回的一种。
dssm的离线训练(召回阶段)
大佬的名言:“如果精排是特征的艺术,那么召回就是样本的艺术(负样本为王)”。负样本的构造对于召回阶段来说非常非常重要!
- 召回阶段的正样本即用户点击过的item。那负样本的选择应该是面向的全量候选item中取,而不是从已曝光未点击的item中(避免样本选择偏差问题-SSB)。
- dssm的做法是,数据集里只有正样本item(即用户点击过的item);对于某个用户,而负样本的选取则是从数据集 (不包含这个用户点击过的item)中随机选则4个item作为负样本。【其他常见的负样本构造方法,请参阅我的博文:召回或粗排阶段 常见负样本构造方法】
dssm的在线推理(召回阶段)
dssm之所以能够在工业界这么流行,就是因为其双塔结构能够做到非常好的解耦,即训练好后user侧塔和item侧塔完全没关系,没有依赖关系。
可提前存好item embedding(间隔一定时间更新),user侧请求计算出user embedding后,就可以去item库里做ANN检索出top n个最相似的item。关于ANN检索技术比较有很多,比如:kd树、Annoy、HNSW等,Facebook开源了ANN库FAISS(这个我好像经常听说)。
所以,很明显了,dssm并不能做user和item的交叉/交互特征。
DSSM - 粗排阶段用法
和召回差不多用法,区别如下:
训练集不一样:因为粗排和精排的目标是一致的,所以负样本用的和精排一样的,都是曝光未点击的。
在线推理时候选集不一样:召回的候选集是全局物料池,而粗排时的是多路召回后的候选item集。
大佬的工程经验参考:
- 如果召回的dssm模型和粗排的dssm模型,在特征、样本都一样的情况下,则dssm召回的item大部分都会被粗排排出去,注意这里是大部分,从我们的实践中大概有一半的会被排出去,至于为什么没有全部都被排出去,原因应该是数据中存在multi-view,即使特征、样本、网络结构都一样,只要参数初始化是随机的,网络最终也会学到不同的view。
参考链接:https://blog.csdn.net/u012328159/article/details/123782735
DSSM - 双塔经典模型(微软)相关推荐
- 从DSSM语义匹配到Google的双塔深度模型召回和广告场景中的双塔模型思考
▼ 相关推荐 ▼ 1.基于DNN的推荐算法介绍 2.传统机器学习和前沿深度学习推荐模型演化关系 3.论文|AGREE-基于注意力机制的群组推荐(附代码) 4.论文|被"玩烂"了的协 ...
- DSSM双塔模型及pytorch实现
本文介绍用于商业兴趣建模的 DSSM 双塔模型.作为推荐领域中大火的双塔模型,因为效果不错并且对工业界十分友好,所以被各大厂广泛应用于推荐系统中. 通过构建 user 和 item 两个独立的子网络, ...
- 推荐系统-模型(一):召回模型【协同过滤类: ItemCF/UserCF】【Embedding类】【Dssm/双塔/word2vec】【图类召回算法 (Deepwalk、EGES)】
推荐系统-召回模型:[协同过滤类: ItemCF/UserCF][Embedding类][Dssm/双塔/word2vec][图类召回算法 (Deepwalk.EGES)]
- 召回模型:DSSM双塔模型
文章目录 DSSM(2013) DNN for Computing Semantic Features Word Hashing Youtube双塔模型(2019) Modeling Framewor ...
- 点击率预估的几个经典模型简介
点击率预估的几个经典模型简介 2016-02-22 00:32 点击率预估是大数据技术应用的最经典问题之一,在计算广告,推荐系统,金融征信等等很多领域拥有广泛的应用.本文不打算对这个话题做个全面 ...
- CNN的几种经典模型
本文主要介绍一下CNN的几种经典模型比较.之前自己也用过AlexNet和GoogleNet,网络上关于各种模型的介绍更是形形色色,自己就想着整理一下,以备自己以后查阅方便 LeNet5 先放一张图,我 ...
- 关于点击率模型,你知道这三点就够了 点击率预估的几个经典模型简介
关于点击率模型,你知道这三点就够了 德川 2015年11月24日 阅读 2091 快速评论 说到广告,或者运营,关注的最多的就是点击率了.我们经常能听说某某科学家通过建立更好的点击率预测模型,为公司带 ...
- 【推荐系统】DSSM双塔召回2
来自小红书,双塔的总结 目录 模型结构.训练方式 point-wise训练 pair-wise训练 list-wise训练 正负样本 线上服务 模型结构.训练方式 用户侧 用户离散特征:emb,男女这 ...
- PyTorch Hub发布获Yann LeCun强推!一行代码调用经典模型
作者 | Team PyTorch 译者 | Monanfei 责编 | 夕颜 出品 | AI科技大本营(ID: rgznai100) 导读:6月11日,Facebook PyTorch 团队推出了全 ...
最新文章
- 用C语言解“BCD解密”问题
- matlab 28m35,F28M35H52C
- shell for循环1到100_浅谈Linux下shell 编程的for循环常用的6种结构
- php7自定义异常处理,基于PHP7错误处理与异常处理方法(详解)
- win 10 企业版 激活
- 太帅了!钟楚曦这件老爹裤A到炸裂,一般人可穿不出这种范
- 浙大玉泉校区-武林门民航售票处-萧山机场
- rhombus(菱形)
- 从0开始学代码第五周!!!
- Android Studio设计APP实现与51单片机通过WIFI模块(ESP8266-01S)通讯控制LED灯亮灭的设计源码【详解】
- tensorflow+k-means聚类 简单实现猫狗图像分类
- 2023南京大学文博专业考研上岸经验
- linux(ubuntu16.04)下codeblock16.1 汉化
- 使用splinter+requests批量下载微信公众号中的音频文件
- 我研究了一个月阿里的岗位JD,不曾想.....
- 装了linux装不上win,在windos server 2008系统下装LINUX系统怎么装不上呢?
- linux内核支持多串口,基于华邦W90P710处理器的Linux内核应用及串口驱动的实现
- c语言中creat函数,C语言open和creat函数
- BQ4050 BMS 芯片配置与调试
- 2018数学建模美赛A题翻译