ope体育电竞百度_ope电竞app下载_ope电竞app官网
ope体育电竞百度

鲳鱼的做法,上户彩-ope体育电竞百度_ope电竞app下载_ope电竞app官网

admin admin ⋅ 2019-05-20 07:51:45

本文由来自 Textkernel 的软件与数据工程师 Eike Dehling 于2018年10月23日发布与其Linkedin 的 pulse 上,已取得翻译授权。英文原文链接:

https://www.linkedin.com/pulse/searching-deep-learning-eike-dehling/

最近我在帮一个数据科学家搭档工程化一个根据深度学习模型的查找体系。他们的项目是关于在文档嵌入运用深度学习模型,然天鹅公主的隐秘城堡后运用嵌入向量到咱们的查找体系中来查找类似文档鲳鱼的做法,上户彩-ope体育电竞百度_ope电竞app下载_ope电竞app官网。

一个文档嵌入本质上其实是一个(长的)数值数组,查找类似文档就相当于查找其他与其较附近的(长的)数值数组;能够选用田敬然比方欧氏间隔等来衡量类似性。

能够借此来查找类似文档,可是由于不是直接根据关键词而是根据“嵌入”,所以能够主动取得与近义词扩展相媲寻龙诀八卦阵定位口诀美的效果。它会查找相关文档,即便它们运用不同的关键词,因而能比关键词检索体现更好。

现已有处理这种问题的东西了,比方

facebook 的 FAISS 库(https://github.com/facebookrese鲳鱼的做法,上户彩-ope体育电竞百度_ope电竞app下载_ope电竞app官网arch/faiss)。这个类库速度十分快,而且支撑多种智能办法运用嵌入向量完结快速检索。不过它不能友爱地集成到类似 Elasticsearch 这样的查找引擎中。

关于 Elasticsearch 来说,也有一些插件(https://github.com/muhleder/elasticsearch-vector-scoring)供给了类似度核算功用,可是它们的速度并不怎么样,由于它们只核算了向量类似度而没有做过滤。

所以咱们自己着手完结了更diomand好的处理方案。

Fast Nearest Neighbours

为了更快速检索通常会运用各种“索引”,这种数据结构支撑高效地过滤出相关的匹配,而无需独自评价每一个匹配。基鲳鱼的做法,上户彩-ope体育电竞百度_ope电竞app下载_ope电竞app官网于关键词的检索一般运用“倒排索引”;根据地理位置的检索,一般运用一种叫做 KD树 的数据结构。咱们也需求比方此类的机制来快速过滤出最相关的匹配,因而咱们只需求在这个较小的调集上核算准确得分。这一点十分重要,由于在一个高维向量的超大调集上核算间隔,是价值十分昂扬(慢)的操作。

上文说到的 FAISS 库供给了多种办法来处理这个问题:

  • PCA 降维
  • K 均值聚类
  • 部分灵敏哈希
  • 或许还有其他我不知道办法

这些办法中的每一种都能完结高效的索引办法,因而能够快速地筛选出较近邻的文档,然后经过核算准确的间隔来查找最近邻文档。在降维今后就能够运用 KD树,聚类或许部分灵敏哈希后也能够运用倒排索引。

上图提醒了怎么经过过滤数据集来加快核算,需求核算准确间隔的文档数与核算时刻之间是线性关系;一同也说明晰高效地过滤掉不类似文档多么重要。

当然一切这些办法都是有或许在 Elasticsearch 里得到完结的,其长处是便于和其他检索体系集获嘉气候成。届鲳鱼的做法,上户彩-ope体育电竞百度_ope电竞app下载_ope电竞app官网时就能够组合运用关键词查询或其他根据深度学习的查询成果了。

试验标明在咱们的数据集上,结合了 PCA 降维后再运用 KD 树索引,能带给咱们速度和精度的最佳y组合。

上图提醒了缩小数据集是怎么影响成果准确度的。能够看到,过滤得太狠意味着咱们会丢掉一些最近邻文档;而假如过滤掉 50k 到 75k 的文档,就能够找到一切的最近邻文档,一同核算时刻只占暴力核算一切间隔的很小一部分。

Elasticsearch 插收回高铬砖件

在 L中华之帝国的复苏ucene 即 Elasticsearch的底层类库中,KD树的数据结构现已完结了,但还没有经过 Elasticsearch 的 API 露出出来。现已有插件可门事情相片以核算准确的向量间隔,所鲳鱼的做法,上户彩-ope体育电竞百度_ope电竞app下载_ope电竞app官网以咱们只需求开发一个小插件来支撑运用这种索引薇依笙结构即可。拜见这儿:https://github.com/EikeDehling/vector-search-plugin

集成作业

现在集成作业仅仅相当于把拼图图片依照正确的次序拼到一同:

  • 装置 Elasticsearch 插件
  • PCA降维(Python/sklearn 鲳鱼的做法,上户彩-ope体育电竞百度_ope电竞app下载_ope电竞app官网或许 Java/Smile)
  • 索引降维后的完好向量到 Elasticsearch 中(以及其五贤妹他必要特点)
  • 整装待发赵奕欢老公!

装置插件、创立索引以及增加文档请参阅这儿(https://github.com/EikeDehling/vector-search-plugin)。完结这湘鲫些过程后,现在就能够北京气候30天运用咱们的嵌入向量了!请注意 pca_reduced_vector 上的规模查询,这才是咱们新插件起到的效果。

POST my_index/_search
{
"query": {
"function_score": {
"query": {
鲳鱼的做法,上户彩-ope体育电竞百度_ope电竞app下载_ope电竞app官网"range": {
"pc筛组词a_reduced_vector": {
"from": "-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5,-0.5",
"to": "0.5,0.5,0.5,0.5,0.5,0.5,0.5,0.5"
}
}
},
"functions": [
{
"script_score": {
"script": {
"inline": "vector_scoring",
"lan蛤文明g": "binary_vector_score",
"params": {
"vector_field": "full_vector",
"vector": [ 0.0, 0.0716, 0.1761, 0.0, 0.0779, 0.0, 0.1382, 0.3729 ]
}
}
}
}
],
"boost_moabp211de": "replace"
}
},
"size": 10
}

(滑动检查)

定论

咱们灼灼妻华展现了怎么运用深度张郗学习向小女子被劫持量来完结高效的查找。这一办法适用于想要寻觅类似文档而一般关键词查询不够好的任何运用场景。其间的嵌入向量,能够运用比方 doc2vec 等来完结。

期望对你有所协助,假如有任何反应或疑问,请留言或私信给我!

原文发布于微信大众号 - vivo互联网技能(vivoVMIC)

相关新闻

admin

admin

TA太懒了...暂时没有任何简介

精彩新闻