深度语义匹配是否影响索引系统的策略改进方向

推荐模型之双塔系列

双塔系列推荐模型主要包括DSSM、推荐领域中的双塔模型以及Google双塔模型,以下是对这些模型的详细介绍:DSSM模型简介:深度语义匹配模型(DSSM),是微软发表的一篇应用于NLP领域中计算语义相似度任务的文章。原理:获取用户搜索query和doc的曝光和点击日志数据,训练阶段分别用深度学习网络构建query侧和doc侧特征的embedding,线上预测时通过计算query和doc两个语义向量的cos距离来表示相似度。模型结构:Term Vector:输入词向量的维度取决于doc集合大小。Word Hashing:主要作用是减少输入向量的维度,基于字母n-gram方法。中文输入层和英文有很大差别,首先要考虑分词问题。如果要分词推荐jieba或者北大pkuseg,也可以不进行分词,直接使用单字作为最小粒度。全连接层:最下面的Term Vector到Word Hashing将词映射到3W维的向量空间中。然后分别经过两层300维度的隐藏层,最后统一输出128维度的向量。相似度计算:query和doc统一转换成了两个128维的语义向量,然后通过cos函数计算这两个向量的余弦相似度。相似度概率:相关性带入softmax计算后验概率,其中,γ是平滑因子,需要根据经验性设置。推荐领域中的双塔模型简介:分为user塔和item塔,是独立的两个子网络。将两个塔各自缓存,线上预测的时候只需要在内存中进行相似度运算即可。模型结构:朴素的DSSM双塔模型结构。Google双塔模型主要创新点:为解决全库数据量巨大难以高效快速训练的问题,文章采用采样的方式来处理实时流数据,同时提出一种新的采样概率算法,这个概率用于对损失函数进行优化。为降低采样偏差带来的影响,文章对batch softmax的损失函数进行了修正。模型结构:训练标签:点击并进行了完整观看的为1,只点击或者观看很少的认为是0。Video特征:视频ID、频道ID,转化为Embedding,对于一些多值特征(视频主题)采用Embedding加权平均。User特征:历史观看视频ID的平均Embedding(过去的一段时间)。共享Embedding:对于同一个ID的embedding在双塔模型的左侧和右侧是共享的。采样概率计算:该方法用于估计在流数据中,每个batch下item出现的概率,核心思想是假设某item连续两次被采样的平均间隔为B,那么该item的采样概率即为1/B。例如:一个item每50步出现一次,那么该item出现的概率p=1/50=0.02。A[h(y)]表示item y上次被采样到的时刻,B[h(y)]表示每多少步item y可以被采样一次。当第t步y被采样到时,利用迭代可更新A,B:α可以看作学习率。通过上式更新后,则在每个batch中item y出现的概率为1/B[h(y)]。损失函数:整个召回系统采用双塔结构,分别构建user侧和item侧的embedding,两个塔的输出就为各自的embedding向量,然后计算两个embedding内积后的结果,即s(x,y)=。由于是多分类问题,将模型的输出经过一个softmax函数之后得到具体对应的label概率,softmax函数如下:在计算损失函数时引入用户偏好权重ri(用户观看某视频的时长):当M数量很大时通常采用采样方式,因为本文针对实时流数据,所以对实时流中的数据采样出一个batch,训练的负样本即这个batch中的负样本,但是这样就会引入偏差,即热门视频有更大的可能成为负样本(过度惩罚),所以对上文中两个embedding向量计算得到的内积进行了修正,即s^c(x_i,y_i)=s(x_i,y_i)-log(p_j),pj表示视频j被随机选中到batch中的采样概率。其他优化点:归一化:经验表明,对embedding归一化效果更好u(x,θ) leftarrow u(x,θ)/ ||u(x,θ)||_2。内积结果除以一个超参数:s(x,y)=/τ,τ是一个可以调整的超参数,用来优化模型。原文链接:https://dl.acm.org/doi/abs/10.1145/3298689.3346996?download=true


nginx