美文网首页
序列召回

序列召回

作者: 阿白coding的神 | 来源:发表于2022-11-19 00:52 被阅读0次

    1. 推荐基础

    可以看到,我们通过不同阶段的算法将这一过程切分成了不同的阶段,这张图上我们将推荐算法分为了三个阶段

    召回:待计算的候选集合大、计算速度快、模型简单、特征较少,尽量让用户感兴趣的物品在这个阶段能够被快速召回,即保证相关物品的召回率。常用的有多路召回(即多种策略进行召回),embedding向量召回

    精排:首要目标是得到精准的排序结果。需要处理的物品数量少,可以利用较多的特征,使用比较复杂的模型

    重排:为了避免排序阶段的结果趋于同质化,让用户有更好的体验,这里对排序的结果进行多样化考虑,提高用户的使用体验

    2. 召回

    召回分为三种:

    1. 基于规则

    通常的一些运营规则,例如召回点击次数最多的Item、召回购买次数最多的Item、召回购买金额最多的Item、召回地域最热的Item

    2. 基于协同过滤

    分为两种,分别为统计和MF的协同过滤

    3. 向量召回

    分为以下几类
    I2I:计算item-item相似度,用于相似推荐、相关推荐、关联推荐

    U2I:基于矩阵分解,直接给用户推荐item

    U2U2I:基于用户的协同过滤,先找相似用户,再推荐相似用户喜欢的item

    U2I2I:基于物品的协同过滤,先统计用户喜爱的item,再推荐他喜欢的item

    U2TAG2I:基于标签偏好推荐,先统计用户偏好的tag,然后匹配所有的item;其中tag一般是item的标签、分类、关键词等。

    GRU4REC

    核心思想:

    在GRU4REC中,用最后一个单元的输出作为整个序列的embeding,也就是说输入是item序列,最后一个单元的输出作为user的embeding。

    实现代码:

    def forward(self, item_seq, mask, item, train=True): 

             seq_emb = self.item_emb(item_seq)

            seq_emb,_ = self.gru(seq_emb)

            user_emb = seq_emb[:,-1,:] #取GRU输出的最后一个Hidden作为User的Embedding  

    相关文章

      网友评论

          本文标题:序列召回

          本文链接:https://www.haomeiwen.com/subject/nsdyxdtx.html