美文网首页
ES7.3支持语义句向量查询

ES7.3支持语义句向量查询

作者: xiiatuuo | 来源:发表于2019-10-14 20:33 被阅读0次

    原文:Text similarity search with vector fields

    ES7.3的新功能

    基于文本embedding技术,Text similarity search可以用于Question-answering、image search,在ES中新增了一个dense_vector

    什么是embedding

    • word embedding:word2vec and GloVe.

    • sentence embedding:InferSent, Universal Sentence Encoder, ELMo,and BERT.

    • 优点
      1)可以跨越词法而获取语义相似,比如"zipping up files" returns "Compressing / Decompressing Folders & Files",顺序不同的相同词意义可能完全不一样
      2)稠密低维度

    • 缺点
      对于长文本句向量效果并不是很好,一般在短文本上使用

    如何在es中使用embedding进行相似度检索

    • 索引
      显式声明为dense_vector并且维度好像就可以了,似乎不能像分词插件hanlp一样直接把model直接嵌入到ES中?
      "title_vector": {
          "type": "dense_vector",
          "dims": 512
        }
    
    • 语法
    {
      "script_score": {
        "query": {"match_all": {}},
        "script": {
          "source": "cosineSimilarity(params.query_vector, doc['title_vector']) + 1.0",
          "params": {"query_vector": query_vector}
        }
      }
    }
    

    局限

    • 效率:全部计算目前几乎是不可行的,效率太低,目前还在优化,建议先用一些别的query条件进行初选
    • 效果:语义向量本来可能会出现一些badcase,不太好解决。

    相关文章

      网友评论

          本文标题:ES7.3支持语义句向量查询

          本文链接:https://www.haomeiwen.com/subject/anddmctx.html