推荐系统
推荐系统模块构建了涵盖算法理论、工程架构和业务实践的完整推荐技术生态,为推荐工程师提供系统化的个性化推荐解决方案。该模块深入整理了推荐算法核心技术、搜索引擎技术、推荐系统专栏、推荐系统工程实践等关键知识体系,以及Pinecone、Chroma、Faiss、LanceDB、Vald、deeplake、Elasticsearch、Milvus、Qdrant、Weaviate等10+个主流向量数据库的技术特性和应用场景。
技术栈涵盖了索引构建、召回策略、粗排算法等推荐系统核心环节,详细解析了向量检索、相似度计算、多路召回、特征工程等关键技术的实现原理和优化方法。模块系统性地介绍了协同过滤、内容过滤、深度学习推荐、图神经网络推荐等主流算法,以及冷启动、数据稀疏性、实时性、可扩展性等工程挑战的解决方案。内容包括用户画像构建、物品特征提取、CTR预估、排序优化等完整的推荐流程,以及A/B测试、在线学习、多目标优化等产品化运营技术。此外,还提供了电商推荐、内容推荐、广告推荐、社交推荐等典型业务场景的案例分析,以及大规模分布式部署、实时推荐服务、推荐效果评估等工程化实践指导,帮助开发者构建高性能、高可用的推荐系统,实现精准的个性化推荐和业务价值最大化。
- !推荐算法等文章汇总
- 1.工业界的推荐系统教程-王树森
- 1.搜索引擎技术-王树森
- 【上】王树森《搜索引擎技术》- 课程笔记(概要、相关性)-CSDN博客
- 基于elasticsearch的KBQA实现及示例 - 工具 - 开放知识图谱
推荐系统专栏
1.推荐系统-极客时间-code
简介
- 这三个GitHub项目分别与推荐系统、计算广告论文及相关资料、推荐系统论文及学习资料有关。SparrowRecSys是电影推荐系统项目;Ad-papers包含计算广告相关论文等;Reco-papers则是推荐系统相关论文等的集合。
核心功能
- SparrowRecSys实现多种深度学习模型的电影推荐,涵盖数据处理、模型训练到线上服务等流程。
- Ad-papers收集整理计算广告领域多方面的论文资料,方便学习研究。
- Reco-papers整合推荐系统各类相关论文及学习资料,助力推荐系统知识学习。
技术原理
- SparrowRecSys基于maven构建,运用TensorFlow、Spark等技术,遵循工业级深度学习推荐系统架构,包含离线处理、模型训练、流处理、线上服务等模块。
- Ad-papers和Reco-papers主要是通过网络收集、整理各类相关论文和资料,并进行分类汇总展示。
应用场景
- SparrowRecSys用于电影推荐系统的学习实践及实际应用。
- Ad-papers为计算广告领域从业者、研究者提供学习和参考。
- Reco-papers供推荐系统领域人员学习知识、了解技术进展 。
- wzhe06/SparrowRecSys: A Deep Learning Recommender System
- wzhe06/Ad-papers: Papers on Computational Advertising
- wzhe06/Reco-papers: Classic papers and resources on recommendation
1.推荐系统全流程
2.1向量数据库
简介
- 分别涉及搜索引擎排名、向量数据库排名、GPTCache库、Pinecone向量数据库平台以及KX高性能分析数据库等内容。
核心功能
- DB-Engines:对数据库管理系统按流行度进行排名,展示搜索 引擎和向量数据库管理系统的排名情况。
- GPTCache:为大语言模型查询创建语义缓存,减少LLM API成本、提升速度,具有多种模块可定制。
- Pinecone:专注于向量数据库,具备高性能、支持多种云服务等特点,用于多种AI应用场景。
- KX:高性能分析数据库,适用于金融服务、航空航天等领域,可实时处理多种数据。
技术原理
- DB-Engines Ranking:通过综合多种因素对数据库管理系统的流行度进行评估和排名。
- GPTCache:采用嵌入算法将查询转换为嵌入,利用向量存储进行相似性搜索,通过语义缓存提高缓存命中率。
- Pinecone:基于向量数据库技术,提供先进的检索能力,支持多种嵌入模型、优化召回等。
- KX:基于高性能的时间序列数据库,结合向量原生功能,能整合多种数据并进行快速分析。
应用场景
- DB-Engines Ranking:帮助用户了解不同数据库管理系统的市场地位和趋势。
- GPTCache:用于各种使用大语言模型的应用,如聊天机器人、智能问答系统等,优化成本和性能。
- Pinecone:适用于推荐系统、搜索、基于检索的问答(RAG)、智能代理等AI相关场景。
- KX:在金融服务中的交易处理、数据分析,航空航天领域的实时监测等场景发挥作用。
- DB-Engines 搜索引擎排名
- DB-Engines Ranking - popularity ranking of vector DBMS
- zilliztech/GPTCache:LLM 的语义缓存。与 LangChain 和 llama_index 完全集成。
- Pinecone:The vector database to build knowledgeable AI | Pinecone
- KX-KDB数据库:AI Ready Vector Database and Data Analytics Platform| KX
-----------------------------------------------------------
Aerospike
简介
Aerospike是一个高性能、可无限扩展的实时数据库,旨在提供极低的延迟和高吞吐量的数据存储解决方案。它通过其独特的架构,实现了在大规模数据集上的快速读写操作,并支持灵活的数据模型。Aerospike在GitHub上提供了丰富的管理工具、操作库和代码示例,展示了其对开发者社区的开放性与支持。核心功能
Aerospike的核心功能包括:- 实时数据存储与访问: 提供超低延迟的实时数据读写能力。
- 无限扩展性: 能够随着数据量和并发量的增长进行水平扩展,以应对不断增长的需求。
- 高吞吐量: 支持高并发的数据操作,确保系统在高负载下的稳定性和性能。
- 高可用性与持久性: 具备强大的容错机制,确保数据在硬件故障时依然可用和持久。
- 键值存储(Key-Value Store): 提供高性能的键值存储解决方案,适用于需要简单、高效访问大量数据的场景。
- 数据管理与操作工具: 提供用于管理和操作数据库的库和工具集。
技术原理
Aerospike的技术原理主要基于以下几点:- 混合内存架构: 结合了DRAM(动态随机存取存储器)和SSD(固态硬盘)或Intel Optane等非易失性存储,通过智能数据分层和索引管理,实现内存级的性能和磁盘级的容量及成本效益。
- 无共享(Shared-nothing)架构: 每个节点独立运行,不共享存储或内存,消除了单点故障,提高了可扩展性和容错性。
- 分布式哈希: 数据通过分布式哈希算法均匀分布在集群中的各个节点,确保了数据均衡和高效访问。
- 智能索引: 使用内存优化的索引结构,加速数据查找和检索。
- 直接I/O操作: 跳过操作系统文件系统缓存,直接与存储设备交互,减少I/O延迟。
- 强一致性与最终一致性模式: 支持多种一致性级别,满足不同应用场景的需求。
应用场景
Aerospike适用于对性能、可扩展性和实时性有极高要求的多种应用场景,包括:- 实时分析: 如广告竞价、欺诈检测、个性化推荐等需要即时处理大量数据的场景。
- 会话管理: 用于存储用户会话状态,提供快速的登录和个性化体验。
- 缓存层: 作为高性能缓存,显著提升Web应用和移动应用的响应速度。
- 物联网(IoT): 处理和存储来自大量传感器设备的实时数据流。
- 金融服务: 实时风险管理、交易系统和欺诈预防。
- 在线游戏: 存储玩家数据、游戏状态和排行榜,提供流畅的游戏体验。
- 身份验证与授权: 提供快速用户身份验证和访问控制。
- Aerospike
- Aerospike | Aerospike
------------------------------------------------------------
Chroma
简介
- Chroma的GitHub仓库,展示项目文件结构、更新日志等,介绍其为开源嵌入数据库及相关特性、使用方法、参与方式等。Chroma官网,介绍了其具备的多种功能,如嵌入、向量搜索等,还有快速入门指南、架构概述等内容。
核心功能
- Chroma是一个开源嵌入数据库,提供简单且功能丰富的API,支持多种集成,具备查询、过滤、密度估计等能力,可用于构建带内存的Python或JavaScript LLM应用。
技术原理
- 利用Sentence Transformers等进行文本嵌入,将文本转化为向量存储在数据库中,通过向量相似性搜索实现高效查询,支持多种嵌入方式及相关功能如过滤、密度估计等。
应用场景
- 适用于构建各类基于语言模型且需要处理文本数据、进行向量搜索和存储的应用,如问答系统、智能聊天机器人、文档检索系统等。
- chroma-core/chroma: the AI-native open-source embedding database
- Chroma
------------------------------------------------------------
Faiss
简介
本文介绍了Facebook AI团队开源的相似向量检索库Faiss,它为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索。文章阐述了其核心原理倒排索引IVF和乘积量化PQ,以及如何通过这两个方法实现高速、少内存以及精确检索,并对优化效率计算进行了说明。核心功能
提供高效的相似向量搜索和聚类功能,支持大规模向量集的检索。技术原理
- 倒排索引IVF:通过对全空间进行分割(聚类),将其分割成很多小的子空间,在搜索时,通过计算query向量和所有子空间中心的距离,选出距离最近的K个子空间,然后在这几个子空间中进行遍历。
- 乘积量化PQ:主要分为两个步骤,Cluster和Assign,也即聚类和量化。通过对向量进行切分,对每段小向量分别进行聚类,然后使用簇心的ID对向量进行编码,从而完成向量的压缩,节省内存。
应用场景
适用于需要对大规模向量进行相似性搜索和聚类的场景,如在项目中对种子用户进行look-alike,找到相似用户。------------------------------------------------------------
KX-KDB数据库
简介
KX是一个高性能分析数据库平台,专为AI时代打造,能整合多种数据,助力实时决策,在金融服务、航天国防等领域有应用,具有速度快、效率高、支持多环境等特点。核心功能
- 整合结构化、非结构化、历史和实时数据,提供清晰洞察。
- 支持实时决策,提供即时、决定性行动的洞察力。
- 具备超快分析能力,可创建高级算法,加速创新。
- 提供开发者友好工具,用于构建下一代分析解决方案。
技术原理
基于世界上最快的时间序列数据库构建,具备向量原生能力,通过优化数据存储和计算效率,实现快速执行。采用并行处理和多线程加载技术,能同时处理大量数据。应用场景
- 金融服务领域,如资本交易、量化研究等。
- 航天、国防与太空领域,用于多源事件关联、传感器监测等。
- 可在本地、边缘或云端部署,适用于实时分析、物联网和流解决方案。
- KX-KDB数据库:AI Ready Vector Database and Data Analytics Platform| KX
------------------------------------------------------------
LanceDB
简介
Lancedb是一个用于AI的开源向量数据库,旨在存储、管理、查询和检索大规模多模态数据上的嵌入。它有OSS和Cloud两种形式,支持存储实际数据,具备多种特性和优势,官网提供了文档指南,博客分享了相关技术文章和案例研究。核心功能
- 支持存储和管理多模态数据,不仅是嵌入和元数据。
- 提供快速的生产规模向量相似性、全文和混合搜索以及SQL查询接口。
- 支持多种编程语言,包括Python、Javascript/Typescript和Rust。
- 与Arrow生态系统紧密集成,实现零拷贝访问和加速。
- 具有自动数据版本控制功能。
技术原理
Lancedb核心用Rust编写,基于Lance开源柱状数据格式,该格式专为高性能ML工作负载和快速随机访问设计,数据库和数据格式从底层设计以实现易用性、可扩展性和成本效益。应用场景
- 适用于需要处理和管理大规模多模态数据的AI应用,如RAG(检索增强生成)。
- 可用于图像、视频、文本等多种数据类型的存储、查询和检索场景。
- lancedb/lancedb:适用于 AI 应用程序的开发人员友好型无服务器矢量数据库。轻松为您的 LLM 应用程序添加长期记忆!
- LanceDB - LanceDB
- LanceDB Blog
------------------------------------------------------------
Pinecone
简介
Pinecone 是一个专为 AI 应用设计的向量数据库,旨在高效存储、索引和检索向量嵌入。它为构建知识型 AI 系统提供了基础,能够快速进行相似性搜索,以支持复杂的机器学习和深度学习模型。核心功能
- 向量嵌入存储与索引: 优化存储和索引高维向量嵌入,实现高效的数据管理。
- 快速检索与相似性搜索: 支持快速的近似最近邻(ANN)搜索,实现基于向量相似度的查询。
- CRUD 操作与元数据过滤: 提供对向量数据的创建、读取、更新、删除操作,并支持通过元数据进行精细化过滤。
- 水平扩展与无服务器架构: 具备良好的可扩展性,支持无服务器部署,以适应动态的数据负载。
- 实时数据更新: 允许对向量数据进行实时更新,确保查询结果的时效性和准确性。
技术原理
Pinecone 的核心技术原理在于其对向量嵌入的优化处理。它将高维数据(如文本、图像等)通过深度学习模型转换为低维向量嵌入,然后将这些向量存储在专门设计的数据库中。通过采用先进的索引结构(如量化、哈希或树状结构),Pinecone 能够极大地加速向量之间的相似性计算,从而实现毫秒级的相似性搜索。其架构支持分布式存储和查询,能够处理海量数据并提供高并发性能,同时通过实时更新机制保持数据的最新状态。应用场景
- 知识型 AI 构建: 作为大语言模型(LLM)的外部知识库,提供实时、准确的信息检索,增强模型的事实性和可靠性。
- RAG (Retrieval-Augmented Generation) 聊天机器人: 为聊天机器人提供相关文档片段的检索能力,使其能够生成更精准、上下文相关的回复。
- 智能搜索与推荐系统: 基于用户行为、内容特征等向量嵌入,实现个性化搜索结果和内容推荐。
- 企业数据分析与洞察: 安全地利用企业内部的非结构化数据,如财务报告、法律文档等,进行高效检索和分析,支持业务决策。
- Pinecone:The vector database to build knowledgeable AI | Pinecone
------------------------------------------------------------
Vald
简介
介绍了Vald,它是基于云原生架构的高度可扩展分布式快速近似最近邻密集向量搜索引擎,具有自动向量索引、索引备份、水平扩展等特性,支持多语言,易于使用且可高度定制。核心功能
- 提供分布式向量搜索功能,能处理海量特征向量数据。
- 具备异步自动索引、可定制的Ingress/Egress过滤、自动索引备份、分布式索引、索引复制等特性。
技术原理
基于云原生架构设计实现,使用快速的ANN算法NGT进行邻居搜索,通过分布式索引图实现异步自动索引,支持在索引过程中持续工作。应用场景
可用于识别、推荐、检测、语法检查、实时翻译等场景,能处理如文本、图像、音频、视频等各类对象数据转换后的向量搜索。------------------------------------------------------------
deeplake
简介
介绍了Deep Lake相关内容,包括其功能、特点、与其他工具对比、安装方法、代码示例及社区等信息。核心功能
用于存储和搜索数据及向量,管理深度学习模型训练数据集,简化企业级基于大语言模型产品的部署,具备多云支持、原生压缩、数据加载器、与多种工具集成等特点。技术原理
采用优化的存储格式,支持多云存储,具有原生压缩和类似NumPy的索引方式,数据按需加载。通过内置数据加载器与深度学习框架集成,还与多种工具进行了整合。应用场景
可用于构建语言模型应用、管理深度学习模型训练数据,适用于图像、视频、音频等多种数据类型的处理,在人工智能领域有广泛应用。- activeloopai/deeplake: Database for AI. Store Vectors, Images, Texts, Videos, etc. Use with LLMs/LangChain. Store, query, version, & visualize any AI data. Stream data in real-time to PyTorch/TensorFlow. https://activeloop.ai
- Activeloop | Deep Lake | Database for AI
- Deep Lake Docs | Deep Lake
- Deep Learning Guide | Deep Lake
------------------------------------------------------------
elastic search
简介
这些链接主要围绕Elasticsearch相关内容展开,包括其过往版本发布、官方文档、知乎问答、博客文章等,涉及Elasticsearch的功能、应用场景、技术原理等方面的讨论。核心功能
提供Elasticsearch的版本发布信息、参考文档,分享其在搜索、安全、可观测性等方面的应用及技术原理探讨。技术原理
Elasticsearch基于分布式架构,通过Lucene实现高效的全文搜索。它利用倒排索引快速定位文档,支持分布式存储和计算,具备自动分片和副本机制以保障数据的可靠性和高可用性。在搜索时,通过相关性算法对查询结果进行排序,以提供精准相关的搜索结果。应用场景
广泛应用于网站搜索、电子商务搜索、企业内部的Workplace Search、安全领域的威胁分析、可观测性方面的日志监测与应用性能监测等场景。- 官网ES版本-Elastic Stack Software | Elastic
- Elasticsearch 手册
- ElasticSearch在项目中具体怎么用? - 知乎
- 详述 Elasticsearch 向量检索发展史
- Elasticsearch Relevance Engine™ 用于构建 AI 搜索应用程序 | Elastic Blog
- Rest操作ES(2)-DSL查询语法(全文检索、精准查询、地理坐标查询) - DeyouKong - 博客园
milvus
简介
开源向量数据库Milvus包含其产品介绍、GitHub项目代码、演示中心、相关工具attu及其版本发布信息,还有与Elastic的对比等内容,全面展示了Milvus在人工智能领域的应用及优势。核心功能
- Milvus是开源向量数据库,用于存储、索引和管理大规模向量数据,支持多种向量索引类型和硬件加速,具备高性能、高可用性、灵活多租户等特点,可用于文本、图像等搜索及推荐系统等。
- Attu是多合一向量数据库管理工具,提供数据库、集合、分区管理,向量嵌入操作及用户和角色管理等功能,通过Web界面方便管理Milvus数据库。
技术原理
- Milvus采用计算存储分离、查询插入分离架构,支持在组件层面扩展,拥有多副本和动态Segment替换机制。基于多种内存索引,支持Partition,通过多种索引类型平衡性能。实现硬件加速,支持GPU索引。具备基于角色的访问控制(RBAC)。
- Attu通过Web界面实现对Milvus数据库的全方位管理,包括数据库、集合、分区管理,向量嵌入的插入、索引、查询操作,以及用户和角色管理、系统拓扑查看等功能。
应用场景
- 适用于人工智能领域的图像搜索、多模态检索、RAG(检索增强生成)、化学结构搜索等场景。
- 可用于构建各种需要高效管理和查询向量数据的系统,如推荐系统、信息检索系统等。
- Zilliz 开源向量数据库及工具
- milvus-io/milvus: Vector database for scalable similarity search and AI applications.
- Milvus Demos · Vector Database built for scalable similarity search
- 可视化attu: Milvus management GUI
- Releases · zilliztech/attu
- Milvus - 详解
- Projects – LFAI & Data
- Milvus vs Elastic | Zilliz
0.各向量库性能对比-VectorBench
简介
VectorDBBench这一向量数据库性能测试工具,提供了多个主流向量数据库和云服务在不同数据集、标量过滤条件下的性能测试结果对比,包括吞吐量、响应速度和性价比等方面的排名。核心功能
- 对多个主流向量数据库和云服务进行性能测试。
- 对比不同数据库在不同数据集、标量过滤条件下的性能表现。
- 生成基于QPS、P99延时和性价比的排名表。
技术原理
暂未提及应用场景
- 帮助用户挑选适合的向量数据库。
- 为评估向量数据库性能提供客观依据。
- VectorDBBench —— 向量数据库性能测试工具
- zilliztech/VectorDBBench: A Benchmark Tool for VectorDB
------------------------------------------------------------
1.BM25-milvus混合搜索
简介
主要介绍了RAG开发中如何用Milvus 2.5 BM25算法实现混合搜索,包括其背景、原理、具体实现步骤及测试结果等内容。核心功能
利用Milvus 2.5的Sparse - BM25算法,结合向量搜索与基于关键词的搜索,通过RRF算法合并并重排结果,实现混合搜索,提高数据召回率。技术原理
- Sparse - BM25算法:类似Elasticsearch中常用的BM25算法,针对稀疏向量设计,能实现全文搜索功能。具有数据剪枝功能,可减小索引大小并优化性能,还能结合其他基于向量的优化方法,如用图索引替代暴力扫描、乘积量化(PQ)/标量量化(SQ)等减少内存占用。
- 混合搜索实现:将向量搜索与基于关键词的搜索相结合,使用RRFRanker进行结果合并与重排。
应用场景
可应用于RAG开发场景中,如学术论文写作搜索等,兼顾语义理解和精确关键字匹配,提升搜索的召回率和精确度,满足用户对搜索结果更精准、全面的需求。------------------------------------------------------------
1.Towhee embeding框架图文搜索
简介
Towhee是一个开源机器学习框架,致力于简化和加速神经数据处理管道,特别是针对非结构化数据(如文本、图像、音频、视频和3D分子结构)。它通过LLM驱动的管道编排,将非结构化数据编码为嵌入,并提取有价值的见解。核心功能
- 非结构化数据处理: 支持处理多种模态的非结构化数据,包括图像、文本、音频、视频和3D分子结构。
- 数据编码与嵌入: 能够将非结构化数据转化为向量嵌入,便于后续的机器学习任务。
- Pythonic API: 提供简洁易用的Python API,支持方法链式调用,用于构建和描述自定义数据处理管道。
- 丰富的操作符库: 内置大量最先进的模型和功能(如BERT, CLIP),涵盖计算机视觉、自然语言处理、多模态、音频和医疗等领域。
- 生产级优化: 能够自动优化管道以适应生产环境,并支持将Python管道转化为高性能Docker容器。
技术原理
Towhee的核心技术原理在于其对神经数据处理管道的抽象与优化。它构建在torch, timm, transformers等主流机器学习和非结构化数据处理库之上,将不同库的模型和功能封装为标准化操作符。通过基于LLM的管道编排,实现从原始非结构化数据到特定格式(如嵌入)的转换。为保证高性能,Towhee利用Triton Inference Server作为后端,支持在CPU和GPU上进行模型推理加速,并兼容TensorRT、PyTorch和ONNX等多种推理引擎。其Pythonic API支持声明式管道构建,同时通过Schema确保非结构化数据处理的便捷性。
应用场景
- 多模态数据检索: 例如反向图像搜索、反向视频搜索等。
- 内容理解与分类: 如音频分类、文本分析。
- 问答系统: 构建基于非结构化数据知识库的智能问答系统。
- 药物发现与材料科学: 进行分子结构搜索和分析。
- 生成式AI数据预处理: 为大型语言模型和其他生成式AI模型提供高质量的非结构化数据输入。
- Towhee,开源的 embedding 框架与社区 - 知乎
- Towhee | Home - Towhee
- towhee-io/towhee: Towhee is a framework that is dedicated to making neural data processing pipelines simple and fast.
- towhee-io/examples: Analyze the unstructured data with Towhee, such as reverse image search, reverse video search, audio classification, question and answer systems, molecular search, etc.
- Welcome to Towhee’s documentation! — Towhee v1.0.0 documentation
- towhee-io/towhee: Towhee is a framework that is dedicated to making neural data processing pipelines simple and fast.
------------------------------------------------------------
1.milvus大厂应用案例
简介
- 介绍了Zilliz的客户案例,包括唯品会使用Milvus搭建个性化推荐系统,以及点石科技借助Zilliz Cloud转型AI智能服务商,在多租户支持、数据安全、问答召回率等方面取得成效。
核心功能
- 提供高性能向量数据库及相关云服务,助力企业搭建推荐系统、解决大语言模型“幻觉”问题等,提升系统性能与用户体验,满足不同业务场景需求。
技术原理
- 基于向量数据库技术,如Milvus专为可扩展的相似性搜索打造,通过深度学习模型将非结构化数据转化为特征向量导入数据库,利用其分布式、多语言SDK支持等优势,实现高效的向量查询与处理。
应用场景
- 电商推荐系统:如唯品会基于Milvus搭建个性化推荐系统,提升查询速度和用户体验。
- 企业SaaS服务:点石科技借助Zilliz Cloud转型AI智能服务商,满足多租户及数据安全需求,实现高问答召回率,适用于智能客服、智能办公等场景。
- 唯品会使用 Milvus 搭建个性化推荐系统:性能提升 10 倍
- Zilliz Cloud 助力点石科技转型 AI 智能服务商
------------------------------------------------------------
2.milvus项目合集
简介
主要围绕技术项目展开,涉及Milvus相关的bootcamp项目,以及图像反向搜索的示例代码,还有多篇知乎文章从不同角度探讨了相关技术应用等内容。核心功能
涵盖处理如反向图像搜索、音频搜索、分子搜索、视频分析、问答系统、自然语言处理等非结构化数据,通过Milvus相关项目及示例展示如何构建各类人工智能应用。技术原理
暂未明确提及具体技术原理细节,推测可能涉及到向量搜索、全文搜索、混合搜索等技术,利用Milvus的相关功能来实现对不同类型数据的处理和应用。应用场景
- 图像反向搜索场景。
- 构建各种人工智能应用,如RAG、语义搜索、推荐系统等。
- milvus-io/bootcamp: Dealing with all unstructured data, such as reverse image search, audio search, molecular search, video analysis, question and answer systems, NLP, etc.
- examples/image/reverseimagesearch/1buildimagesearchengine.ipynb at main · towhee-io/examples · GitHub
- 10 行代码搞定以图搜图 - 知乎
- 从零到一,教你搭建「CLIP 以文搜图」搜索服务(一) - 知乎
- 从零到一,教你搭建「CLIP 以文搜图」搜索服务(二):5 分钟实现原型 - 知乎
- 企业级的以图搜图实战——milvus+minio+gradio+resnet - 知乎
------------------------------------------------------------
qdrant
简介
Qdrant 是一款高性能、大规模、开源的向量数据库和向量搜索引擎,专为下一代 AI 应用设计。它能够存储、索引和搜索高维向量,为语义搜索、推荐系统等提供强大支持,旨在处理海量数据并提供低延迟的向量相似性搜索服务。核心功能
- 高维向量存储与索引: 能够高效地存储和索引大量高维向量数据。
- 向量相似性搜索: 提供高性能的向量相似性搜索功能,支持快速查找相似向量。
- 语义搜索: 能够超越关键词匹配,通过向量嵌入实现文本的语义理解和搜索。
- 稀疏与密集向量支持: 兼容处理稀疏向量和常规密集向量,以优化特定搜索场景。
- 分布式部署: 支持分布式部署,实现高可用性、容错性和数十亿级向量的性能扩展。
- 多租户支持: 能够构建服务数百万用户的向量搜索应用。
技术原理
Qdrant 作为一款 AI 原生的向量数据库,其核心技术原理在于高效的向量相似性搜索算法和可扩展的架构。- 向量化: 将文本、图像等数据通过神经网络编码器转换为高维向量(嵌入)。
- 索引结构: 采用优化的数据结构和索引技术(如 HNSW 等近似最近邻算法)来加速大规模向量数据集上的相似性搜索。
- gRPC 接口: 提供高性能的 gRPC 接口,以实现快速的生产级搜索。
- 向量量化: 利用先进的向量量化技术,降低存储成本并提高搜索效率,同时保持查询精度。
- 分布式与多租户架构: 通过分布式部署支持横向扩展,满足大规模并发请求和数据存储需求;多租户机制则允许在同一集群中隔离和管理不同用户的向量数据。
应用场景
- 检索增强生成 (RAG): 为大型语言模型提供外部知识检索,增强生成内容的准确性和相关性。
- 推荐系统: 基于用户行为和物品特征向量,实现个性化推荐。
- 高级搜索: 实现超越传统关键词匹配的语义搜索功能,如产品搜索、内容发现。
- 数据分析与异常检测: 通过向量聚类和相似性分析,发现数据中的模式或异常。
- AI 智能体: 赋予 AI 智能体处理复杂任务、实时适应和驱动智能决策的能力。
- 问答系统: 通过语义匹配快速定位相关答案。
- Home - Qdrant
- qdrant/qdrant: Qdrant - High-performance, massive-scale Vector Database for the next generation of AI. Also available in the cloud https://cloud.qdrant.io/
------------------------------------------------------------
weaviate
简介
- 介绍了开源向量数据库Weaviate,包括其特点、适用人群、功能、工作原理、模块以及应用场景等内容。
核心功能
- 支持存储对象和向量,可结合向量搜索与结构化过滤。
- 提供GraphQL-API来轻松访问数据。
- 具备快速查询、摄入多种媒体类型、组合向量和标量搜索、实时和持久、水平可扩展、高可用性、成本效益高以及对象间图状连接等功能。
技术原理
- 所有数据对象基于类属性结构,向量表示每个数据对象,可连接数据对象并在向量空间中搜索。
- 通过RESTful API端点添加数据,通过GraphQL接口检索数据。
- 向量索引机制模块化,当前可用插件是分层可导航小世界(HNSW)多层图。
应用场景
- 适用于软件工程师、数据工程师、数据科学家等人群。
- 应用于语义搜索、图像搜索、相似性搜索、异常检测、推荐引擎、电子商务搜索、数据分类、自动化数据协调、网络安全威胁分析等场景。
- weaviate/weaviate: Weaviate is an open-source vector database that stores both objects and vectors, allowing for the combination of vector search with structured filtering with the fault tolerance and scalability of a cloud-native database.
- Introduction | Weaviate - Vector Database
------------------------------------------------------------
索引相关知识
简介
搜索框背后的Query理解和语义召回技术展开,介绍了知乎搜索的历史、面临的长尾化挑战及相应解决方法,涵盖Query Term Weight、同义词扩展、query改写、语义召回等方面的实践与优化。核心功能
通过一系列技术手段提升知乎搜索的召回质量,包括纠错、处理表达冗余、解决语义鸿沟等,以应对query词长尾化带来的挑战,提高用户搜索满意度。技术原理
- Query Term Weight:先以IDF逆文档频率计算,后从query粒度泛化到gram粒度统计权重,再发展为基于embedding的模型泛化方法,通过词向量运算预测词权重。
- 同义词扩展:利用用户搜索日志、点击日志、Doc的pretrain embedding及外部数据挖掘同义词,并用监督学习微调词向量空间。
- Query改写:将其视为同一种语言的翻译问题,用谷歌NMT结构的翻译模型,通过用户行为日志挖掘训练语料,经语言模型过滤、相关性过滤和确定切词粒度等步骤,还采用强化学习优化,添加价值网络缓解reward稀疏问题。
- 语义召回:把query和doc表示为向量,在向量空间做最近邻搜索,采用基于representation的深度语义模型,如用BERT模型分别做query和doc的encoder,通过pooling后的query doc cosine距离输出,并用pairwise损失函数训练模型,还进行了优化预训练模型和数据增强等操作。
应用场景
知乎问答社区平台的搜索场景,帮助用户更精准地找到相关问题和答案,提升搜索体验。- 怎样建立一个简单的倒排索引? - 知乎
- 【漫画】ES原理 必知必会的倒排索引和分词 - 知乎
- 推荐系统(3):倒排索引在召回中的应用 - 知乎
- 知乎搜索框背后的Query理解和语义召回技术
- 支撑亿级索引、5毫秒级的检索
召回
简介
- 主要围绕推荐算法架构中的召回模块展开,介绍了推荐算法总体架构,深入阐述了召回的多路召回方式、优化方法等内容。
核心功能
- 从推荐池中选取一定数量的item送给后续排序模块,在保证低延迟的同时,尽量不遗漏重要内容,通过多路召回实现,包括非个性化召回和个性化召回。
技术原理
- 多路召回:分为非个性化召回和个性化召回。非个性化召回有热门召回、高效率召回、运营策略召回等;个性化召回有基于内容的(如标签召回、知识图谱、多模态等)、基于行为的(userCF和itemCF,可通过矩阵分解MF优化)、基于特征的(线性模型如FM、FFM,深度模型如基于DNN的DSSM双塔等)。线上使用有向量检索和i2i倒排索引等方式。
- 召回优化:解决负样本构建问题,如借助模型、业务规则、in - batch、主动学习等构建hard negative sample;解决SSB问题,通过迁移学习或优化负样本采样等;缓解目标不一致问题,如百度Mobius引入CPM,阿里TDM重构检索过程;处理竞争问题,通过全链路优化召回和精排。
应用场景
- 广泛应用于各类互联网平台的推荐系统,如电商平台根据用户行为和商品特征推荐商品,短视频平台根据用户兴趣推荐视频等,帮助用户精准发现感兴趣的内容,提升平台流量和用户体验。
- 推荐算法架构——召回 - 腾讯云开发者社区-腾讯云
- 推荐系统主流召回方法综述
- 推荐场景中召回模型的演化过程
- 第四范式自动化推荐系统:搜索协同过滤中的交互函数
- 淘宝逛逛召回算法实践总结
- 阿里飞猪个性化推荐:召回篇
- 推荐系统(2):详解曝光去重实践
粗排
简介
围绕推荐系统展开,涵盖全民K歌推荐系统架构及粗排设计、EMBEDDING在大厂推荐场景中的工程化实践等内容。介绍了全民K歌推荐系统的架构、粗排模块算法及多样性调节算法;解读了YouTube、Airbnb、Alibaba在推荐系统中运用Embedding的工程经验,包括模型结构、特征处理、优化目标等方面。核心功能
- 全民K歌推荐系统:通过召回、粗排、精排和重排四个部分,实现多样化推荐场景,涵盖内容、直播、歌房、用户等多种形态。
- Embedding在推荐系统中的应用:在YouTube、Airbnb、Alibaba等公司的推荐系统中,Embedding用于处理用户和物品特征,进行相似性计算和推荐排序,提升推荐效果。
技术原理
- 全民K歌推荐系统:召回层从海量item中筛选用户可能感兴趣的内容,采用索引类、泛社交、模型等召回方法及内容比例筛选;粗排层将召回的作品筛选到千量级,用模型蒸馏等方法并控制生态;精排层根据千量级作品进一步精排到百量级,注重模型、特征、样本构造及多目标设计;重排层基于业务规则干预并考虑多样性打散。
- Embedding技术:基于负例采样的Skip-gram模型学习Embedding,通过构造序列、Embedding拼接、平均等方式处理数据,利用相似度计算进行推荐,可对目标函数优化,解决冷启动问题,通过物品相似性评估Embedding效果,还可迁移到其他场景。
应用场景
- 全民K歌:为用户提供基于内容、直播、歌房、用户等的多样化推荐,如优质UGC推荐、关注流推荐、同城社交推荐、直播推荐、点歌推荐、歌房推荐和点评推荐等。
- Embedding应用:在视频推荐(如YouTube)、短租平台房源推荐(如Airbnb)、电商推荐(如Alibaba)等场景中,通过Embedding技术实现精准推荐,包括相似物品推荐、个性化搜索推荐、新物品及新用户冷启动处理、跨领域和跨任务迁移等。
- 推荐算法架构——粗排 -
- 阿里粗排技术体系与最新进展
- 腾讯音乐:全民K歌推荐系统架构及粗排设计
- EMBEDDING 在大厂推荐场景中的工程化实践
精排
简介
围绕推荐算法架构中的精排以及排序学习展开。第一篇介绍精排涉及的样本、特征、模型三部分内容,包括样本不均衡问题及解决方法、多种特征类型及处理方式、精排模型的发展历程等;第二篇阐述排序学习的类别、框架、设计方法,以及推荐领域常用的BPR和LambdaMART算法;第三篇具体讲解BPR和LambdaMART算法的原理、流程等。核心功能
- 精排:对推荐算法中的精排模块进行剖析,通过处理样本、特征、模型三部分,实现对推荐结果的精准排序。
- 排序学习:利用机器学习技术解决排序问题,包括单点法、配对法、列表法等设计方法,以及BPR、LambdaMART等具体算法,可用于推荐领域的多路召回策略融合排序和多目标学习排序等。
技术原理
- 精排:
- 排序学习:
应用场景
- 精排:应用于推荐系统中对召回的物品进行精准排序,提高推荐的准确性和相关性。
- 排序学习:
------------------------------------------------------------
原理知识等
简介
围绕Learning to Rank(LTR)技术展开,介绍了排序模型的分类,包括基于相关度和重要性的排序。详细阐述了pointwise、pairwise、listwise三类排序方法的特点、经典模型、解决的问题及存在的缺陷,还提及了一些改进方法和常用的评估指标,如MAP、NDCG等,以及相关算法和工具的使用。核心功能
- 排序模型分类:将排序模型分为基于相关度和基于重要性两大类,重点介绍基于相关度的排序。
- L2R框架分类:根据L2R框架中输入空间、假设空间、输出空间、损失函数的差异,将L2R分为pointwise、pairwise、listwise三大类。
- 各类排序方法:pointwise类方法将排序任务转化为单个文本的回归或分类任务;pairwise类方法通过比较文档对的排序关系进行优化;listwise类方法直接优化整个文档列表的排序。
- 评估指标计算:介绍了MAP、NDCG、MRR、Rank Correlation等评估排序模型效果的指标及其计算方法。
- 相关算法与工具:如RankNet、LambdaRank、LambdaMART等排序算法,以及Ranklib开源工具的使用。
技术原理
- Pointwise方法:
- Pairwise方法:
- Listwise方法:
- 评估指标原理:
应用场景
- 信息检索:对召回的document进行排序,如搜索引擎根据用户查询对搜索结果排序。
- 推荐系统:基于用户历史行为进行“猜你喜欢”的个性化推荐排序。
- 广告投放:确定广告展示的顺序,优化广告投放效果。
- 学习排序 Learning to Rank:从 pointwise 和 pairwise 到 listwise,经典模型与优缺点TangowL的博客-CSDN博客pointwise listwise
- LTR (Learning to Rank): 排序算法 poitwise, pairwise, listwise常见方案总结ltr算法BGoodHabit的博客-CSDN博客
- 策略算法工程师之路-排序模型(LTR)及应用 - 知乎
- Learning to Rank(LTR, Pointwise,Pairwise,Listwise, NDCG, RankNet, ranklib)superchiry的博客-CSDN博客listwise ndcg
- 学习排序 Learning to Rank:从 pointwise 和 pairwise 到 listwise,经典模型与优缺点TangowL的博客-CSDN博客pointwise listwise
------------------------------------------------------------
重排
简介
围绕推荐算法架构中的重排展开。包括重排在解决用户体验、算法效率、流量调控方面的作用,以及快手短视频推荐系统中重排技术环节的演进过程,如序列重排、多元内容混排、端上重排等内容。核心功能
- 解决推荐系统中用户体验、算法效率、流量调控等问题。
- 快手短视频推荐系统中,通过序列重排、多元内容混排、端上重排等技术,提升推荐效果和用户体验。
技术原理
- 基于规则或embedding进行打散,防止用户疲劳和系统过度个性化。
- 多任务融合通过人工调权、grid search、LTR或者强化学习等方式,在重排阶段融合精排输出的多个任务分数。
- 上下文感知采用pairwise和listwise等方式,考虑序列中item的前后关系,提升推荐整体算法效率。
- 实时性提升通过在线学习ODL和端上重排等方法,实现重排模型实时更新,提升推荐的实时响应和特征的实时捕获。
- 流量调控兼顾实时性和准确性,通过保量类和调权类等方法,对冷启item、新热item等给予保量流量,或对特定item进行加权。
应用场景
- 各类推荐系统,如短视频、电商、资讯等。
- 快手短视频推荐系统,用于优化推荐序列,提升用户体验和业务指标。
- 推荐系统全链路(4):打压保送重排策略-拍不完的脑袋 - 知乎
- 推荐算法架构——重排 - 腾讯云开发者社区-腾讯云
- 重排序在快手短视频推荐系统中的演进
国内搜索系统
简介
- 介绍了达观智能搜索平台,它基于多种AI能力构建智能语义搜索引擎,具备智能内容分析、搜索服务、展现及管理等功能,可助力企业搜索场景数字化升级。阿里云的智能开放搜索OpenSearch,这是一站式智能搜索业务开发平台,能为开发者提供多种服务来搭建智能搜索服务。
核心功能
- 达观智能搜索平台可整合多数据源,通过AI挖掘数据价值,提供八大服务和四大应用实现口语级语义搜索,结合知识图谱多样化展示结果,还有完备后台管理工具。OpenSearch则能让用户灵活调用多模态数据解析等组件化服务,实现智能搜索等场景搭建,提供多种版本以满足不同需求。
技术原理
- 达观智能搜索平台运用自然语言处理NLP、知识图谱、文字识别OCR等技术,集成丰富接口对接各类数据,通过对数据的处理和分析实现各项功能。OpenSearch基于阿里巴巴自主研发的大规模分布式搜索引擎,内置多种行业相关的算法模型、服务组件等,利用这些来达成不同场景下的智能搜索业务开发。
应用场景
- 达观智能搜索平台适用于企业级全文搜索、垂直搜索、图谱搜索等场景,助力企业数字化升级,如在智能银行、证券等解决方案中应用。OpenSearch可用于电商商品及店铺搜索、内容资讯搜索、游戏行业搜索、多媒体搜索、大数据检索等场景,为不同行业提供检索增强生成等服务。
- 智能搜索,企业级搜索,语义搜索,垂直搜索,图谱搜索-达观
- 智能开放搜索 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训练包含检索器、批判器和生成器三个模型,通过学习生成反射标记实现自适应检索、生成和批判,在推理阶段可根据不同任务需求调整模型行为。
应用场景
- 适用于各种需要大语言模型的场景,如问答系统、信息检索、文本生成等,可提升这些应用的性能和效果。 可用于多种自然语言处理任务,如开放域问答、推理、事实验证等,在长文本生成中提高事实性和引用准确性。
- 检索增强生成 (RAG)
- Self-RAG: Learning to Retrieve, Generate and Critique through Self-Reflection
推荐算法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),具体实现细节需参考相关论文及代码。
应用场景
- rater:可用于电商、视频、音乐等各类推荐场景,帮助企业或研究人员快速对比不同推荐模型效果,选择最优方案。
- RecAlgorithm:适用于各种需要进行推荐排序的业务场景,如广告投放、内容推荐、商品推荐等。
- luyaohuiwidedeepautofisdeepfmcreditrisk:专门应用于网络个人信用贷款违约风险预测领域,为金融机构评估贷款风险提供支持 。
- 推荐模型,包括:DeepFM,Wide&Deep,DIN,DeepWalk,Node2Vec等模型实现,开箱即用。
- 主流推荐系统Rank算法的实现
- 网络个人信用贷款违约风险预测研究 —基于改进的Wide&Deep论文代码实现