对于简单的用户查询,搜索引擎可以仅使用关键词匹配可靠地找到正确的内容。“红色烤面包机”查询会提取标题或描述中带有“烤面包机”且颜色属性为红色的所有产品。为红色添加栗色等同义词,您可以匹配更多的烤面包机。
但是事情很快就开始变得更加困难:您必须自己添加这些同义词,并且您的搜索也会带来烤面包机。这就是语义搜索的用武之地。语义搜索尝试应用用户意图以及单词和短语的含义(或语义)来查找正确的内容。
它通过使用可能不会立即出现在文本(关键词本身)中但与搜索者想要的信息密切相关的信息来超越关键词匹配。例如,查询“毛衣”甚至“更漂亮”的毛衣对于关键词搜索来说是没有问题的,而查询“保暖衣物”或“如何在冬天保持身体温暖?” 语义搜索可以更好地服务。
可以想象,试图超越文本中嵌入的表面信息是一项复杂的工作。它已经被许多人尝试过,并包含了许多不同的组件。此外,与任何显示出巨大希望的事物一样,语义搜索是一个有时用于不真正名副其实的搜索的术语。
要了解语义搜索是否适用于您的业务以及如何最好地利用它,有助于了解它的工作原理以及构成语义搜索的组件。
语义搜索的要素是什么?
语义搜索应用用户意图、上下文和概念含义来将用户查询与相应的内容相匹配。它使用矢量搜索和机器学习来返回旨在匹配用户查询的结果,即使没有单词匹配也是如此。
这些组件协同工作以根据含义检索和排列结果。最基本的部分之一是上下文。
语境
搜索发生的上下文对于理解搜索者试图查找的内容很重要。
上下文可以像语言环境一样简单(搜索“足球”的美国人与搜索相同事物的中国人想要不同的东西)或更复杂。
智能搜索引擎将在个人级别和组级别上使用上下文。个人层面对结果的影响被恰当地称为个性化。
个性化将使用该个人搜索者的亲和力、先前的搜索和先前的交互来返回最适合当前查询的内容。
它适用于各种搜索,但语义搜索可以走得更远。
在组级别上,搜索引擎可以使用有关所有搜索者如何与搜索结果交互的信息(例如最常点击哪些结果,甚至某些结果比其他结果更受欢迎的季节性)对结果进行重新排名。
同样,这显示了语义搜索如何为搜索带来智能,在这种情况下,智能是通过用户行为。
语义搜索还可以利用文本中的上下文。我们已经讨论过同义词在各种搜索中都很有用,并且可以通过将查询匹配扩展到相关内容来改进关键词搜索。
但我们也知道同义词不是通用的有时两个词在一种情况下是等价的,而在另一种情况下却不是。
当有人搜索“足球运动员”时,正确的结果是什么?美国的答案与中国肯定不同。然而,像“奶粉”这样的查询可能不需要知道搜索者的位置。
这是通过语义搜索进行查询理解的示例。
用户意图
任何搜索引擎的最终目标都是帮助用户成功完成一项任务。该任务可能是阅读新闻文章、购买衣服或查找文件。
搜索引擎需要弄清楚用户想要做什么,或者用户意图是什么。我们可以在电子商务网站上搜索时看到这一点。当用户输入查询“乔丹”时,搜索会自动过滤类别“鞋子”。这预计用户的意图是寻找鞋子,而不是约旦杏仁(将在“食品和零食”类别中)。
通过领先于用户意图,搜索引擎可以返回最相关的结果,并且不会用文本匹配但不相关的项目分散用户的注意力。在搜索顶部应用排序时,这可能更加相关,例如从最低到最高的价格。这是查询分类的一个示例。
对查询进行分类并限制结果集将确保仅显示相关结果。
关键词和语义搜索之间的区别
我们已经看到了语义搜索的智能方式,但值得更多地了解它与关键词搜索的不同之处。
虽然关键词搜索引擎还引入了自然语言处理来改进这种词对词的匹配通过使用同义词、删除停用词等方法但该处理仍然依赖于词对词的匹配。
但是语义搜索可以返回没有匹配文本的结果,但是任何了解该领域的人都可以看到显然有很好的匹配。
这与关键词搜索和语义搜索之间的巨大差异有关,即查询和记录之间的匹配方式。
为了简化一些事情,关键词搜索是通过匹配文本来进行的。
由于文本质量的重叠,“苹果”将始终匹配“苹果手机”或“一种水果”。更具体地说,有足够的匹配关键词告诉引擎搜索一个的用户会想要另一个。
同样的匹配也会告诉引擎查询苹果更可能匹配单词“苹果手机”而不是水果“苹果”。
基于关键词的搜索引擎还可以使用同义词、替代词或查询词删除(所有类型的查询扩展和放松)等工具来帮助完成此信息检索任务。
NLP 和 NLU 工具(如错字容错、标记化和规范化)也有助于改进检索。
虽然这些都有助于提供改进的结果,但它们可能无法提供更智能的匹配和概念匹配。
概念上的语义搜索匹配
因为语义搜索是在概念上进行匹配,所以搜索引擎不能再根据两个词共有多少个字来判断记录是否相关。或者更复杂的查询,例如“洗衣店清洁剂”、“去除衣服上的污渍”或“我如何去除牛仔布上的草渍?”您甚至可以包括图像搜索之类的内容!
与此类似的例子是客户询问员工“马桶疏通器”在哪里。除非商店明确将他们的柱塞、排水管清洁器和马桶螺旋钻称为“马桶疏通器”,否则对请求只有纯关键词式理解的员工会失败。但是,我们希望员工足够聪明,能够在各种条款之间建立联系,并将客户引导到正确的通道。(也许员工知道客户可以对任何给定产品使用的不同术语或同义词)。
总结语义搜索所做的一个简洁的方法是说语义搜索通过使用向量搜索带来了更多的智能来匹配概念而不是单词。
有了这种智能,语义搜索可以以更人性化的方式执行,就像搜索者在搜索花式时寻找礼服和西装,而看不到牛仔裤。
什么不是语义搜索?
到现在为止,语义搜索应该是一种提高搜索质量的有力方法。因此,当您得知语义搜索的含义已被越来越广泛地应用时,您应该不会感到惊讶。
通常,这些搜索体验并不总是保证名称。虽然语义搜索没有官方定义,但我们可以说它是超越传统基于关键词的搜索的搜索。它通过结合现实世界的知识来根据查询和内容的含义得出用户意图来做到这一点。
这导致了这样的结论:语义搜索不仅仅是应用 NLP 并将同义词添加到索引中。
确实,标记化确实需要一些关于语言构造的真实世界知识,并且同义词适用于对概念匹配的理解。但是,在大多数情况下,它们缺乏将搜索提升到语义级别所需的人工智能。
由矢量搜索提供支持
正是这最后一点使语义搜索既强大又困难。通常,对于术语语义搜索,有一种隐含的理解,即涉及到某种程度的机器学习。几乎同样经常,这也涉及向量搜索。
向量搜索的工作原理是将有关项目的详细信息编码为向量,然后比较向量以确定哪些最相似。
同样,即使是一个简单的例子也能有所帮助。取两个词组:“丰田普锐斯”和“牛排”。现在让我们将它们与“混合动力”进行关联。哪个更可以关联?
两者都不会在文本上匹配,但您可能会说“丰田普锐斯”是两者中更相似的一个。
您可以这样说是因为您知道“普锐斯”是一种混合动力汽车,因为您在与混合动力一词类似的上下文中看到“丰田普锐斯”,例如“丰田普锐斯是值得考虑的混合动力车”或“像丰田普锐斯这样的混合动力车”。
但是,您可以肯定,您无法将“牛排”和“混合动力”关联起来。
绘制向量以查找相似性
这通常也是矢量搜索的工作方式。机器学习模型从网络、书籍或其他来源获取数千或数百万个示例,然后使用这些信息进行预测。
当然,对模型进行逐个比较是不可行的(“丰田普锐斯和混合动力车经常一起出现吗?混合动力车和牛排呢?”)因此发生的情况是模型将编码模式它注意到不同的短语。
这类似于您可能会如何看待一个短语并说“这个是积极的”或“那个包含一种颜色”。除了在机器学习中,语言模型的工作方式并不那么透明(这也是语言模型难以调试的原因)。
这些编码存储在一个向量或一长串数值中。然后,向量搜索使用数学计算不同向量的相似程度。考虑向量搜索所做的相似性测量的另一种方法是想象绘制出的向量。如果您尝试将矢量绘制成数百个维度,这将非常困难。
如果你想象一个向量被绘制成三个维度,原理是一样的。这些向量在绘制时形成一条线,问题是:这些线中哪一条最接近?
“牛排”和“牛肉”的线条将比“牛排”和“轿车”的线条更接近,因此更相似。这个原理称为向量或余弦相似度。矢量相似度有很多应用。
它可以根据以前购买的产品进行推荐,找到最相似的图像,并且可以确定哪些商品与用户的查询相比在语义上最匹配。
结论
随着强大的深度学习模型和支持它们的硬件的兴起,语义搜索是搜索应用程序的强大工具。虽然我们在这里触及了许多不同的常见应用程序,但还有更多使用矢量搜索和 AI 的应用程序。甚至图像搜索或从图像中提取元数据也可能属于语义搜索。我们正处于激动人心的时刻!
然而,它的应用仍处于早期阶段,其已知的强大功能可能会导致对该术语的滥用。语义搜索管道中有许多组件,确保每个组件都正确很重要。
如果做得正确,语义搜索将使用现实世界的知识,特别是通过机器学习和矢量相似性,将用户查询与相应的内容相匹配。