google/rax

Rax is a Learning-to-Rank library written in JAX.

解决的问题

Rax 是一个专为学习排序(LTR)问题设计的库,其目标是基于搜索查询等上下文,优化文档或推荐项等项目列表的相对顺序。它提供了处理与标准分类或回归不同的排序特定目标所需的工具。

工作原理

基于 JAX 构建,Rax 提供了一套纯函数式的排序损失和度量实现。它允许用户计算 NDCG 和 MRR 等度量,并应用 softmax 或成对逻辑损失等排序损失。它还包含专门的转换,例如 approx_t12n,可将非可微分的排序度量转换为可微分的损失,从而在 JAX 中实现基于梯度的优化。

适用人群

本库适用于在搜索引擎、推荐系统、问答系统和对话系统等领域工作的开发人员和研究人员,这些领域中结果的顺序至关重要。

主要亮点

  • JAX 原生:与 JAX 变换完全兼容,且为纯函数式。
  • 排序专用工具:提供即用型的损失实现(例如 softmax_loss)和度量实现(例如 ndcg_metric)。
  • 可微分度量:能够将不可微分的度量转换为可微分的损失。
  • 广泛应用:支持多种 LTR 应用,包括搜索和推荐。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目