使用 ML 生成过滤器和切面

探索在搜索体验中使用 ML 模型自动创建过滤器和切面与传统硬编码方法的利弊。

Elasticsearch 拥有众多新功能,可帮助您为您的用例构建最佳的搜索解决方案。在我们关于构建现代 Search AI 体验的实践网络研讨会上,您将学习如何将其付诸实践。您也可以开始免费云服务试用,或立即在您的本地计算机上试用 Elastic。

过滤器和切面是用于完善搜索结果的机制,可帮助用户更快地找到相关内容或产品。在传统方法中,规则是人工定义的。例如,在电影目录中,流派等属性是预定义的,可用于筛选器和切面。另一方面,通过人工智能模型,可以自动从电影特征中提取新的属性,使整个过程更加动态和个性化。在本博客中,我们将探讨每种方法的优缺点,重点介绍它们的应用和挑战。

过滤器和切面

在开始之前,我们先来定义一下什么是过滤器和切面。过滤器是用于限制结果集的预定义属性。例如,在市场中,甚至在进行搜索之前就可以使用筛选器。用户可以先选择一个类别,如"Video games" ,然后再搜索"PS5" ,将搜索范围缩小到更具体的子集,而不是整个数据库。这大大增加了获得更多相关结果的机会。

面板的工作原理与筛选器类似,但只有在执行搜索后才可用。换句话说,搜索会返回结果,并根据这些结果生成新的细化选项列表。例如,在搜索 PS5 游戏机时,可以显示存储容量运输成本颜色等信息,帮助用户选择理想的产品。

既然我们已经定义了过滤器和切面,下面我们就来讨论经典方法和基于机器学习 (ML) 的方法对其实施和使用的影响。每种方法都有影响搜索效率的优势和挑战。

经典方法

在这种方法中,过滤器和切面是根据预定义规则手动定义的。这意味着,考虑到目录结构和用户需求,可用于细化搜索的属性是固定的,并事先进行了规划。

例如,在市场中,"Electronics" 或"Fashion" 等类别可能有特定的筛选条件,如品牌、格式和价格范围。这些规则是静态创建的,可确保搜索体验的一致性,但每当出现新的产品或类别时,就需要进行手动调整。

虽然这种方法提供了对所显示过滤器和面的可预测性和控制,但当出现需要动态改进的新趋势时,这种方法就会受到限制。

优点

  • 可预测性和控制:由于筛选器和切面是手动定义的,因此管理变得更加容易。
  • 低复杂性:无需训练模型。
  • 易于维护:由于规则是预定义的,因此可以快速进行调整和修正。

缺点

  • 新过滤器需要重新索引:每当需要使用新属性作为筛选器时,就必须对整个数据集重新索引,以确保文档包含该信息。
  • 缺乏动态适应性:过滤器是静态的,不能根据用户行为的变化自动调整。

滤波器/滤面的实现 - 经典方法

开发工具 Kibana 中,我们将使用经典方法创建过滤器/面板演示。

首先,我们定义映射来构建索引:

品牌存储 字段被设置为关键字,可直接用于聚合(面)。价格字段为浮动类型,可以创建价格范围

下一步,将对产品数据编制索引:

现在,让我们按照品牌、存储空间和价格范围对结果进行分组,从而检索出经典的面孔。在查询中,定义了 size:0。在这种情况下,目标是只检索聚合结果,而不包括与查询相对应的文档。

回复将包括品牌存储价格的计数,有助于创建筛选器和面。

基于机器学习/人工智能的方法

在这种方法中,机器学习(ML)模型(包括人工智能(AI)技术)分析数据属性,生成相关的过滤器和面。ML/AI 不依赖预定义规则,而是利用索引数据特征。这样就能动态发现新的切面和过滤器。

优点

  • 自动更新:自动生成新的过滤器和切面,无需手动调整。
  • 发现新属性:它可以将以前未考虑过的 数据特征识别为过滤器,从而丰富搜索体验。
  • 减少人工操作:当人工智能从可用数据中学习时,团队无需不断定义和更新过滤规则。

缺点

  • 维护复杂性:使用模型可能需要预先验证,以确保生成的过滤器的一致性。
  • 需要 ML 和 AI 专业知识:该解决方案需要合格的专业人员来微调和监控模型性能。
  • 无关过滤器的风险:如果模型没有得到很好的校准,可能会生成对用户无用的切面。
  • 成本:使用 ML 和 AI 可能需要第三方服务,从而增加运营成本。

值得注意的是,即使有了校准良好的模型和精心制作的提示,生成的切面仍应经过审查步骤。这种验证可以是手动的,也可以基于审核规则,以确保内容的适当性和安全性。虽然这不一定是一个缺点,但这是一个重要的考虑因素,以确保在提供给用户之前,面的质量和适用性。

实施过滤器/面板--人工智能方法

在本演示中,我们将使用一个人工智能模型来自动分析产品特性并提出相关属性建议。有了结构良好的提示,我们就能从目录中提取信息,并将其转化为过滤器和切面。下面,我们将介绍这一过程的每个步骤。

最初,我们将使用推理 API注册一个端点,以便与 ML 服务集成。以下是与OpenAI 服务集成的示例。

现在,我们定义一个管道来执行提示并获取模型生成的新过滤器。

为"PlayStation 5" 产品运行该流水线的模拟,说明如下:

令人惊叹的游戏:惊叹于令人惊叹的画面,体验全新 PS5 的功能。

令人惊叹的沉浸感:支持触觉反馈、自适应触发器和 3D 音频技术,探索更深层次的游戏体验。

超薄设计:通过 PS5 数字版,玩家可以在时尚、紧凑的设计中获得强大的游戏技术。

1TB 存储空间:内置 1TB SSD 存储空间,让您随时随地畅玩最喜爱的游戏。

向后兼容和游戏提升:PS5 游戏机可播放 4,000 多款 PS4 游戏。有了 Game Boost,您甚至可以在一些最好的 PS4 游戏机游戏中享受更快、更流畅的帧率。

让我们观察一下这次模拟产生的提示输出。

现在,新索引中将添加一个新字段dynamic_facets,用于存储人工智能生成的面。

我们将使用Reindex APIvideogames索引重新编入videogames_1,并在此过程中应用generate_filter_ai管道。该管道将在索引编制过程中自动生成动态切面。

现在,我们将运行搜索并获得新的筛选器:

结果

下面是一个简单的前端,以表示面的实现:

这里提供了用户界面代码。

结论

这两种创建过滤器和切面的方法各有利弊。基于手动规则的传统方法可提供控制并降低成本,但需要不断更新,且无法动态适应新产品或新功能。

另一方面,基于人工智能和机器学习的方法可以自动提取切面,使搜索更加灵活,并且无需人工干预即可发现新的属性。不过,这种方法的实施和维护可能更为复杂,需要进行校准以确保结果的一致性。

在传统方法和基于人工智能的方法之间做出选择,取决于企业的需求和复杂程度。对于数据属性稳定且可预测的简单场景,传统方法可以更高效、更易于维护,从而避免基础设施和人工智能模型的不必要成本。另一方面,使用 ML/AI 提取切面可以大大增加价值,改善搜索体验,使过滤更加智能。

重要的是要评估自动化是否值得投资,或者更传统的解决方案是否已能有效满足业务需求。

相关内容

准备好打造最先进的搜索体验了吗?

足够先进的搜索不是一个人的努力就能实现的。Elasticsearch 由数据科学家、ML 操作员、工程师以及更多和您一样对搜索充满热情的人提供支持。让我们联系起来,共同打造神奇的搜索体验,让您获得想要的结果。

亲自试用