• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Milvus+ERNIE+SimCSE+In-batch Negatives样本策略的学术文献语义检索系统

武飞扬头像
汀丶人工智能
帮助1

基于Milvus ERNIE SimCSE In-batch Negatives样本策略的学术文献语义检索系统

0.前言

语义索引(可通俗理解为向量索引)技术是搜索引擎、推荐系统、广告系统在召回阶段的核心技术之一。语义索引模型的目标是:给定输入文本,模型可以从海量候选召回库中快速、准确地召回一批语义相关文本。语义索引模型的效果直接决定了语义相关的物料能否被成功召回进入系统参与上层排序,从基础层面影响整个系统的效果。

0.1 为什么说语义搜索很重要?

  • 尽管有无数的变量在起作用,但是语义搜索的原理,为什么需要它,以及它如何被影响,是很容易理解的。
    • 用户使用的语言往往与所需内容不一样
    • 很多搜索都在无意中产生歧义
    • 了解词汇层级和实体关系的需要
    • 反映个人兴趣和趋势的需要

0.1.1用户使用的语言往往与所需内容不一样:

更糟糕的是,我们有时甚至不知道如何正确表达我们想搜索的是什么。比方说,你在电台里听到了一首陌生的歌曲。你喜欢它,于是开始在Google上随机搜索歌词,直到你终于找到它为止。再增加一点复杂程度的话,将你在Google中输入的内容与对Siri,Alexa或Google智能助理的输入内容进行比较。 现在,关键字就变成了对话。表达同一个想法的方式太多了,搜索引擎需要处理所有这些方式。 搜索引擎需要能够根据两者的意义,将其索引中的内容与你的搜索查询进行匹配。

0.1.2 很多搜索都在无意中产生歧义,

大约40%的英语单词是多义词——它们有两个或更多的含义。这可以说是语义搜索要解决的最重大的挑战。例如,仅在美国,关键词 “python “的月搜索量就有53.3万次:

学新通

如果我曾经搜索过 “python”,我很可能指的是编程语言。但科技行业以外的人很可能会想到真正的蟒蛇,或者是传奇的英国喜剧团。这里的问题是,如果没有上下文,单词很少有明确的含义。在多义词的基础上,有无数的名词也可以同时是形容词,动词,或者两者兼而有之。而且我们还只是在谈论字面意思的范畴。如果我们深入研究其推论的话(譬如讽刺的时候),就会变得更加有趣。在语义学中,语境就是一切,这将为我们引出了接下来的两点。

0.1.3 了解词汇层级和实体关系的需要

让我们来看看以下的搜索查询和热门搜索结果:

学新通

这确实非常厉害了。 以下是Google理解此查询必须要做的:

  • 它要知道“伴侣 “是指妻子/女友/丈夫/男友/配偶。
  • 了解到欧比王出现在多部电影和连续剧中,由不同的演员扮演。
  • 建立联系。
  • 以反映“欧比王”有歧义的方式来显示搜索结果。

词汇层级说明了单词之间的关系。 伴侣这个词对妻子,男友,配偶和其他词来说是上一级的(上位词)。

如前所述,我们的查询通常与所需内容的确切词组不匹配。 知道“负担得起”是介于便宜,中档和合理价格之间的任何事物,这一点至关重要。在此示例中,实体是电影和连续剧中的角色(欧比王),具有特定工作的人(演员)以及与之相关联的人(伴侣)。 通常,实体是可以明确识别的对象或概念-通常是人,地点和事物。

如果所有的这些语言的复杂性还不够的话,我们还必须再深入一些。

0.1.4 反映个人兴趣和趋势的需要

让我们回到“python”的例子。如果我搜索这个词,确实会得到所有与编程语言相关的结果。

无论我们多么不喜欢任何使用我们个人数据的方式,至少这对搜索引擎来说是有用的。Google结合了有限的数据和你的搜索历史,以提供更准确和个性化的搜索结果。我们都知道这一点。只要在搜索栏中输入任何类型的服务,你就会得到本地化的结果。

学新通

但更吸引人的是,谷歌能够根据动态变化的搜索意图临时调整搜索结果。

例如,冠状病毒不是一个新名词。 它一直是一组病毒的名称。 但众所周知,搜索意图在2020年初迅速改变。人们开始寻找有关特定冠状病毒(SARS-CoV‑2)的信息,因此必须对SERP进行相应的调整。

学新通

在召回阶段,最常见的方式是通过双塔模型,学习Document(简写为Doc)的向量表示,对Doc端建立索引,用ANN召回。我们在这种方式的基础上,引入语义索引策略 In-batch Negatives,以如下Batch size=4的训练数据为例:

我手机丢了,我想换个手机     我想买个新手机,求推荐
学日语软件手机上的          手机学日语的软件
侠盗飞车罪恶都市怎样改车     侠盗飞车罪恶都市怎么改车

In-batch Negatives 策略的训练数据为语义相似的 Pair 对,策略核心是在 1 个 Batch 内同时基于 N 个负例进行梯度更新,将Batch 内除自身之外其它所有 Source Text 的相似文本 Target Text 作为负例,例如: 上例中“我手机丢了,我想换个手机” 有 1 个正例(”我想买个新手机,求推荐“),2 个负例(1.手机学日语的软件,2.侠盗飞车罪恶都市怎么改车)。

0.2 哪些Google技术在语义搜索的工作方式中发挥了作用?

  • 知识图谱
  • 蜂鸟算法
  • RankBrain算法
  • BERT模型(大模型)
  • chatgpt

0.2.1 知识图谱

Google的知识图谱于2012年发布,是实体及实体之间关系的知识库。你可以想象它的样子大概是这样的-——但实际上有50亿个实体:

学新通

简而言之,这是一项启动并实现了从关键字匹配到语义匹配转变的技术。向知识图谱提供信息的方法主要有两种:

  • 结构化数据(稍后详述)
  • 从文本中提取实体

对于第二点,搜索引擎需要理解自然语言。这时候,下面三个算法的更新就会发挥作用。

0.2.2 蜂鸟算法

早在2013年,Google推出了一个名为Hummingbird(蜂鸟)的搜索算法,以返回更好的搜索结果。 这个算法尤其有助于应对复杂的搜索查询。蜂鸟算法是第一个重大更新,它更加强调搜索请求背后的意图,而非单个关键词。 它极速催化了“为话题而创作内容”的热潮,而不是“为单个关键词而写作”。

0.2.3 RankBrain算法

如果你曾经遇到过“潜在语义索引”或LSI关键词这一短语,可以忽略这个了。 Google用RankBrain算法解决了LSI产生的问题。而我们前面已经讨论过这个问题。是关于搜索请求中所使用的语言和所需内容之间的不匹配。Google的RankBrain采用了优于LSI的技术。通俗地说,通过使用复杂的机器学习算法,RankBrain甚至可以理解不熟悉的单词和短语的含义。而考虑到15%的搜索请求都是新的,这可是一项巨大的工程。我们可以认为RankBrain是蜂鸟算法的升级版,而不是一个独立的搜索算法。它是最强的排名信号之一,但你能主动为其做出的优化,也就只有满足搜索意图了。

0.2.4 BERT模型(大模型)

基于Transformer的双向编码器表示(BERT)这一自然语言表示模型,是对语义搜索运作方式的最新的重大升级。自2019年底以来,它影响了大约10%的查询。BERT可以提高对长而复杂的句子以及查询的理解。它是一种处理歧义和细微差别的解决方案,因为它力图更好地理解单词的上下文。

0.2.5 chatgpt

ChatGPT是美国人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接大量的语料库来训练模型,这些语料库包含了真实世界中的对话,使得ChatGPT具备上知天文下知地理,还能根据聊天的上下文进行互动的能力,做到与真正人类几乎无异的聊天场景进行交流。ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

结合ChatGPT的底层技术逻辑,有媒体曾列出了中短期内ChatGPT的潜在产业化方向:归纳性的文字类工作、代码开发相关工作、图像生成领域、智能客服类工作。

  • 核心竞争力

ChatGPT受到关注的重要原因是引入新技术RLHF (Reinforcement Learning with Human Feedback,即基于人类反馈的强化学习)。RLHF 解决了生成模型的一个核心问题,即如何让人工智能模型的产出和人类的常识、认知、需求、价值观保持一致。ChatGPT是AIGC(AI- Generated Content,人工智能生成内容)技术进展的成果。**该模型能够促进利用人工智能进行内容创作、提升内容生产效率与丰富度。 **

  • 技术局限性

ChatGPT 的使用上还有局限性,模型仍有优化空间。ChatGPT模型的能力上限是由奖励模型决定,该模型需要巨量的语料来拟合真实世界,对标注员的工作量以及综合素质要求较高。ChatGPT可能会出现创造不存在的知识,或者主观猜测提问者的意图等问题,模型的优化将是一个持续的过程。若AI技术迭代不及预期,NLP模型优化受限,则相关产业发展进度会受到影响。此外,ChatGPT盈利模式尚处于探索阶段,后续商业化落地进展有待观察。

0.3 如何进行搜索引擎优化?

“SEO是指搜索引擎优化。全称为(Search Engine Optimization),是一种利用搜索引擎的规则提高网站在有关搜索引擎内自然排名的方式。目的是让其在行业内占据领先地位,获得品牌收益。

0.3.1 目标主题,而非关键词

在过去的SEO时代,你可以用关于同一主题的独立内容来获得高排名,但这里面定位的关键词会略有不同,如关键词:

  • open graph tags
  • open graph meta tags
  • og meta tags
  • open graph tag
  • what is open graph
  • facebook open graph tags

现在的情况已经不是这样了。Google现在明白,所有这些关键词搜索的意思都大同小异,并为所有这些搜索去排名基本相同的页面。在创建内容时要牢记这一点。我们的目的不再是只为一个关键词排名,而是要深入地探讨一个主题,这样Google才会为你的页面排名很多类似的长尾关键词。例如,我们关于Open Graph(开放图谱)元标签的文章在好几百个关键词中排名很好。其中很多是搜索同一事物的不同方式,但有些是 “og:title”、“og url “和 “og:image “这样的子话题。我们之所以能够在这些关键词下获得排名,是因为我们写了一篇关于这个主题的深度文章,而不仅仅是关于一个关键词。

想知道可以写些什么子话题的话,这里有个不错的办法:在这份报告里找到这个话题下的热门页面。例如,假设您想写一篇有关种植芦笋的文章。 如果将“种植芦笋”的排名靠前页面放到Ahrefs的网站分析并查看其自然搜索关键词报告,就会看到这个页面在这些关键词下都获得了排名,其中包括:

  • 芦笋需要种植多深
  • 芦笋种植条件
  • 什么时候种植芦笋
  • 芦笋的最佳种植地
  • 如何收割芦笋
  • 如何护理芦笋

如果你想通过创作一篇深度的贴文来获取尽可能多的自然流量,那么所有这些子话题都会是你应该提及的。不过要小心。 针对特定主题并不意味着你应该涵盖与该主题相关的所有内容,也不必太深入。

0.3.2评估搜索意图

你还是可以围绕某个主题来发布内容,即使这个主题是不符合搜索意图的。

假设你是一名营销数据极客,发现了“SEO报告”这个不错的话题。 自然地,你会希望分享制作最佳SEO报告所需要的东西。 因此,你会想到“利用搜索请求来创建最佳SEO报告”之类的内容。 确实,这可能是最终能造就最佳SEO报告的内容。 但是,大多数搜索此主题的人不熟悉许多Google表格功能。 他们只是想找到一些可以帮助他们完成工作的工具:

学新通

参考文章:搜索意图: 一个十分重要又经常被忽略的“排名要素”

0.3.3. 使用语义HTML

在我们还没法用上语义搜索的时候,我们不得已要转向语义网(Sematic Web)。 万维网(www)的原始概念可以解释为没有明确含义的、标准化的、互相链接的文档。 然而现在,显然我们需要“含义”。 这得从你的基本HTML开始说起。我们先来比较以下的HTML元素:

学新通

语义HTML为代码增加了含义,因此机器可以识别导航模块,页眉,页脚,表格或视频。HTML5则提供了最多的语义元素,大多数现代CMS主题都会使用这些元素。如果你还没有的话,通常一个插件就可以添加好。但是语义HTML仍然非常有限。 虽然它有指示出来:“这是一个表格,这是一个页脚”,但它没办法实际内容的含义。这就是为什么我们需要把这些标记结构化(schema)。

0.3.4. 使用Scheme标记

Schema标记是标记你的网页的另一种方式。它也被称为结构化数据,可以说是网络的一个通用语义框架。Schema.org.cn词汇表包含与属性相关联的数百种schema标记类型。 你可以使用这些来标记你的内容,让Google无需复杂的算法即可轻松理解。

例如,Google会更容易从这样的结构化内容中提取含义:

烹饪时间:20分钟
卡路里:80

这比直接从原文中提取含义容易多了:
制作煎饼需要20分钟。 更理想的是,这些是低热量的煎饼——每份约80卡路里。

这样一来,当用户想知道做一块煎饼需要多长时间,或者它有多少卡路里时,Google可以以最佳的方式提供信息。

参考文章:ahrefs.com/blog/rich-s…

文章参考:ahrefs.com/blog/zh/?p=…

1.学术文献检索系统搭建一个语义检索系统

学新通

性能对比:

硬件配置 向量库数据量 提取特征所需时间 milvus检索所需时间 排序所需时间 总耗时
CPU 12核 2.5GHz 1000w 大小45GB左右 64.5ms 258.3ms 871.6 ms 1.19s
CPU Tesla V100 32G 1000w 大小45GB左右 10ms 213.6ms 24.1ms 0.25s
  • 场景概述

检索系统存在于我们日常使用的很多产品中,比如商品搜索系统、学术文献检索系等等,本方案提供了检索系统完整实现。限定场景是用户通过输入检索词 Query,快速在海量数据中查找相似文档。

学新通

所谓语义检索(也称基于向量的检索,如上图所示),是指检索系统不再拘泥于用户 Query 字面本身,而是能精准捕捉到用户 Query 后面的真正意图并以此来搜索,从而更准确地向用户返回最符合的结果。通过使用最先进的语义索引模型找到文本的向量表示,在高维向量空间中对它们进行索引,并度量查询向量与索引文档的相似程度,从而解决了关键词索引带来的缺陷。

例如下面两组文本 Pair,如果基于关键词去计算相似度,两组的相似度是相同的。而从实际语义上看,第一组相似度高于第二组。

车头如何放置车牌    前牌照怎么装
车头如何放置车牌    后牌照怎么装

语义检索系统的关键就在于,采用语义而非关键词方式进行召回,达到更精准、更广泛得召回相似结果的目的。想快速体验搜索的效果,请参考Pipelines的语义检索实现

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgajcci
系列文章
更多 icon
同类精品
更多 icon
继续加载