前言
在推荐系统中,主要可以分为两个步骤:召回和排序。召回负责从全数据中返回用户的兴趣候选集,排序负责对候选集进行兴趣程度排序,从而返回Top K的推荐结果。
向量化召回
向量化召回是指对用户和物品分别通过复杂的映射得到它们的特征表征向量,这些向量是在同一个特征空间内的,所以可以通过内积的方式得到它们的匹配程度。向量化召回关注如何得到用户和物品的向量表示以及如何利用向量内积从大量数据中反馈推荐结果。对于用户与物品的向量表示,可以通过复杂的网络结果对用户和物品的行为及属性信息进行映射得到。而对于利用内积从大量数据中反馈推荐结果,可以使用局部敏感哈希方法,通过局部敏感哈希方法反馈可能和用户向量相似的物品向量,这些相似向量往往内积也会较大。
深度树匹配
向量化召回可以很好地从全数据中完成召回任务,但是这需要满足相似度可以通过向量内积的形式得到的条件。深度树同样可以获得从全数据中完成召回任务的任务,同时又不限制相似度的度量需要使用向量内积,可以各种各样的模型。首先将所有商品排列在叶子节点,然后按照一定的规则对商品进行局部聚类,这样不断往中间层生成节点,直到生成一个根节点,完成一棵树的构建。中间层的节点可以看作是对商品领域的一个高度聚类,越高层的越抽象,粒度越粗,越底层的越具体,粒度越细。可以将深度树的每层看作一个独立的模型,对于每个样本,都可以从根节点沿着路径到达商品,将路径上经过的节点标记为1,同层的其他节点标记为0,得到深度树每层的数据样本,输入到每层的模型中进行训练,得到学习好的每层模型。每层模型之间是相互独立的,只负责各自拟合各自的数据。在推荐时,每层都可以输出一个推荐结果,可以将每层的输出看作一个分布,然后自顶向下地采样直到到达叶子节点,完成一次商品推荐。现在总结一下深度树匹配的工作流程
(1) 基于某种规则,比如最小化相关商品对在树上的距离,利用训练数据集构造一棵树。
(2) 对于树的每一层的模型,利用训练数据集得到的每层训练数据进行训练。
(3) 在推荐时,使用BeamSearch自顶向下每层都能得到一个推荐分布结果,从分布中采样得到往哪一个子节点走,直到到达叶子节点,完成一次推荐。
深度树匹配比起向量化召回的优势是深度树可以包含向量化召回的同时还能使用更先进的模型,关于向量化召回和深度树匹配模型更详细的内容可以看看这篇博客:https://blog.csdn.net/leadai/article/details/89391366