寻找正确的信息总是很困难的具之一

优采云 发布时间: 2021-06-19 01:30

  寻找正确的信息总是很困难的具之一

  编译:荣淮扬

  指南

  一般来说,搜索是非个性化的,但如果与推荐系统结合,会有意想不到的效果。

  找到正确的信息总是很困难。不久前,文件还存放在实际的物理仓库中,很难找到相关文件。

  

  当可以通过在线存储库访问文档时,索引文档的数量开始超过物理存储的限制。电子商务网站提供的产品数量或通过在线流媒体服务提供的内容数量也是如此。

  用户倾向于在一个地方找到所有内容,并且大多数人喜欢从更相关的选项中进行选择,因此服务提供商需要适应这种需求。一些全球服务(如谷歌、亚马逊、Netflix、Spotify)发展迅速,用户几乎可以在上面找到任何东西。推动他们称霸世界的最强大工具之一是由机器学习技术驱动的高度先进的个性化技术。这些技术是推荐系统和个性化搜索。

  

  推荐系统使用用户与项目交互的历史来为用户生成最相关项目的排名列表。搜索引擎会根据与给定查询的相似度对内容进行排名,而不考虑用户的历史记录。

  推荐系统使用户能够在线发现相关文档、产品或内容。通常,用户可能最喜欢的项目隐藏在数以百万计的其他项目中。用户无法通过搜索引擎直接找到这些产品,因为他们很少知道它们的标签,甚至可能不知道它们的存在。

  另一方面,有时用户需要找到特定的项目,并愿意通过表达他们的需求来帮助在线系统减少可能推荐的项目数量。

  

  有多种方法可以帮助用户表达他们的需求。用户体验在这里起着非常重要的作用。许多用户通过手机访问在线服务,但他们表现出兴趣的能力有限。在线服务应侧重于使用所有可用信息来过滤可能的搜索结果。

  用户地理位置可以显着缩小可能的搜索和推荐结果的范围。例如,在 Recombee 中,您可以选择仅推荐距离用户位置一定范围内的项目。另一种方法是,当某个项目在地理位置上离用户较近时,您可以增加该项目被推荐的可能性。

  

  用户希望使用特定标签或类别过滤掉可能的搜索结果。通常只需要一键过滤除特定类别外的所有项目(例如,所有文章 除科幻小说外)。用户应该能够尽可能轻松地表达他们的兴趣。

  一定比例的用户希望使用查询文本(即使只有几个字符)来缩小搜索范围。他们的目的可能是查找特定类别的商品,或者直接通过他们要查找的产品的标签来搜索特定的产品。他们输入的文本称为用户查询。这个博客文章 讨论了如何使用查询来帮助用户找到她/他正在寻找的内容。这个博客文章从理论部分开始,然后是实践部分。

  信息检索

  为给定的文本查询寻找合适的项目的问题已经作为信息检索 (IR) 研究了几十年。当用户向系统输入查询时,信息检索过程开始。查询是信息需求的正式形式,例如网络搜索引擎中的搜索字符串。在信息检索中,查询不能唯一标识集合中的单个项目(文档)。相反,有几个项目可以与查询匹配,它们可能具有不同程度的相关性。

  传统方法尝试将查询与文档进行匹配并根据相似度获得相关性。机器学习方法通​​过从训练数据构建排名模型来解决 IR 问题。这个训练数据(用于搜索引擎)是什么样的?通常,它是针对每个查询“适当”排序的文档集合。

  以下是相关博客中描述的IR系统方案:

  

  经典的 IR 系统不是个性化的,它只是为查询返回大部分相关文档。通常不需要机器学习,因为系统遵循预定义的过程(例如 TF-IDF 相似性查找)。

  该系统通过匹配查询和文档并计算它们的相似性来工作。大多数相似的文档按照与查询的相似性顺序返回。计算相似度,如TF-IDF向量的余弦相似度。

  

  可以通过重新排序(使用机器学习模型)来改善搜索结果。在这个例子中,还使用了搜索引擎来减少机器学习模型的候选数量,从而提高评分速度。

  学习排名 (LTR) 是机器学习的一种应用,它根据人们的期望对项目进行排名。 LTR 模型通常使用人工标记的数据进行训练。

  在recall阶段,LTR模型获取搜索引擎生成的查询和返回文档(项目)的一个子集作为每个项目的输入和输出相关性。最后,它可以输出一个排序的文档列表(k 个最相关的文档)。请注意,现代系统还可以将用户配置文件作为输入并执行个性化学习以对机器学习任务进行排序。

  经典预测模型、学习排名模型和推荐系统有什么区别?

  下一部分对 LTR 和推荐系统都很有用,因为模型的评估类似于机器学习中的经典预测模型。

  评估 LTR 和推荐系统

  累积收入衡量学习排名系统或推荐系统返回的前 k 个项目的相关性。

  

  例如,我们可以将 6 个返回项的相关性相加(注意,第 4 项是不相关的)。

  

  

  向用户展示的项目很少有统一的可见性方式。例如,在电子商务中,由于大多数用户不想向下滚动列表,因此推荐产品的可见度急剧下降。在媒体领域,一个内容经常被突出显示,而其他内容却很难找到。

  CG 的问题在于它没有考虑物品的位置。例如,第一个推荐可能比其他五个推荐具有更大的图像显示。此外,用户倾向于浏览列表顶部的一些项目,他们不太可能看到列表更下方的项目。因此,折现累积收益 (DCG) 比简单的 CG 更受欢迎。

  

  在 DCG 中,相关值随着结果的位置呈对数下降。

  

  DCG 很容易计算,如上例所示。

  有些变体甚至更加强调搜索列表顶部的相关项目。

  

  假设一个数据集收录 N 个查询。通常的方法是对每个查询的 DCG 分数进行归一化,并获得所有查询的平均 DCG(“NDCG”)分数。有这样的评价指标固然好,但切记现实世界是残酷的。

  传统的LTR算法

  以下是 LTR 算法的一些示例:

  PRank 算法使用感知器(线性函数)从文档的特征向量估计文档的得分。查询附加到嵌入在文档中的特征向量。我们还可以将文档分类为相关类别(例如,相关/不相关)。该函数几乎可以通过任何机器学习方法进行建模。大多数算法使用决策树和森林。现代方法利用深度学习网络。

  

  通过对所有文档进行评分并根据预测的相关性对它们进行排序得到最终的排名列表。显然,在训练输入嵌入和相应输出相关性的模型时,我们并没有直接最小化 NDCG 或其他上述评估标准。与Pointwise方法一致,Pairwise方法也使用了代理可微损失函数。

  

  为了更好地理解成对方法,我们应该记住二元分类中使用的交叉熵损失,它惩罚了模型的高置信度错误预测。

  可以通过对 0,1 标签的损失求和来计算对数损失:-(y log(p) +(1−y) log(1−p))

  如您所见,错误的、高可信度的答案会导致高损失。

  

  关于 LTR 系统的梯度训练算法的更多信息可以在这里找到:///en-us/research/wp-content/uploads/2005/08/icml_ranking.pdf。

  Rankboost 直接优化分类错误。它源自 Adaboost,并在文档对上进行训练。它训练弱分类器,并为上一步中没有正确分类的对分配更多的权重。

  RankSVM 是最早使用成对方法解决问题的算法之一。它以序数回归的方式进行排序,训练类的阈值。 RankSVM 使用铰链损失函数来最小化。它还允许直接使用内核进行非线性处理。

  listwise 方法的动机

  pairwise 方法很好,但也有缺点。训练过程成本高昂,并且存在固有的训练偏差,在不同的查询中差异很大。只考虑成对关系。我们希望使用一个评估指标,使我们能够在考虑所有项目的相关性的同时优化完整列表。

  

  指数排序的优势在于,即使模型 f 给所有文档分配相似的分数,它们的最高概率也会相差很大——最好的文档接近 1,而不太相关的文档接近 0。

  

  这里,损失是针对文档列表计算的。我们不太关心无关文档Py(x)=0,最大的损失是相关文档造成的。

  如何获取LTR系统的训练数据?

  为 LTR 系统获取训练数据可能是一个漫长而昂贵的过程。您通常需要一群人手动输入查询并判断搜索结果。关联判断也比较困难。评估者评估以下分数之一:

  Relevance-两个值:相关和不相关(适用于pointwise)

  成对偏好文件 A 比文件 B 更相关。

  一般订单文件按照 A、B、C、... 的相关性进行排序。 (非常适合列表,但很耗时)

  很明显,人工贴标签非常昂贵,而且他们的标签也不是很可靠。因此,排名和训练系统应该从用户在网站上的行为中获得。

  更好的方法是用推荐系统替换前面提到的 LTR 算法。

  个性化搜索审核

  当搜索结果按照用户的喜好进行排序时,用户对搜索功能的整体满意度会显着提升。

  

  个性化搜索还应考虑用户偏好、历史互动和类似用户的互动。为什么不使用推荐系统?对于相同的搜索查询,两个用户可能会得到截然不同的建议。

  解决方案是将搜索引擎与强大的推荐系统相结合,而不是如上所述将经典学习应用于机器学习 (LTR) 模型。这种方法有几个优点,我们会在后续博客文章中分析。

  

  我们的个性化搜索方法结合了搜索引擎和推荐系统。首先,搜索引擎对推荐项目(与查询无关)重新排序以过滤掉不相关的推荐,并推送与查询及其描述匹配的项目。其次,无论用户*敏*感*词*或交互历史如何,搜索引擎都会返回最匹配的候选者。然后,这些产品由推荐系统重新排名,以更好地适应每个特定用户的口味。最终结果由上游排名投票决定。

  

  —结束—

  英文原文:

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线