“LLM 动力驱动的产品发现:超越混合搜索的飞跃”
LLM powered product discovery a leap beyond hybrid search
在这个快速发展的尖端技术时代,世界正沉浸在翻天覆地的LLM浪潮中,涌动着革新我们日常生活的新颖思想。随着互联网上充满了各种解决方案设计和细分领域的可能性,我们发现自己正处于一个变革的数字化景观的边缘。
本博客系列将踏上产品/内容发现的探索之旅,不仅努力提供有价值的观点,还要揭示该领域内的实际限制。正如本系列中所强调的那样,上下文在这个领域中起着关键作用,我们已经深入探讨了语义搜索和混合搜索系统的效力和机制。
上下文是王者——内容发现的艺术与科学
— 探索变压器、GPT和混合搜索引擎的强大能力,革新内容发现
VoAGI.com
混合搜索——稀疏和密集向量表示的融合,实现活跃内容…
— 将数据的意义与元数据结合起来,发挥更深层次的上下文
VoAGI.com
此外,该系列简要探讨了通过LLM(基于语言模型的学习)的强大能力对内容发现和产品搜索进行重新定义。在本文中,我们的重点将放在LLM驱动的发现上,特别是针对主动搜索/显式发现,以弥合混合搜索和LLM搜索范式之间的差距。
现在,显然LLM的真正价值在于其卓越的概括能力和在更广泛的世界背景中应用知识的能力,使我们更接近通过更自然的交互方式实现令人印象深刻的结果。上下文在发现过程中仍然是一个重要因素,不仅包括内容的深层语义微观背景,还包括随时间发展的用户上下文的重要方面。
从内容到知识发现,从搜索过滤器到自然语言——释放…
如果您一直关注我的博客系列,从“上下文是王者!”一直到“从关键词到…
VoAGI.com
当我深入研究这个主题时,我发现LLM对发现领域的几个关键贡献,特别是在主动搜索的上下文中:
使用LLM进行基于知识驱动的内容发现——具有RAG(检索增强生成)管道的LLM能够高效地利用文档存储库中丰富的基础知识。通过这种方式,可以在源文档旁边有效地呈现相关知识。这种基于知识的内容发现的革命性方法在学习平台(如Coursera、Duo lingo)等文档驱动的应用中具有巨大的适用性,以及VoAGI、YouTube和WordPress等在线内容管理系统。此外,它还将其优势扩展到Sharepoint和Confluence等企业应用程序,这些应用程序托管着重要的业务文档存储库。
一个示例场景可能是:用户:“我可以将所有未使用的年假延期到下一年吗?”机器人:“是的,您可以在明年延期最多10天的年假。请参考以下文件以获取更多详细信息:”Oranization_Leave_Policy_2023.pdf
通过利用内容中固有的微语义背景,这种方法为增强信息检索和更深入的内容发现开辟了新的视野。
使用LLM进行基于元数据的产品/人员发现——无论是电子商务平台中丰富的产品属性还是社交媒体应用中有意义的用户个人资料属性,元数据的丰富性都可以显著提高LLM所提供的更广泛背景中的上下文相关性。这种实体属性与内容的融合类似于混合搜索系统的能力,利用语义和字面文本上下文的综合力量。请查看我之前探索此方面的博客文章。
为了有效满足带有增强语义上下文的查询和搜索过滤器的混合搜索需求,使用向量数据库(如Pinecone、Weaviate或Solr)变得至关重要。
LLM的集成可以将搜索体验提升到新的高度,充分利用它带来的优势。以下是一些可能实现的想法:
a. 使用LLM改进语义表示:GPT模型在上下文理解方面比BERT更具优势。虽然GPT模型(包括OpenAI的GPT-3)基于Transformer架构,并预测序列中的下一个单词,但BERT专注于固定长度的单词或句子表示,没有上下文。这种差异使得GPT模型在生成文本时更加连贯和上下文恰当,考虑了整个前文的上下文进行预测。
b. LLM丰富的产品元数据:LLM展示了生成全面和自然语言产品描述的异常能力,包括所有相关的元数据。例如:
搜索索引中一个厨房产品的示例描述:介绍 ToastMaster 3000 —— 一款高效且时尚的烤面包机,具有先进的烤面包技术,宽广的插槽和强大的1200瓦加热元件。提供经典的不锈钢款,是完美的厨房电器,易于维护。立即升级您的早餐!
这种方法对于映射用户查询非常有优势,尤其是那些含糊不清或用简单英语表达的查询,没有特定可接受的过滤值。通过采用这种方法并消除繁琐的高级搜索过滤器,搜索体验变得流畅和用户友好。用户可以轻松找到他们正在寻找的内容,即使在复杂和不确定的搜索场景中也是如此。自然语言表示的使用增强了平滑的用户交互,使产品发现变得轻松,并提高了整体用户满意度。
c. 使用LLM进行查询扩展:的确,LLM可以在生成对用户查询进行扩展的描述性字符串方面起到关键作用。当目标是内容发现时,LLM还可以进一步挖掘用户的兴趣、主题或概念思想。然后,这些挖掘出的见解可以与用户的原始查询连接起来,实现更全面和广泛的搜索覆盖。
用户的原始查询可能是:易于清洁、容量大的小型烤面包机LLM增强的查询可能如下所示:一款小型烤面包机,需要最少的维护,同时提供高烤面包容量,以便高效和方便地准备早餐。
通过整合这些附加元素,LLM促进了相关内容的更广泛探索,确保用户获得与其偏好和兴趣密切相关的多样化结果。这种方法极大地增强了内容发现过程,为用户提供了更个性化和丰富的搜索体验。
使用LLM重新排列搜索结果 —— 确实,有一些项目可以利用LLM生成表面候选结果的相关性排名。利用LLM全面普遍地对用户查询与候选描述进行推理其相关性的强大能力,这些项目旨在提高搜索结果的准确性和精度。通过利用LLM捕获的知识,排名过程更加知情且具有上下文意识,从而生成更精细的与用户意图相匹配的相关结果列表。
通过LLM实现全自然界面的发现 —— 这可以被视为超越传统搜索框、过滤器和分页控件所引起的问题的一次大胆跳跃。采用自然语言界面、“与数据交流”的方式,由LLM赋予力量,成为核心。利用LLM惊人的生成能力,搜索代理生成查询以与数据库交互,并检索与用户查询和对话期间提供的上下文最相关的结果。告别传统搜索界面的限制,迎来直观和对话式探索的新时代!
基于示例的CUI发现可能如下所示:用户:我正在寻找厨房用的烤面包机机器人生成的查询:product_category:厨房电器&product_type:烤面包机(向用户显示检索到的结果)用户:只显示最小尺寸的机器人生成的查询:product_category:厨房电器&product_type:烤面包机&slot_size:2(向用户显示匹配的结果)用户:希望这些带有低瓦数?机器人生成的查询:product_category:厨房电器&product_type:烤面包机&slot_size:2¤t_capacity:800瓦(向用户显示匹配的结果)
注意:通过交互观察用户的查询上下文正在构建!
在对话用户界面(CUI)中实现LLM驱动的产品发现的详细实现细节:
用自然语言与数据交流:
无论数据存储在矢量数据库还是任何其他结构化数据库中,LLM都具有根据自然语言上下文为其生成查询的非凡能力。这种方法的关键优势在于能够在对话过程中逐步扩展查询上下文。通过使用少量示例进行简单的提示工程,可以生成高质量的查询,这些查询可以自动从数据库中检索相关结果。
此外,将历史对话作为提示的记忆体,可以合成全面的查询,包括用户的查询和表达的过滤器所增强的所有查询上下文,以微调结果集。这种灵活而动态的查询生成过程促进了与数据更直观和对话式的交互,实现了新的上下文理解和相关性水平。
让我们看一下实施所涉及的详细步骤:
- 数据预处理:生成包含所有元数据的自然文本综合产品摘要。在这一步骤中使用LLM也是必要的,因为它已经被证明是卓越的。
- 使用GPT模型生成语义嵌入。为产品数据(描述)以及自动生成的摘要(如步骤1中所见)生成密集向量表示。在开发人员中,使用OpenAI嵌入端点(text-embedding-ada-002)或使用Huggingface的Sentence transformer(all-MiniLM-L6-v2)都是首选选项。
- 将生成的语义嵌入(来自前一步骤)索引到向量数据库(如Pinecone、ChromaDb、Apache Solr等)中。这还必须考虑与文档向量相关的元数据,例如产品类别、类型、地点、评级等。
- 构建查询合成器,接受用户的自然语言输入,根据提示(包含模式和少量示例的架构)以及上下文记忆生成向量存储查询。此外,还可以将从用户查询中提取的主题附加到推断其意图。
- 查询重新评估:可以对生成的查询进行重新验证可能的错误,并通过另一个LLM专门用于此步骤的任务进行自动校正。
- 从向量数据库中检索与由LLM生成和预验证的查询匹配的结果。
- 向用户呈现结果,同时将用户的进一步输入和反馈添加到对话记忆中。
并循环执行第4到7步作为交互的进展。
保留用户的输入,包括查询、过滤器和反馈,存储在内存中,这对于扩展用户会话的上下文非常重要。当用户与搜索结果进行交互并完善查询时,存储在内存中的有价值的远程上下文使得更有效地根据不断变化的要求定制响应成为可能。
确实,虽然这个概念可能看起来很简单,但我可以向您保证,使用这种方法的实际经验涉及到一个显著的学习曲线。尽管取得了令人印象深刻和有希望的结果,但我的个人经验揭示了一些挑战和不完美之处。让我分享一下我的观察结果,详细介绍这种方法的优点和缺点,以便更全面地了解其实用性和潜在的问题。
LLM驱动的对话搜索的优势:
- LLM驱动搜索的主要优势在于通过内在上下文深入理解用户的意图。这种理解不仅仅是解释用户的描述性要求,而且还能够将这些要求与跨越非结构化、半结构化和结构化数据的各种产品上下文有效地交织在一起。 LLM的多功能性和上下文能力使其成为释放数据探索潜力和丰富用户搜索体验的不可或缺的工具。
- 用户交互完全以自然格式进行,消除了处理菜单、过滤器和分页滚动的麻烦。用户的期望/查询上下文随着对话的多轮交互和用户在CUI中提供的反馈而逐渐建立起来。因此,用户不需要重复输入关键词和过滤器(这经常导致沮丧);相反,LLM搜索代理可以通过持续的交互来开发上下文理解。
- LLM驱动的搜索具有适应不断变化的搜索要求的灵活性,无论是由于产品架构更新还是与用户体验相关的更改。 CUI可以实现无缝和动态的发现过程,更重要的是,更新的责任主要由搜索代理使用的LLM模型承担。
这种方法有什么需要注意的地方吗?
- 可扩展性和提示维护开销:将模式作为提示的一部分公开可以导致令牌泄漏,这是由LLM处理的有限上下文长度引起的。
- 维护开销:为了使提示与不断演化的模式保持同步,需要不断更新提示,这是另一项不可避免的琐事。为了缓解这些问题,可以探索处理模式和提示管理的替代策略,以确保更流畅和强大的LLM搜索体验。
- 复杂模式的查询质量:当数据仅分布在有限数量的表/集合中时,生成的查询的质量最高效。虽然很容易将模式转换为非规范化结构,并将所有元素作为单个/较少数量的表或集合的一部分,但是对向量数据库的持续更新仍然不具备性能效率。对事务数据元素(如价格、可用性等)的持续维护仍然无法在向量数据库中实现。
- 查询不准确性:尽管在提示中明确说明并在少量示例模板中提供详细样本,但LLM生成的查询仍然不免于错误。由于错误的查询会导致与数据库交互时不利的结果,因此重新检查LLM生成的查询非常重要。使用思维链(CoT)提示重新评估并使用另一轮LLM调用自动纠正生成的查询是一种可考虑的替代方法。Langchain的SelfQueryRetriever是一种采用这种方法的方法。
- 延迟增加:LLM是大型复杂的语言模型,它们的广泛计算需要大量的处理时间,从而导致延迟增加。由于模型大小、令牌限制和资源约束,常常会导致检索明显结果的延迟增加。
- 数据隐私风险:在考虑数据安全问题时,评估LLM服务的选择至关重要。虽然使用现成的LLM服务似乎最可靠,但敏感信息泄露和数据泄露的潜在风险成为一个日益关注的问题。在虚拟专用云(VPC)中托管开源LLM可以是满足数据隐私和安全要求的有效措施。
- 成本增加:无论是选择LLM作为付费服务还是在自己的基础设施上托管定制的LLM,都必须认识到它们资源密集型的本质,这直接影响成本。
由于这些挑战,我一直在不断调整解决方案设计,以创建一个接近完美的文本到数据库接口。确实,现在是释放创造力并探索LLM的广阔可能性的时机。
我评估过一种这样的想法,它消除了维护分类元数据的需要,同时将生成的LLM查询的结果风险降到了最低:
将整个产品属性集转换为全面的自然语言描述,专门用于搜索目的,并将搜索查询视为纯粹的非结构化文档检索是一个值得考虑的选项。这种方法可以简化搜索过程,为用户提供更直观的交互,从而提高发现性和用户满意度。另一种选择,尽管具有挑战性,是为每个上下文信号开发独立的经过微调的LLM模型。
上述方法不仅消除了依赖查询来检索产品数据的依赖性,还通过LLM的优势在世界背景中提供了对这些分类属性的更好泛化。这种机制的一个可能方法(我在之前的帖子中也引用过)是在搜索数据库中使用LLM生成的产品摘要。它可能会像这样:
“介绍我们的迷人蓝色派对裙系列,专为13岁的少年设计。这些裙子精心制作,注重细节,是年轻风格和精致的典范。鲜艳的蓝色色调为任何装束增添了活力,使其成为特殊场合、庆祝活动或简单的愉快出游打扮的理想选择。这些裙子舒适合身,剪裁优美,会让你的年轻时尚女士充满自信,准备好闪耀。让她展示她独特的时尚品味,穿上这些迷人的蓝色派对裙。”
最终用户查询“适合生日的海蓝色青少年裙子”不仅可以获取上述产品,还可以获取所有与类似意图匹配的相关商品!
在这个激动人心的生成式AI革命中,在创造力和实际利益与痛苦之间取得平衡 评估变得至关重要。通过采用一个均衡的方法,企业可以利用LLM的巨大潜力,并做出为成功和节约成本铺平道路的明智决策。
当我沉浸在产品发现的诸多方面时,我探索并产生创新的想法,以发挥LLM的能力;我热切期待您的观点或反驳,因为这将丰富我们的理解,并促进对这个令人兴奋的领域进行更全面的探索!请继续关注并订阅我的即将发布的帖子,以获取更多令人着迷的思路和方法!