- 这个论文主要是用来解决NLP领域语义相似度任务的。word hashing 直接把文本映射成了远低于 vocab size的向量中,然后输入DNN,输出得到一个128维的低维语义向量。
- Query和document的语义相似度就可以用这两个向量的cosine相似度来表示,进一步我们可以通过softmax对不同的document做排序。这就是最初的DSSM。
- 如果把document换成item或是广告,就演变成了一个推荐模型。其中 D1 是正样本,D2 ~ Dn 是负样本
推荐系统用来做召回时:
输入到底是什么:
- user 侧的输入:用户历史点击的 item id(或者是 item id avg embedding?),年龄性别等基础属性特征。实时点击/在浏览的 item 也作为输入?
- item 侧的输入:item 基础特征,item id?
样本的构建:
- 正样本:将用户最近点击,消费,转化等的数据(根据具体预估目标决定)采集后作为正样本;可能存在的问题:用户点击时doc排名越靠前越容易被点击,仅用点击来判断正负样本,产生的噪声较大,模型难以收敛
- 负样本:采样按照全局热度但未点击(Youtube负采样套路)作为负样本构造
- 一般正负样本一般是1:3/4/5/6(负样本的选择在 batch 内进行?in-batch softmax 损失函数?)
损失函数的选择:
我们(baidu:https://www.jiqizhixin.com/articles/2017-06-15-5)采用了 pair-wise Ranking Loss 来进行 SimNet 的训练。以网页搜索任务为例,假设搜索查询文本为 Q,相关的一篇文档为 D+,不相关的一篇文档为 D-,二者经过 SimNet 网络得到的和 Q 的匹配度得分分别为 S(Q,D+) 和 S(Q,D-),而训练的优化目标就是使得 S(Q,D+)>S(Q,D-)。实际中,我们一般采用 Max-Margin 的 Hinge Loss:max{0,margin-(S(Q,D+)-S(Q,D-))}。这种 loss 简洁、高效,还可以通过 margin 的不同设定,来调节模型得分的区分度。