机器学习中排名算法简介

2024 年 8 月 28 日 | 阅读 10 分钟

引言

对这些技术的概述可以提供对排序算法及其在搜索、推荐系统和信息检索系统等众多应用中的重要性的基本理解。

被称为定位计算的 AI 程序用于根据项目或元素与特定查询或上下文的重要性或相关性进行排序。目标是通过首先显示最相关的组件,使访问信息和决策更高效。

当客户需要帮助从大量事物中找出最相关的事物时,这些计算是至关重要的。例如,搜索引擎的排序算法会根据结果与用户查询的相关性来决定首先显示哪些结果。

机器学习的重要性

  • 个性化: 排序算法对于根据每个用户的兴趣和行为个性化内容、推荐和搜索结果至关重要。
  • 管理信息过剩: 大数据时代的用户经常被信息淹没。可以使用排序算法过滤和优先排序信息,使其更易于处理和更有益。
  • 竞争优势: 通过提供更强大的搜索和推荐功能,成功使用排序算法的组织可以获得竞争优势,提高用户满意度和留存率。
  • 各种用途: 排序算法的灵活性体现在其在各个领域的应用,包括学术文章推荐、求职者筛选、医疗诊断辅助等,以及搜索引擎和推荐系统。
  • 改进决策: 这些算法通过对可能性进行评分和优先排序,帮助改进决策过程,无论是选择最佳医疗保健、最相关的研究文章,还是最合格的求职者。
  • 机器学习模型的优化: 排序算法在机器学习中很有用,因为它们可以用于选择最相关的样本、优先排序特征和优化超参数,所有这些都提高了模型的效率和性能。
  • 用户互动和留存: 适当分级的内容鼓励用户更多地与平台互动并停留更长时间,这提高了留存率并维持了用户活动。

排序是什么意思?

排序是指将对象、实体或片段按特定顺序排列,以表示它们在特定上下文中的相对重要性、重要性或价值。在计算机学习和知识检索的背景下,排序是给对象评分并根据这些评分以升序或降序排列它们。

排序的重要元素

  • 项目: 需要评分的事物或东西。这些可能包括简历、求职者、商品、电影、网页和文件。
  • 标准: 作为比较和评估对象的依据的品质或特征。这些可能包括用户评分、受欢迎程度和与查询的相关性。
  • 评分函数: 一种数学框架或方法,称为“评分函数”,用于根据标准给事物评分。每个项目的相对重要性或显著性由其分数表示。
  • 顺序: 元素的排列顺序根据其分数;在大多数情况下,这是按重要性或相关性的降序排列的。

机器学习排序

在机器学习中,“排序”一词通常指使用算法从统计数据中提取评分方法的过程。为此,必须准备一个模型来确定元素在给定环境中的相关性或重要性。然后,可以根据学到的模型放置新设备。

不同的排序方法

  • 点式排序算法

定义: 点式排序方法将排序问题视为一组截然不同的分类或回归任务。每个对象都根据其特征被赋予一个唯一的分数。

示例 包括逻辑回归(将排序视为二元分类问题)、梯度提升机 (GBM)(如 XGBoost 和 LightGBM)以及使用线性模型的回归(通常用于预测连续相关性排名)。

优点: 这些算法易于使用,并采用经过验证的分类和回归技术。
缺点: 一个主要缺点是这些排名可能不是最优的,因为它们没有考虑项目的相对位置。

  • 成对排序方法

成对排序方法的定义如下:它们比较两个项目以确定它们的相对排名。目标是确定每个组合中哪个元素更关键或更重要。

值得注意的例子 是支持向量机排名 (SVMrank),它使用神经网络模型进行成对比较,以及 LambdaRank,一种通过梯度提升改进的 RankNet 形式。

优点: 通过明确模拟项目之间的相反顺序,这些算法产生更好的整体排名。

缺点: 它们可能难以随大型数据集扩展,并且操作上很麻烦,因为它们必须考虑所有可能的项目对。

  • 列表式排序算法

定义: 列表式排序策略一次性考虑整个项目列表,以便根据特定目的(例如排序质量指标)优化整个列表的顺序。

示例 包括 ListNet(使用概率模型最大化项目排列)、LambdaMART(将梯度提升决策树与 LambdaRank 结合)以及改进列表式排序目标的基于神经网络的高级模型。

优点: 这些算法通常在 NDCG 或 MAP 等排序指标上产生更好的结果,因为它们直接优化最终排名列表。

缺点: 它们使用的系统计算成本高且复杂,并且为了准确捕获产品交互,它们需要更大的数据集和复杂的优化技术。

比较分析和用例

点分布

用例: 适用于自然地被表述为分类或回归问题的任务。用于搜索引擎中的相关性评分和推荐系统中的评分预测。

用途: 估计用户对电影的评分,根据文档与搜索查询的相关性对文档进行排序。

按对排序

用例: 非常适合项目的相对排名比其单独分数更重要的情况。在协同过滤和偏好学习中很常见。

应用: 基于相关性的电子商务产品排名;成对检查搜索结果以确定哪个更相关。

列表排序

用例: 这些包括搜索引擎结果和个性化内容排名,其中提高排名列表的整体质量至关重要。

应用 包括在信息流中对故事进行排序以增加用户参与度,以及对搜索引擎结果进行排名以最大化用户满意度。

常用排序算法

使用逻辑回归进行排序

描述: 通过将其视为二元分类问题,逻辑回归被修改用于排序。项目根据算法估计项目与查询相关的概率进行排序。

优点: 它是基本线性关系的绝佳选择,因为它易于执行和理解。

缺点: 难以管理复杂的非线性特征交互。

使用支持向量机 (SVM) 进行排序

描述: 通过将 SVM 方法表示为一系列成对项目的二元分类任务,用于排序的 SVM(有时称为 SVMrank)扩展了 SVM 技术以处理排序。它旨在最大化这些对之间的差距。

优点: 能够使用核函数解决非线性交互,并且在高维空间中有效。

缺点: 需要大量计算,特别是对于大数据集,并且可能难以选择正确的核函数。

RankNet

RankNet 是一种依赖于神经网络的技术,它使用成对方法来估计某个项目比另一个项目更重要的可能性。它使用这些成对比较来优化损失函数。

优点: 可扩展到大数据集,并能够模拟复杂的非线性交互。

缺点: 需要大量的计算资源和细致的神经网络参数调整。

LambdaRank

描述: 通过直接优化 NDCG 等排序度量,LambdaRank 优于 RankNet。它根据变化如何影响这些度量来调整训练梯度。

优点: 专门为最大化排序性能而创建,从而改进了与排序相关的度量。

缺点: 由于计算复杂性和谨慎的实现,难以有效处理梯度调整。

LambdaMART

LambdaMART 是一种结合了梯度增强决策树 (GBDT) 和 LambdaRank 方法的策略。它使用 lambda 梯度来微调基于树的模型,以最大化排序度量。

优点: 它将基于树的模型的强大功能与针对排序量身定制的优化相结合,因此在排序任务中非常成功。

缺点: 需要仔细管理梯度计算和参数调整;计算量大。

ListNet

ListNet 是一种列表式排序系统,旨在最大化列表的项目排列。它通过使用概率模型立即优化排序顺序。

优点: 通过直接优化整个列表来改进排序指标,这通常会产生更好的结果。

缺点: 与双边和点式方法相比,更难执行且计算量大。

GBM,或梯度提升机

描述: 通过自定义以优化特定于排序的损失函数,XGBoost 和 LightGBM 等 GBM 可以应用于排序。这些基于树的模型有效地管理特征交互,并且非常具有弹性。

优点: 极其可靠和高效,能够管理大数据集和复杂的交互。

缺点: 可能计算量大,特别是处理大型数据集时,并且需要仔细的参数调整。

基于神经网络的模型

描述: 深度学习技术和其他先进的神经网络模型越来越多地用于排序。它们能够立即优化排序目标并管理复杂的、大规模的数据。

优点: 能够模拟复杂的链接和交互,适用于大量数据集。

缺点: 为了正确训练,需要大量数据、仔细调整和大量的计算机资源。

排序算法应用

  • 在线搜索引擎: 因为它们根据搜索结果与用户查询的相关性进行排列,排序算法对于搜索引擎至关重要。为了有效地对网页进行排序,这些算法会考虑许多变量,包括用户参与度指标、网站权威性和关键词相关性。例如,谷歌的 PageRank 算法根据链接到页面的数量和质量来确定页面的权威性和相关性,这会影响页面在搜索结果中的排名。
  • 推荐系统: 推荐系统使用排序算法根据用户的行为和偏好向用户提供个性化建议。通过检查用户行为(包括之前的购买和评分),这些算法可以查明可能吸引某些用户注意的产品。亚马逊和 Netflix 等网站使用排序算法根据客户偏好提供个性化产品和电影推荐,从而提高用户满意度和参与度。
  • 在线购物: 电子商务平台使用排序算法在推荐小部件和搜索结果中排列产品列表。这些算法根据产品受欢迎程度、相关性、用户评论和过去的购买等因素来决定向客户显示商品的顺序。排序算法通过显示可能吸引客户的产品来帮助在线企业提高销售额和转化率。
  • 互联网推广: 在线广告系统依赖排序算法来决定何时何地显示广告。为了在搜索引擎结果和展示网络中优先显示广告,广告排序算法会考虑许多参数,包括广告相关性、出价金额、点击率和广告质量。Facebook 广告和 Google 的 AdWords 使用高级排序算法来显示可能带来点击和转化的广告,从而最大化广告收入。
  • 社交网络: 社交媒体公司采用排序算法根据参与度和相关性标准对用户新闻源中的信息进行排序。这些算法通过分析帖子发布时间、用户之间的互动(点赞、评论、分享)以及用户偏好等许多标准来决定文章的呈现顺序。排序算法通过呈现根据个人兴趣定制的材料,提高了 Twitter、Instagram 和 Facebook 等社交媒体网站的用户留存率和参与度。
  • 信息提取: 对于各种环境中的有效信息检索,例如企业搜索、文档存储和学术研究,排序算法至关重要。这些算法根据多个相关性信号、文档质量和用户查询相关性对搜索结果进行排名。Google Scholar 和商业搜索引擎等平台使用排序算法来帮助用户快速找到相关的文章、文档和其他资源。

挑战与注意事项

  • 数据质量和可用性: 高质量、有效的数据对于有效的排序算法至关重要。不足或有偏差的数据可能导致不正确的估计。确保您收集可靠的数据并定期更新和清理数据以不断改进。
  • 性能可伸缩性: 排序算法,尤其是成对列表模式,可能计算量大,这使得它们难以随大型数据集扩展。优化算法以提高效率,使用并行处理,并考虑分布式计算解决方案来管理大数据。
  • 适当的复杂性: 复杂模型,例如基于深度学习的排序算法,可以捕获复杂的关系,但难以解释和解决。平衡复杂性和解释性,尽可能使用简单的示例。提供解释工具和图表以理解模式行为。
  • 研究指标: 选择正确的评估指标很重要。NDCG、MAP 和精度等指标必须与特定的应用程序和业务目标保持一致。确定最符合业务目标和用户满意度的指标,并根据需要持续审查和调整模型。
  • 处理不平衡数据: 在许多排序问题中,相关项目的频率往往远低于不相关项目,导致数据集不平衡。使用过采样、欠采样或特殊损失函数等技术来处理不平衡。确保模型经过训练,能够正确识别和放置子类中的对象。
  • 用户反馈和自定义: 用户偏好和行为随时间变化,需要持续的模型更新。使用持续和自适应学习技术,例如在线学习,其中模型实时更新新数据。收集用户反馈并将其整合到模型训练中。
  • 个性化和泛化: 在个性化和泛化之间取得平衡可能很困难。使用结合这两种方法的混合模型,并使用分类来创建功能组,在每个组中进行排序以实现平衡。
  • 公正性和公平性: 排序算法可能会在训练数据中延续或加剧偏差,导致不适当的结果。定期审计数据集和模型是否存在偏差,使用公平感知算法,并确保所有用户都受到公平对待。