Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Search 以多维向量形式表示的文档的高效检索_Search_Deep Learning_Nlp_Information Retrieval - Fatal编程技术网

Search 以多维向量形式表示的文档的高效检索

Search 以多维向量形式表示的文档的高效检索,search,deep-learning,nlp,information-retrieval,Search,Deep Learning,Nlp,Information Retrieval,我已经为信息检索训练了一个基于深度神经网络的模型。最后,我的模型以128维向量的形式表示文档。文档的语义表示类似于单词的单词嵌入表示(word2vec算法)。当我给我的模型提供一个查询时,它也在相同的128维向量空间中表示查询。现在,从整个向量空间中,我想检索与同一向量空间中表示的查询向量最接近的前k个文档 相似性度量为余弦相似性,定义如下: sim(Q, D) = np.dot(Q.T, D)/(np.linalg.norm(Q) * np.linalg.norm(D)) 其中,sim(Q,

我已经为信息检索训练了一个基于深度神经网络的模型。最后,我的模型以128维向量的形式表示文档。文档的语义表示类似于单词的单词嵌入表示(word2vec算法)。当我给我的模型提供一个查询时,它也在相同的128维向量空间中表示查询。现在,从整个向量空间中,我想检索与同一向量空间中表示的查询向量最接近的前k个文档

相似性度量为余弦相似性,定义如下:

sim(Q, D) = np.dot(Q.T, D)/(np.linalg.norm(Q) * np.linalg.norm(D))
其中,
sim(Q,D)
表示查询Q和文档D之间的相似性。简单地说,它是查询和文档的单位向量的点积

现在我有大约3600万个文档,所以计算所有文档的余弦相似度并对它们进行排序对于高效检索来说不是一个可行的选择。我想高效地搜索在同一个128维向量空间中表示的任何查询向量的最相似的k文档

使用近似最近邻(ANN)搜索库,例如。这些库允许您为密集向量编制索引,并在给定查询的情况下检索此类索引向量的列表。可以找到ipython笔记本的一些示例

你可以使用图书馆。它有一个很好的文档,并且已经在很多项目中使用。Faiss是用C++编写的,具有完整的Python/NuMPy封装。