召回算法的核心特点如下:
∙ \bullet ∙ 算法结构简单
∙ \bullet ∙ 计算效率高
∙ \bullet ∙ 准确率不需要太高
∙ \bullet ∙ 每一种召回算法都会针对性解决某一类问题
在基于统计的协同过滤中,一般按照视角分为两种协同过滤模型:
∙ \bullet ∙ 基于User的协同过滤
∙ \bullet ∙ 基于Item的协同过滤
基于Item的协同过滤会推荐用户喜欢的Item的相似Item
主要可以分为以下流派:
∙ \bullet ∙ I2I:计算item-item相似度,用于相似推荐、相关推荐、关联推荐
∙ \bullet ∙ U2I:基于矩阵分解,直接给用户推荐item
∙ \bullet ∙ U2U2I:基于用户的协同过滤,先找相似用户,再推荐相似 ∙ \bullet ∙ 用户喜欢的item
∙ \bullet ∙ U2I2I:基于物品的协同过滤,先统计用户喜爱的item,再推荐他喜欢的item
∙ \bullet ∙ U2TAG2I:基于标签偏好推荐,先统计用户偏好的tag,然后匹配所有的item;其中tag一般是item的标签、分类、关键词等。
基于I2I的召回算法大致有如下两个流派:
∙ \bullet ∙ Item-Item相似度可以通过内容理解来生产Item向量,通过向量相似度来度量
∙ \bullet ∙ Item-Item相似度可以通过图表示学习/GNN来生产Item向量,通过向量相似度来度量
基于U2I的召回算法大致有如下两个流派:
∙ \bullet ∙ 输入User特征和Item特征,直接对齐User与Item的向量表征
∙ \bullet ∙ 通过User的历史序列提取User的向量表征,然后和Item的表征对齐
核心:
∙ \bullet ∙ 序列信息的利用以及系列特征的提取
∙ \bullet ∙ 如何通过序列构建User的向量表征
Embedding层可以认为是一张表,他内部存储的是每一个Item ID到其向量表征的映射,例如:我有10个Item,我想对每个Item表征成一个4维的向量,那么我们可以有如下的Embedding层:
emb_layer = nn.Embedding(10,4)
推荐算法的分类和流派是真的多啊