YP.Lam | 推荐系统的简易实现

推荐系统的简易实现

现时推荐系统可以说是内容类网站的基础组件之一,而得益于最近大模型等机器学习领域的快速发展,带动相关技术应用的普及,今天可以利用相关技术实现一个具备基础功能的推荐系统。

推荐系统的关键技术和方法:

  1. 基于内容的推荐,基于内容的推荐系统通过分析项目的特征来进行推荐。例如,在电影推荐中,系统可能会根据电影的类型、导演、演员等信息进行推荐。
  2. 协同过滤,包括用户-用户协同过滤,物品-物品协同过滤
  3. 基于模型的推荐,使用机器学习模型(如矩阵分解、深度学习)来进行推荐。这些模型通过训练数据学习用户和物品的潜在特征。

在生成推荐的过程中,主要包括以下步骤:

  1. 选择,选择合适的推荐策略和算法。根据用户需求和业务场景,选择不同的推荐方法(如协同过滤、基于内容的推荐、混合推荐等)。
  2. 召回,从大规模的物品集合中初步筛选出一批可能感兴趣的物品。召回阶段的目标是提高效率,确保不遗漏用户可能感兴趣的内容。
  3. 过滤,对召回的物品进行进一步过滤,去除不符合条件的物品。这一步通常用于应用业务规则或个性化约束。
  4. 排序,对经过过滤的物品进行排序,以确定最终推荐的优先级。排序阶段的目标是优化推荐的相关性和用户满意度。

推荐系统还涉及冷启动,业务规则等。

小型推荐系统相关技术

  • Transformers,自然语言处理的基础库
  • ONNX,方便模型跨平台部署
  • PGVector,PostgreSQL 扩展,用于高效存储和检索向量数据
  • Matrix Factorization,常用于实现协同过滤的推荐算法

文本内容相关推荐

相对于 Word2Vec,具有注意力机制的 BERT 能更好地理解内容上下文信息,从而实现更精准的基于内容的相关推荐

  1. 使用 BERT 模型获取文本向量
  2. 向量存储到 PGVector
  3. 根据向量距离排序,得到内容相关文章

相似图片推荐

  1. 使用 ViT 或者 DEIT 模型获取图片向量
  2. 向量存储到 PGVector
  3. 根据向量距离排序,得到相似图片

用户感兴趣内容推荐

  1. 基于协同过滤
  2. 使用 Matrix Factorization 分解稀疏矩阵
  3. 算出用户特征与物品特征,存储到 PGVector
  4. 根据用户-用户距离,物品-物品距离,用户-物品距离获取推荐