使用 catboost 进行排名任务

amp*_*mpt 3 machine-learning ranking catboost

我想知道如何为排名任务配置 catboost。catboost 主页暗示它可以用于排名任务。然而,排名任务的文档似乎很少:https : //tech.yandex.com/catboost/doc/dg/concepts/cli-reference_train-model-docpage/

并且所有教程都专注于对单个实例进行分类:https : //github.com/catboost/catboost/tree/master/catboost/tutorials

理想情况下,会有一些类似于 LightGBM 的文档或示例用于排名:https : //github.com/Microsoft/LightGBM/tree/master/examples/lambdarank

有没有人用过 catboost 进行排名?

小智 6

从 0.9 版本开始,CatBoost 支持多种排名模式。要使用排名模式,您需要构建一个包含对象组的数据集(用户 group_id)。该算法将尝试在组内找到最佳顺序。

CatBoost 中有两种成对模式,PairLogit 和 PairLogitPairwise。对于成对模式,您需要提供成对作为数据集的一部分。PairLogit 快得多,但 PairLogitPairwise 可能会在大型数据集上提供更好的质量。

有两种排名模式 YetiRank 和 YetiRankPairwise。要使用它们,您需要在数据集中有标签。它们之间的区别是相同的, YetiRankPairwise 的计算成本更高,但可能会给出更好的结果。

还有排名和回归的混合 (QueryRMSE)、排名和分类的混合 (QueryCrossEntropy) 以及 QuerySoftMax 损失。