在本节中,你将了解另一种机器学习搜索方法,该方法利用 Elastic Learned Sparse EncodeR 模型或 ELSER,这是一种由 Elastic 训练来执行语义搜索的自然语言处理模型。这是继之前的文章 “Elasticsearch:Search tutorial - 使用 Python 进行搜索 (三)” 的续篇。ELSER 模型在上一章中,您了解了如何使用由机器学习模型生成的嵌            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-06 21:19:53
                            
                                84阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Elastic Stack 机器学习功能可以生成嵌入(embeddings),你可以使用它在非结构化文本中搜索或比较不同的文本片段。传统上,我们在搜索文本的时候,更加倾向于把文字进行分词,然后再对 token 进行比对:在上面,我们在文字中完全或部分匹配分词后的 token,从而完成我们的文字搜索。随着机器学习的出现,我们甚至可以直接在文字中直接使用 “问-答” 这样的方式进行搜索,比如:在这种情            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-17 13:09:55
                            
                                51阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            faiss是为稠密向量提供高效相似度搜索和聚类的框架,一下是官网提供的demo# 1. 首先构建训练数据和测试数据
import numpy as np
d = 64  # dimension
nb = 100000  # database size
nq = 10000  # nb of queries
np.random.seed(1024)  # make reproduciable
xb            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-13 01:40:37
                            
                                121阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            IVF-PQ 基于量化的向量检索算法IVF-PQ 基于量化的向量检索算法 文章目录IVF-PQ 基于量化的向量检索算法一、PQ是什么?Faiss是什么Produce Quantizer(乘积量化)Clustering:AssignPQ-search:二、IVF-PQ是什么?总结  hnsw、kd树等检索算法对底库中数据进行检索。kd树不适合维度高的数据,哈希(LSH)使用中小数据集,目前比较通用的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-10-14 07:43:53
                            
                                147阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            作者:康凯森本文是对我在 StarRocks 线下 MeetUp 演讲的整理,主要分为三部分:第一部分简要介绍向量化的基础知识,第二部分讲解数据库如何进行向量化,最后是 StarRocks 向量化实践后的一些粗浅思考。#01向量化为什么可以提升数据库性能?—本文所讨论的数据库都是基于 CPU 架构的,数据库向量化一般指的都是基于 CPU 的向量化,因此数据库性能优化的本质在于:一个基于 CPU 的            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-02-04 07:16:52
                            
                                235阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Word2Vec单词向量化是一个估算器,将文档转换成一个按照固定顺序排列的单词序列,然后,训练成一个Word2VecModel单词向量化的模型,该模型将每个单词映射成一个唯一性的、固定大小的向量集,对每个文档的所有单词进行平均,将文档转换成一个向量集,该向量集可以作为预测的特征集、用于计算文档的相似性,或者其他文本处理领域。代码示例如上所示,data是定义了三行记录的文档数据集,schema定义了            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-25 22:45:54
                            
                                93阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            需求:有800万的中文词向量,要查询其中任意一个词向量对应的k个与其最邻近的向量。通常情况下如果向量集比较小的话,几十万个向量(几个G这种),我们都可以用gensim的word2vec来查找,但是880万词向量有16个G,加到内存中就爆炸了,而且gensim中的查找属于暴力搜索,即全都遍历比较余弦相似度来进行查找,因此几百万量级的词向量查找起来就很慢了。这里我需要用更快速的工具来进行查找,找到了两            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-15 14:33:15
                            
                                104阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、scalascala是一种基于JVM的面向对象的函数编程,scala编程相对于java而言代码整洁、开发效率更高。其中scala优点主要有:1:面向对象,可以定义class,通过new调用实例对象使用。2:兼容java,在scala中可以直接调用java方法。2:函数式编程,柯里化函数,匿名函数,高阶函数等。3:代码行简单。4:支持并发控制,Actor Model机制5:目前比较流行的kafk            
                
         
            
            
            
            1. 概述不管是搜索系统还是推荐系统中,向量召回都是一个不可或缺的一个部分,担负着重要的作用。为应对大规模数据问题,通常采用多阶段的架构,分为召回,粗排,精排,重排等多个            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-06-14 21:02:35
                            
                                251阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            高维数据检索:基于近邻图的近似最近邻搜索算法实验综述导言向量检索是很多 AI 应用必不可少的基础模块。近年来,学术界和工业界提出了很多优秀的基于近邻图的ANNS 算法以及相关优化,以应对高维向量的检索问题。但是针对这些算法,目前缺乏统一的实验评估和比较分析。为了优化算法设计、进一步落地工业应用,我们完成了论文《A Comprehensive Survey and Experimental Comp            
                
         
            
            
            
            Spark的Parquet向量化读取原理测试过程中,发现一个spark的一个参数设置可以带来5倍以上的性能差异参数: spark.sql.parquet.enableVectorizedReader一条SQL的运行结果对比:参数设置为true运行时间22s,设置为false运行时间5.4min。好奇什么样的差异能带来如此大的性能提升,因此接触到一个新的名词——向量化计算什么是向量化搜索引擎搜索“向            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-04 13:23:13
                            
                                161阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            这下面的练习中,需要自己将spark的jar包 添加进来。1.spark Mlib 底层使用的向量、矩阵运算使用了Breeze库。scalaNLP 是一套 机器学习和数值技算的库。它主要是关于科学技术(sc)、机器学习(ML)和自然语言处理(NLP)的。它包括三个库,Breeze、Epic 和 Puck。Breeze :是机器学习和数值技术库 ,它是sparkMlib的核心,包括线性代数、数值技术            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-10 16:05:25
                            
                                145阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            ES 如何实现向量搜索在 ES 的使用过程中,通过设置分词器可以灵活地按照文本字面实现搜索和查询。但是在某些场景下,向量搜索非常有必要,比如 CV 方面的以图搜图和 NLP 领域的语义搜索。较新的 ES 版本支持稠密向量搜索,详情如下。相关片段设置重在强调特定的关键点,需要根据自己具体使用的工具或方式进行改动或设置。设置 mappings此处重点就是 “dense_vector” 的 type 设            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-01-03 12:35:24
                            
                                175阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、SVM(线性可分定义)线性可分(Linear Separable)线性不可分(Nonlinear Separable)特征空间维度>=四维 ----  超平面(Hyperplane)假设 我们有N个训练样本和他们的标签在二分类情况下,如果一个数据集是线性可分的,即存在一个超平面将两个类别完全分开,那么一定存在无数多个超平面将这两个类别完全分开。向量偏导定义:二、SVM(问题描述)支持向量            
                
         
            
            
            
            一:算法目标annoy 算法的目标是建立一个数据结构能够在较短的时间内找到任何查询点的最近点,在精度允许的条件下通过牺牲准确率来换取比暴力搜索要快的多的搜索速度。二:算法流程1:建立索引Annoy的目标是建立一个数据结构,使得查询一个点的最近邻点的时间复杂度是次线性。Annoy 通过建立一个二叉树来使得每个点查找时间复杂度是O(log n)。 看下面这个图,随机选择两个点,以这两个节点为初始中心节            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-02 22:11:53
                            
                                278阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            import org.apache.spark.util._val paramatrix1 = sc.parallelize(List(Vector(2, 2, 4), Vector(3, 2, 1), Vector(1, 3, 2)))//首先,在spark shell中将一个矩阵按照行进行并行化,val vec1 =Vector(1,2,4)//定义一个向量val m1=parama            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-08 14:51:20
                            
                                135阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            摘要近年来,随着深度学习在图像、自然语言处理等领域的蓬勃发展,越来越多的工业界搜索和推荐系统将大规模深度学习应用到真实的业务中。一般来说业务的搜索系统由多阶段(召回-粗排-精排-重排等)组成,而召回决定了搜索性能的上限。区别于网页搜索,电商搜索的召回除需要满足用户基本的搜索相关性需求外,还需要尽可能展现给用户对特点品牌、风格、价格等的个性化商品。然而传统的基于倒排索引的召回机制难以将用户个性化行为            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-05-28 19:52:11
                            
                                488阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            向量搜索在最新的 Elasticsearch 的发布版中有很多新的提高。在我之前的文章:Elasticsearch:使用向量搜索来查询及比较文字 - NLP text embeddingElasticsearch:使用向量搜索来搜索图片及文字有详细的应用案例介绍。究其本质它使用了向量搜索。它首先把我们想要搜索的字段进行向量化,然后在搜索时再对搜索的词也进行向量化。通过对向量的搜索,我们可以找出最匹            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-04-26 14:55:22
                            
                                399阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            这篇文章有点深度,可能需要一些Lucene或者全文检索的背景。由于我也很久没有看过Lucene了,有些地方理解的不对还请多多指正。 关于Term Vectors额,对于这个专业词汇,暂且就叫做词条向量吧,因为实在想不出什么标准的翻译。说的土一点,也可以理解为关于词的一些统计信息。再说的通俗点,如果想进行全文检索,即从一个词搜索与它相关的文档,总得有个什么记录的信息吧!这就是Term Vectors            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-08-29 19:55:50
                            
                                119阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Numpy是一个Python的科学计算库。它提供了高性能多位计算对象,并且对其提供了大量对象。如果你对Matlab比较熟悉,那么这个文档对你是有帮助的。向量一个numpy向量是一系列相同类型的并且被一切非负的整数索引。维数就是向量的排名,一个向量的形式就是一个整数的元组在每一维数上给予一个大小。  我们可以从python的lists中初始化numpy向量,并且用方括号来访问对象:import nu            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-10-01 16:23:50
                            
                                242阅读