推荐系统

推荐系统

推荐系统模块构建了涵盖算法理论、工程架构和业务实践的完整推荐技术生态,为推荐工程师提供系统化的个性化推荐解决方案。该模块深入整理了推荐算法核心技术、搜索引擎技术、推荐系统专栏、推荐系统工程实践等关键知识体系,以及Pinecone、Chroma、Faiss、LanceDB、Vald、deeplake、Elasticsearch、Milvus、Qdrant、Weaviate等10+个主流向量数据库的技术特性和应用场景。

技术栈涵盖了索引构建、召回策略、粗排算法等推荐系统核心环节,详细解析了向量检索、相似度计算、多路召回、特征工程等关键技术的实现原理和优化方法。模块系统性地介绍了协同过滤、内容过滤、深度学习推荐、图神经网络推荐等主流算法,以及冷启动、数据稀疏性、实时性、可扩展性等工程挑战的解决方案。内容包括用户画像构建、物品特征提取、CTR预估、排序优化等完整的推荐流程,以及A/B测试、在线学习、多目标优化等产品化运营技术。此外,还提供了电商推荐、内容推荐、广告推荐、社交推荐等典型业务场景的案例分析,以及大规模分布式部署、实时推荐服务、推荐效果评估等工程化实践指导,帮助开发者构建高性能、高可用的推荐系统,实现精准的个性化推荐和业务价值最大化。

推荐系统专栏

搜索推荐系统相关技术业务落地方案

1.推荐系统-极客时间-code

简介

核心功能

技术原理

应用场景

1.推荐系统全流程

2.1向量数据库

简介

核心功能

技术原理

应用场景

-----------------------------------------------------------

Aerospike

简介

Aerospike是一个高性能、可无限扩展的实时数据库,旨在提供极低的延迟和高吞吐量的数据存储解决方案。它通过其独特的架构,实现了在大规模数据集上的快速读写操作,并支持灵活的数据模型。Aerospike在GitHub上提供了丰富的管理工具、操作库和代码示例,展示了其对开发者社区的开放性与支持。

核心功能

Aerospike的核心功能包括:

技术原理

Aerospike的技术原理主要基于以下几点:

应用场景

Aerospike适用于对性能、可扩展性和实时性有极高要求的多种应用场景,包括:

------------------------------------------------------------

Chroma

简介

核心功能

技术原理

应用场景

------------------------------------------------------------

Faiss

简介

本文介绍了Facebook AI团队开源的相似向量检索库Faiss,它为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索。文章阐述了其核心原理倒排索引IVF和乘积量化PQ,以及如何通过这两个方法实现高速、少内存以及精确检索,并对优化效率计算进行了说明。

核心功能

提供高效的相似向量搜索和聚类功能,支持大规模向量集的检索。

技术原理

应用场景

适用于需要对大规模向量进行相似性搜索和聚类的场景,如在项目中对种子用户进行look-alike,找到相似用户。

------------------------------------------------------------

KX-KDB数据库

简介

KX是一个高性能分析数据库平台,专为AI时代打造,能整合多种数据,助力实时决策,在金融服务、航天国防等领域有应用,具有速度快、效率高、支持多环境等特点。

核心功能

技术原理

基于世界上最快的时间序列数据库构建,具备向量原生能力,通过优化数据存储和计算效率,实现快速执行。采用并行处理和多线程加载技术,能同时处理大量数据。

应用场景

------------------------------------------------------------

LanceDB

简介

Lancedb是一个用于AI的开源向量数据库,旨在存储、管理、查询和检索大规模多模态数据上的嵌入。它有OSS和Cloud两种形式,支持存储实际数据,具备多种特性和优势,官网提供了文档指南,博客分享了相关技术文章和案例研究。

核心功能

技术原理

Lancedb核心用Rust编写,基于Lance开源柱状数据格式,该格式专为高性能ML工作负载和快速随机访问设计,数据库和数据格式从底层设计以实现易用性、可扩展性和成本效益。

应用场景

------------------------------------------------------------

Pinecone

简介

Pinecone 是一个专为 AI 应用设计的向量数据库,旨在高效存储、索引和检索向量嵌入。它为构建知识型 AI 系统提供了基础,能够快速进行相似性搜索,以支持复杂的机器学习和深度学习模型。

核心功能

技术原理

Pinecone 的核心技术原理在于其对向量嵌入的优化处理。它将高维数据(如文本、图像等)通过深度学习模型转换为低维向量嵌入,然后将这些向量存储在专门设计的数据库中。通过采用先进的索引结构(如量化、哈希或树状结构),Pinecone 能够极大地加速向量之间的相似性计算,从而实现毫秒级的相似性搜索。其架构支持分布式存储和查询,能够处理海量数据并提供高并发性能,同时通过实时更新机制保持数据的最新状态。

应用场景

------------------------------------------------------------

Vald

简介

介绍了Vald,它是基于云原生架构的高度可扩展分布式快速近似最近邻密集向量搜索引擎,具有自动向量索引、索引备份、水平扩展等特性,支持多语言,易于使用且可高度定制。

核心功能

技术原理

基于云原生架构设计实现,使用快速的ANN算法NGT进行邻居搜索,通过分布式索引图实现异步自动索引,支持在索引过程中持续工作。

应用场景

可用于识别、推荐、检测、语法检查、实时翻译等场景,能处理如文本、图像、音频、视频等各类对象数据转换后的向量搜索。

------------------------------------------------------------

deeplake

简介

介绍了Deep Lake相关内容,包括其功能、特点、与其他工具对比、安装方法、代码示例及社区等信息。

核心功能

用于存储和搜索数据及向量,管理深度学习模型训练数据集,简化企业级基于大语言模型产品的部署,具备多云支持、原生压缩、数据加载器、与多种工具集成等特点。

技术原理

采用优化的存储格式,支持多云存储,具有原生压缩和类似NumPy的索引方式,数据按需加载。通过内置数据加载器与深度学习框架集成,还与多种工具进行了整合。

应用场景

可用于构建语言模型应用、管理深度学习模型训练数据,适用于图像、视频、音频等多种数据类型的处理,在人工智能领域有广泛应用。

------------------------------------------------------------

elastic search

简介

这些链接主要围绕Elasticsearch相关内容展开,包括其过往版本发布、官方文档、知乎问答、博客文章等,涉及Elasticsearch的功能、应用场景、技术原理等方面的讨论。

核心功能

提供Elasticsearch的版本发布信息、参考文档,分享其在搜索、安全、可观测性等方面的应用及技术原理探讨。

技术原理

Elasticsearch基于分布式架构,通过Lucene实现高效的全文搜索。它利用倒排索引快速定位文档,支持分布式存储和计算,具备自动分片和副本机制以保障数据的可靠性和高可用性。在搜索时,通过相关性算法对查询结果进行排序,以提供精准相关的搜索结果。

应用场景

广泛应用于网站搜索、电子商务搜索、企业内部的Workplace Search、安全领域的威胁分析、可观测性方面的日志监测与应用性能监测等场景。 ------------------------------------------------------------

milvus

简介

开源向量数据库Milvus包含其产品介绍、GitHub项目代码、演示中心、相关工具attu及其版本发布信息,还有与Elastic的对比等内容,全面展示了Milvus在人工智能领域的应用及优势。

核心功能

技术原理

应用场景

0.各向量库性能对比-VectorBench

简介

VectorDBBench这一向量数据库性能测试工具,提供了多个主流向量数据库和云服务在不同数据集、标量过滤条件下的性能测试结果对比,包括吞吐量、响应速度和性价比等方面的排名。

核心功能

技术原理

暂未提及

应用场景

------------------------------------------------------------

1.BM25-milvus混合搜索

简介

主要介绍了RAG开发中如何用Milvus 2.5 BM25算法实现混合搜索,包括其背景、原理、具体实现步骤及测试结果等内容。

核心功能

利用Milvus 2.5的Sparse - BM25算法,结合向量搜索与基于关键词的搜索,通过RRF算法合并并重排结果,实现混合搜索,提高数据召回率。

技术原理

应用场景

可应用于RAG开发场景中,如学术论文写作搜索等,兼顾语义理解和精确关键字匹配,提升搜索的召回率和精确度,满足用户对搜索结果更精准、全面的需求。

------------------------------------------------------------

1.Towhee embeding框架图文搜索

简介

Towhee是一个开源机器学习框架,致力于简化和加速神经数据处理管道,特别是针对非结构化数据(如文本、图像、音频、视频和3D分子结构)。它通过LLM驱动的管道编排,将非结构化数据编码为嵌入,并提取有价值的见解。

核心功能

技术原理

Towhee的核心技术原理在于其对神经数据处理管道的抽象与优化。它构建在torch, timm, transformers等主流机器学习和非结构化数据处理库之上,将不同库的模型和功能封装为标准化操作符。通过基于LLM的管道编排,实现从原始非结构化数据到特定格式(如嵌入)的转换。为保证高性能,Towhee利用Triton Inference Server作为后端,支持在CPU和GPU上进行模型推理加速,并兼容TensorRT、PyTorch和ONNX等多种推理引擎。其Pythonic API支持声明式管道构建,同时通过Schema确保非结构化数据处理的便捷性。

应用场景

------------------------------------------------------------

1.milvus大厂应用案例

简介

核心功能

技术原理

应用场景

------------------------------------------------------------

2.milvus项目合集

简介

主要围绕技术项目展开,涉及Milvus相关的bootcamp项目,以及图像反向搜索的示例代码,还有多篇知乎文章从不同角度探讨了相关技术应用等内容。

核心功能

涵盖处理如反向图像搜索、音频搜索、分子搜索、视频分析、问答系统、自然语言处理等非结构化数据,通过Milvus相关项目及示例展示如何构建各类人工智能应用。

技术原理

暂未明确提及具体技术原理细节,推测可能涉及到向量搜索、全文搜索、混合搜索等技术,利用Milvus的相关功能来实现对不同类型数据的处理和应用。

应用场景

------------------------------------------------------------

qdrant

简介

Qdrant 是一款高性能、大规模、开源的向量数据库和向量搜索引擎,专为下一代 AI 应用设计。它能够存储、索引和搜索高维向量,为语义搜索、推荐系统等提供强大支持,旨在处理海量数据并提供低延迟的向量相似性搜索服务。

核心功能

技术原理

Qdrant 作为一款 AI 原生的向量数据库,其核心技术原理在于高效的向量相似性搜索算法和可扩展的架构。

应用场景

------------------------------------------------------------

weaviate

简介

核心功能

技术原理

应用场景

------------------------------------------------------------

索引相关知识

简介

搜索框背后的Query理解和语义召回技术展开,介绍了知乎搜索的历史、面临的长尾化挑战及相应解决方法,涵盖Query Term Weight、同义词扩展、query改写、语义召回等方面的实践与优化。

核心功能

通过一系列技术手段提升知乎搜索的召回质量,包括纠错、处理表达冗余、解决语义鸿沟等,以应对query词长尾化带来的挑战,提高用户搜索满意度。

技术原理

应用场景

知乎问答社区平台的搜索场景,帮助用户更精准地找到相关问题和答案,提升搜索体验。

召回

简介

核心功能

技术原理

应用场景

粗排

简介

围绕推荐系统展开,涵盖全民K歌推荐系统架构及粗排设计、EMBEDDING在大厂推荐场景中的工程化实践等内容。介绍了全民K歌推荐系统的架构、粗排模块算法及多样性调节算法;解读了YouTube、Airbnb、Alibaba在推荐系统中运用Embedding的工程经验,包括模型结构、特征处理、优化目标等方面。

核心功能

技术原理

应用场景

精排

简介

围绕推荐算法架构中的精排以及排序学习展开。第一篇介绍精排涉及的样本、特征、模型三部分内容,包括样本不均衡问题及解决方法、多种特征类型及处理方式、精排模型的发展历程等;第二篇阐述排序学习的类别、框架、设计方法,以及推荐领域常用的BPR和LambdaMART算法;第三篇具体讲解BPR和LambdaMART算法的原理、流程等。

核心功能

技术原理

- 样本:以CTR任务为例构建样本,存在正负样本不均衡、不同活跃度用户样本不均衡、样本置信度等问题,可通过负采样、focal loss、降采样等方法解决。 - 特征:有context特征、user特征、item特征等多种类型,处理方式包括对离散值直接embedding、对连续值进行分桶离散化、对多值特征采用mean - pooling、att - pooling、序列建模等方法。 - 模型:经历了从线性模型(如CF协同过滤类、LR逻辑回归类、多模型融合类)到深度模型(如DNN类、Wide&Deep异构模型类、Attention和序列建模类)的发展历程。 - 框架:是有监督机器学习过程,在信息检索和推荐领域,通过抽取特征、获取标注数据,利用排序模型进行学习。 - 设计方法:分为单点法、配对法、列表法三大类,区别在于损失函数、标签标注方式和优化方法不同。 - 算法: - BPR:基于贝叶斯的Pairwise方法,借鉴矩阵分解思路,通过构建偏序关系、推导损失函数、使用梯度下降或牛顿法优化来求解模型参数。 - LambdaMART:由RankNet、LambdaRank逐步演化而来,基于决策树的MART,在GBDT过程中用Lambda梯度替换原始梯度,以优化NDCG指标。

应用场景

- 多路召回策略的融合排序:对基于不同策略召回的物品,根据用户行为反馈进行排序推荐。 - 多目标学习排序:综合考虑如点击率、转化率、加购、收藏、分享等多个目标,将多种目标融合到一个模型中进行学习排序。

------------------------------------------------------------

原理知识等

简介

围绕Learning to Rank(LTR)技术展开,介绍了排序模型的分类,包括基于相关度和重要性的排序。详细阐述了pointwise、pairwise、listwise三类排序方法的特点、经典模型、解决的问题及存在的缺陷,还提及了一些改进方法和常用的评估指标,如MAP、NDCG等,以及相关算法和工具的使用。

核心功能

技术原理

- 输入空间为单个文档特征向量,输出空间为单个文档相关度,假设空间为打分函数,损失函数评估单个文档预测得分与真实得分差异。 - 包括基于回归、分类、有序回归的算法,分别采用传统回归方法、分类算法、找打分函数用阈值分割等方式。 - 输入空间为同一query对应的两个文档特征向量,输出空间为pairwise preference,假设空间为二变量函数,损失函数评估文档对预测preference与真实preference差异。 - 基本使用二分类算法,如基于NN的SortNet、RankNet等多种经典算法。 - 输入空间为同一query对应的所有文档特征向量列表,输出空间为文档相关度排序列表或排列,假设空间为多变量函数,损失函数分直接和评价指标相关及不相关两类。 - 直接基于评价指标的算法通过优化评测指标的近似或上界等进行求解;非直接基于评价指标的算法设计衡量模型输出与真实排列差异的loss来优化模型。 - MAP:通过计算每个query下相关文档位置的准确率并求平均得到。 - NDCG:考虑相关性等级和位置衰减,通过DCG与理想DCG的比值进行归一化计算。 - MRR:将相关文档在结果中的排序倒数取平均。 - Rank Correlation:用带权重的Kendall等级相关系数评估两个排序list中两两不一样的pairwise排序一致性情况。

应用场景

------------------------------------------------------------

重排

简介

围绕推荐算法架构中的重排展开。包括重排在解决用户体验、算法效率、流量调控方面的作用,以及快手短视频推荐系统中重排技术环节的演进过程,如序列重排、多元内容混排、端上重排等内容。

核心功能

  • 解决推荐系统中用户体验、算法效率、流量调控等问题。
  • 快手短视频推荐系统中,通过序列重排、多元内容混排、端上重排等技术,提升推荐效果和用户体验。

技术原理

  • 基于规则或embedding进行打散,防止用户疲劳和系统过度个性化。
  • 多任务融合通过人工调权、grid search、LTR或者强化学习等方式,在重排阶段融合精排输出的多个任务分数。
  • 上下文感知采用pairwise和listwise等方式,考虑序列中item的前后关系,提升推荐整体算法效率。
  • 实时性提升通过在线学习ODL和端上重排等方法,实现重排模型实时更新,提升推荐的实时响应和特征的实时捕获。
  • 流量调控兼顾实时性和准确性,通过保量类和调权类等方法,对冷启item、新热item等给予保量流量,或对特定item进行加权。

应用场景

国内搜索系统

简介

  • 介绍了达观智能搜索平台,它基于多种AI能力构建智能语义搜索引擎,具备智能内容分析、搜索服务、展现及管理等功能,可助力企业搜索场景数字化升级。阿里云的智能开放搜索OpenSearch,这是一站式智能搜索业务开发平台,能为开发者提供多种服务来搭建智能搜索服务。

核心功能

  • 达观智能搜索平台可整合多数据源,通过AI挖掘数据价值,提供八大服务和四大应用实现口语级语义搜索,结合知识图谱多样化展示结果,还有完备后台管理工具。OpenSearch则能让用户灵活调用多模态数据解析等组件化服务,实现智能搜索等场景搭建,提供多种版本以满足不同需求。

技术原理

  • 达观智能搜索平台运用自然语言处理NLP、知识图谱、文字识别OCR等技术,集成丰富接口对接各类数据,通过对数据的处理和分析实现各项功能。OpenSearch基于阿里巴巴自主研发的大规模分布式搜索引擎,内置多种行业相关的算法模型、服务组件等,利用这些来达成不同场景下的智能搜索业务开发。

应用场景

检索增强生成 (RAG)

简介

  • 介绍了使用Milvus和Zilliz Cloud接入外部数据源,拓展大语言模型知识库,释放生成式AI应用潜能,包括LLM的限制、Zilliz Cloud的作用、CVP技术栈及相关应用示例等。阐述了Self-RAG通过检索、生成和批判来提升语言模型输出质量和事实性的框架,介绍了其优势、训练和推理过程等内容。

核心功能

  • 利用Milvus和Zilliz Cloud增强大语言模型,提升其回答准确性、降低成本及响应时间,如通过相似性搜索获取相关结果并合并生成新Prompt。Self-RAG能自适应检索、生成和批判,通过特殊的反射标记控制模型行为,提高输出质量和事实性。

技术原理

  • Zilliz Cloud支持在LLM外存储特定领域信息等,用户提问时先将问题转化为向量,在其中进行相似性搜索,获取top-K结果后与原始问题合并生成新Prompt。Self-RAG训练包含检索器、批判器和生成器三个模型,通过学习生成反射标记实现自适应检索、生成和批判,在推理阶段可根据不同任务需求调整模型行为。

应用场景

推荐算法github项目:DeepFM

简介

  • 主要围绕推荐系统相关算法及模型实现。包含多模态推荐系统比较框架rater,主流推荐系统Rank算法实现的RecAlgorithm,以及基于改进的Wide&Deep进行信用贷款违约风险预测研究的代码仓库luyaohuiwidedeepautofisdeepfmcreditrisk 。

核心功能

  • rater:作为多模态推荐系统比较框架,便于设计、比较和共享推荐模型,支持多种经典及深度模型,且工程性强。
  • RecAlgorithm:实现推荐系统中主要Rank算法,用公开数据集评测,使用TensorFlow Estimator框架,数据format为Tfrecord,涵盖单任务和多任务模型。
  • luyaohuiwidedeepautofisdeepfmcreditrisk:用于芦耀辉硕士毕业论文中基于改进的Wide&Deep进行网络个人信用贷款违约风险预测研究的代码实现。

技术原理

  • rater:未提及具体技术原理细节,推测是基于常见推荐模型算法进行封装整合,方便用户调用不同模型进行对比实验。
  • RecAlgorithm:使用TensorFlow中低阶API构造静态图,各算法实现自己的model_fn,通过超参数传入训练入口脚本进行训练。
  • luyaohuiwidedeepautofisdeepfmcreditrisk:基于改进的Wide&Deep模型,结合自动特征交互选择(AutoFIS)和深度因子分解机(DeepFM),具体实现细节需参考相关论文及代码。

应用场景

⬆ 返回README目录 ⬆ Back to Contents