【问题标题】:Xgboost pairwise ranking for 1 or 0 target variable1 或 0 目标变量的 Xgboost 成对排名
【发布时间】:2020-05-19 20:28:56
【问题描述】:

我有一个网页搜索数据集:

SearchId    WebpageId      Clicked
A           1              1
A           4              0
A           6              0

B           1              0
B           3              0
B           4              0
B           10             1

C           1              0
C           3              0
C           5              0
C           6              1
C           7              0
C           8              0
C           9              0

...

对于每次搜索,我都知道显示的网页(但不知道显示的顺序),并且我知道指向网页的链接是否被点击。每次搜索只能点击一个网页。

在这种情况下是否可以使用 xgboost 成对排名?怎么样?

如果没有,我还能用什么?

【问题讨论】:

  • 必须更好地理解 XGBoost 排名机制,如果没有训练集中的排名标签,它就不能使用。仍然对一些替代方法感兴趣......

标签: python xgboost ranking pairwise


【解决方案1】:

pairwise approach“可以判断给定文档对中哪个文档更好”:您发布的数据集在我看来更适合点式方法,这基本上是一个回归问题。

但是,鉴于您只能点击一个页面,我认为您可以将数据集转换为

SearchId    WebpageId_1   WebpageId_2     Labels^*
  A           1              4             GOOD
  A           4              6             SAME
  A           6              1             NOT_GOOD
 ...
 
 *^labels are according to the event of click on the first WebpageId.
    

运行算法(例如 XGBoost 与 rank:pairwise),最后将结果排序在一个列表中,您可以从中选择每个 SearchID 的顶部网页(排序任务可能很耗时且难以准确完成)。 对于不同的方法,您可以查看 this post 关于成对排名和神经网络

【讨论】:

    猜你喜欢
    • 2020-12-03
    • 2020-09-22
    • 2020-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2021-05-09
    相关资源
    最近更新 更多