{
  "id": 370502,
  "title": "Ranker models vs. Binary classification models",
  "url": "/competitions/otto-recommender-system/discussion/370502",
  "author_name": "",
  "post_date": "2022-12-04T22:16:12.367209600Z",
  "votes": 15,
  "comment_count": 5,
  "views": 0,
  "content": "<p>Hi all, </p>\n<p>Many people including <a href=\"https://www.kaggle.com/cdeotte\" target=\"_blank\">@cdeotte</a> and <a href=\"https://www.kaggle.com/radek1\" target=\"_blank\">@radek1</a> are mentioning building a Gradient Boosting Ranker models as possibly the strongest solutions to this competition.</p>\n<p>I was wondering, is there any fundamental reason why a ranker model should perform better than a Binary Classifier model for this kind of problem? Is it industry standard to use ranker models for recommendation systems?</p>\n<p>Also, could someone explain what exactly does XGBoost Ranker algorithm do when fitting the model as opposed to XGBoost Classifier?</p>\n<p>Many thanks.</p>\n<p>Andrej</p>",
  "messages": [
    {
      "id": "2055217",
      "postDate": "12/04/2022 22:16:12",
      "content": "<p>Hi all, </p>\n<p>Many people including <a href=\"https://www.kaggle.com/cdeotte\" target=\"_blank\">@cdeotte</a> and <a href=\"https://www.kaggle.com/radek1\" target=\"_blank\">@radek1</a> are mentioning building a Gradient Boosting Ranker models as possibly the strongest solutions to this competition.</p>\n<p>I was wondering, is there any fundamental reason why a ranker model should perform better than a Binary Classifier model for this kind of problem? Is it industry standard to use ranker models for recommendation systems?</p>\n<p>Also, could someone explain what exactly does XGBoost Ranker algorithm do when fitting the model as opposed to XGBoost Classifier?</p>\n<p>Many thanks.</p>\n<p>Andrej</p>",
      "rawMarkdown": "Hi all, \n\nMany people including @cdeotte and @radek1 are mentioning building a Gradient Boosting Ranker models as possibly the strongest solutions to this competition.\n\nI was wondering, is there any fundamental reason why a ranker model should perform better than a Binary Classifier model for this kind of problem? Is it industry standard to use ranker models for recommendation systems?\n\nAlso, could someone explain what exactly does XGBoost Ranker algorithm do when fitting the model as opposed to XGBoost Classifier?\n\nMany thanks.\n\nAndrej",
      "votes": null
    },
    {
      "id": "2055328",
      "postDate": "12/05/2022 02:24:55",
      "content": "<p>A ranker model and binary classification model can be the same thing. There are 3 types of ranker models</p>\n<ul>\n<li>pointwise</li>\n<li>pairwise</li>\n<li>listwise</li>\n</ul>\n<p>A pointwise ranker model is binary classification. Here is the wikipedia page <a href=\"https://en.wikipedia.org/wiki/Learning_to_rank\" target=\"_blank\">here</a></p>",
      "rawMarkdown": "A ranker model and binary classification model can be the same thing. There are 3 types of ranker models\n* pointwise\n* pairwise\n* listwise\n\nA pointwise ranker model is binary classification. Here is the wikipedia page [here][1]\n\n[1]: https://en.wikipedia.org/wiki/Learning_to_rank",
      "votes": null
    },
    {
      "id": "2056798",
      "postDate": "12/06/2022 12:50:30",
      "content": "<ul>\n<li>Binary classification consider each row in trainset independent. So the loss is computed pointwise.</li>\n<li>Ranking model compute the loss for each session, so its pairwise or listwise. (one input for the model is session_id)</li>\n</ul>",
      "rawMarkdown": "Binary classification consider each row in trainset independent. So the loss is computed pointwise.\n- Ranking model compute the loss for each session, so its pairwise or listwise. (one input for the model is session_id)",
      "votes": null
    },
    {
      "id": "2056969",
      "postDate": "12/06/2022 16:09:41",
      "content": "<p>Thanks for clarifying. Can you perhaps share with which approach you have the best results/experience? </p>",
      "rawMarkdown": "Thanks for clarifying. Can you perhaps share with which approach you have the best results/experience?",
      "votes": null
    },
    {
      "id": "2057067",
      "postDate": "12/06/2022 18:03:38",
      "content": "<p>My current LB is based in pairwise loss. I didn't tried binary loss yet.</p>",
      "rawMarkdown": "My current LB is based in pairwise loss. I didn't tried binary loss yet.",
      "votes": null
    },
    {
      "id": "2131233",
      "postDate": "02/06/2023 02:15:46",
      "content": "<p><a href=\"https://github.com/lezzhov/learning_to_rank/tree/main/learning_to_rank/scripts\" target=\"_blank\">https://github.com/lezzhov/learning_to_rank/tree/main/learning_to_rank/scripts</a><br>\nCan I ask if you are using listwise or pairwise here?</p>",
      "rawMarkdown": "https://github.com/lezzhov/learning_to_rank/tree/main/learning_to_rank/scripts\nCan I ask if you are using listwise or pairwise here?",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 2055328,
      "author_name": "cdeotte",
      "author_url": "",
      "post_date": "12/05/2022 02:24:55",
      "content": "<p>A ranker model and binary classification model can be the same thing. There are 3 types of ranker models</p>\n<ul>\n<li>pointwise</li>\n<li>pairwise</li>\n<li>listwise</li>\n</ul>\n<p>A pointwise ranker model is binary classification. Here is the wikipedia page <a href=\"https://en.wikipedia.org/wiki/Learning_to_rank\" target=\"_blank\">here</a></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 2056798,
      "author_name": "titericz",
      "author_url": "",
      "post_date": "12/06/2022 12:50:30",
      "content": "<ul>\n<li>Binary classification consider each row in trainset independent. So the loss is computed pointwise.</li>\n<li>Ranking model compute the loss for each session, so its pairwise or listwise. (one input for the model is session_id)</li>\n</ul>",
      "votes": null,
      "replies": [
        {
          "id": 2056969,
          "author_name": "andrejzuba",
          "author_url": "",
          "post_date": "12/06/2022 16:09:41",
          "content": "<p>Thanks for clarifying. Can you perhaps share with which approach you have the best results/experience? </p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 2057067,
          "author_name": "titericz",
          "author_url": "",
          "post_date": "12/06/2022 18:03:38",
          "content": "<p>My current LB is based in pairwise loss. I didn't tried binary loss yet.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 2131233,
          "author_name": "trnchn",
          "author_url": "",
          "post_date": "02/06/2023 02:15:46",
          "content": "<p><a href=\"https://github.com/lezzhov/learning_to_rank/tree/main/learning_to_rank/scripts\" target=\"_blank\">https://github.com/lezzhov/learning_to_rank/tree/main/learning_to_rank/scripts</a><br>\nCan I ask if you are using listwise or pairwise here?</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "2055217": "Hi all, \n\nMany people including @cdeotte and @radek1 are mentioning building a Gradient Boosting Ranker models as possibly the strongest solutions to this competition.\n\nI was wondering, is there any fundamental reason why a ranker model should perform better than a Binary Classifier model for this kind of problem? Is it industry standard to use ranker models for recommendation systems?\n\nAlso, could someone explain what exactly does XGBoost Ranker algorithm do when fitting the model as opposed to XGBoost Classifier?\n\nMany thanks.\n\nAndrej",
    "2055328": "A ranker model and binary classification model can be the same thing. There are 3 types of ranker models\n* pointwise\n* pairwise\n* listwise\n\nA pointwise ranker model is binary classification. Here is the wikipedia page [here][1]\n\n[1]: https://en.wikipedia.org/wiki/Learning_to_rank",
    "2056798": "Binary classification consider each row in trainset independent. So the loss is computed pointwise.\n- Ranking model compute the loss for each session, so its pairwise or listwise. (one input for the model is session_id)",
    "2056969": "Thanks for clarifying. Can you perhaps share with which approach you have the best results/experience?",
    "2057067": "My current LB is based in pairwise loss. I didn't tried binary loss yet.",
    "2131233": "https://github.com/lezzhov/learning_to_rank/tree/main/learning_to_rank/scripts\nCan I ask if you are using listwise or pairwise here?"
  },
  "source": "meta"
}