paint-brush
LinkedIn 如何使用 NLP 设计他们的帮助搜索系统经过@harshit158
568 讀數
568 讀數

LinkedIn 如何使用 NLP 设计他们的帮助搜索系统

经过 Harshit Sharma2m2022/07/18
Read on Terminal Reader
Read this story w/o Javascript

太長; 讀書

LinkedIn 的帮助搜索系统(截至 2019 年**)被用于设计其帮助搜索系统。这突出了问题陈述和所采用的解决方案的不同迭代及其缺点。这是LinkedIn关于如何使用NLP设计帮助搜索系统的原始帖子的摘要和主要内容。给定的查询用于使用 Lucene 索引获取所有相关文档(点击)。使用 [BM25F](https://www.google.com/article/53174626597/) 算法对每个命中进行评分。

Companies Mentioned

Mention Thumbnail
Mention Thumbnail

Coin Mentioned

Mention Thumbnail
featured image - LinkedIn 如何使用 NLP 设计他们的帮助搜索系统
Harshit Sharma HackerNoon profile picture

这是总结和我的主要收获原帖由 LinkedIn 关于如何使用 NLP(截至2019 年)设计其帮助搜索系统。这突出了问题陈述和所采用的解决方案的不同迭代及其缺点。

问题陈述:

给定用户的查询,从数据库中获取最相关的帮助文章。

(作者图片)问题陈述

迭代 1:初始解决方案

  1. 使用Lucene Index对数据库中的所有帮助文章(文档)进行索引。简而言之,它会生成一个倒排字典,将术语映射到它出现的所有文档。 来源:原始博客

2. 给定查询用于使用 Lucene 索引获取所有相关文档(命中)。

3. 使用BM25F算法对每个命中进行评分,该算法考虑到文档结构,对Title中的命中赋予最高权重,然后是Keywords中的命中,然后是Body中的命中,并返回加权分数。

4. 返回评分最高的文章。

为什么失败

由于文档检索系统是基于 Term 的(句法),没有考虑语义,以下是两个示例失败案例: (作者提供图片)失败的用例示例

迭代 2:最终解决方案

第 1 步:文本规范化

如何立即取消我的高级帐户”正常化为“取消高级帐户” 来源:原始博客

第 2 步:查询映射

规范化查询可能与文章中的单词没有任何共同的单词。因此,每个查询都映射到更具代表性的查询,以填补用户术语和文章术语之间的空白。

分以下两步完成:

  1. 查询分组:查询根据相似度指标分组在一起(作者供图)查询分组说明

2. Topic Mining and Rep Scoring:对Query组中的每一个query,计算一个repScore ,选出前K个query作为Rep Queries (作者图片)主题挖掘和代表评分的插图

sim(RQ, Q2)是原始查询与组中另一个查询之间的相似度

sim(Q2, title)是 Q2 与标题中的一个主题之间的最大相似度(与正文类似)

第 3 步:意图分类

长尾查询可能没有 Rep Query,在这种情况下, CNN用于对查询的Intent进行分类。

例如:“取消您的高级订阅”和“取消或更新在您的 Apple 设备上购买的高级订阅”被认为与“取消高级订阅”具有相同的意图。

总流量(作者供图)整体流程


也在这里发布