{
  "id": 75034,
  "title": "Maybe we should take attention on Category INFO",
  "url": "/competitions/elo-merchant-category-recommendation/discussion/75034",
  "author_name": "Angle",
  "post_date": "2018-12-18T03:06:59.185000",
  "votes": 137,
  "comment_count": 42,
  "views": 0,
  "content": "<p>Here are some of my little ideas\n1. Simple aggregation makes it difficult for us to express data differently\n2. The main source of errors is obviously strongly related to the category information in the training set. (Ex. Feature 1)\n3. We should adopt a more diversified way to express the features of categories.\n4. One idea for reference is to deeply explore the relationship between continuous value changes and original category features.\n5. I used FFM class methods to extract potential high-order class interaction information\n6. The next step is to focus briefly on the dichotomy of unbalanced samples\nI hope it's inspiring...</p>\n\n<p>And.. Why is the \"Recommendation\"?\nThis is a great question.This relates to my understanding of the background of this problem.In fact, Elo is a Ranking algorithm, which is used in matching mechanism of games and score calculation mechanism of board and card games. In this problem, I prefer that ELO is a dynamic game process between the authorities and cardholders.\nSo in this case, there's going to be two logical inconsistencies in time. That is, the time delay (Month_lag) in the History_Transactions table is negative. But New_Merchant is a positive(Ex. 1 2). I have several guesses as to the causes of this contradiction:</p>\n\n<ol>\n<li><p>We actually need to train History data to verify the scoring mechanism of New_Merchant</p></li>\n<li><p>The ELO actually has a very beautiful formula, and what we need to do now is to study historical behaviors to approximate these formulas as much as possible.</p></li>\n<li><p>Why it is necessary to design this competition problem, that is, \"formula\" cannot be updated immediately in real business scenarios, and it is easy to cause survivor bias, that is, cardholders with better score are more likely to get high score, which is biased learning.</p></li>\n</ol>\n\n<p>Therefore, many problems can be explained.\nThis prediction problem with the name of the recommendation, in fact, may still use the \"refusal to infer\" technology, you can also try to use the Learning-To-Rank method, specifically how to choose, in fact, still have to consider the understanding of the game.\nIn my opinion, turning it into a machine learning regression problem is our common way of thinking, but it is easy to lose the outliers, which is the characteristic of the regression algorithm; so in my solution, we will also design a ranking. The mechanism, similar to ELO RANKING, in this ranking mechanism, I will try to discretize the scores according to the distribution of the training set. At this time, \"machine learning\" and \"rejection inference\" have become the main components of this RANK system.</p>\n\n<p>And then we can see that this becomes a \"Recommendation\" question.\nIn the formula that ELO may exist, it is obvious that a large number of discrete Category Features will be used for calculation.So it's why I choose to mining the Category Feature.</p>\n\n<p>Can you give me more thumb up's? It's my second time on playing kaggle. :)</p>",
  "messages": [
    {
      "id": 440855,
      "postDate": "2018-12-18T03:06:59.187Z",
      "content": "<p>Here are some of my little ideas\n1. Simple aggregation makes it difficult for us to express data differently\n2. The main source of errors is obviously strongly related to the category information in the training set. (Ex. Feature 1)\n3. We should adopt a more diversified way to express the features of categories.\n4. One idea for reference is to deeply explore the relationship between continuous value changes and original category features.\n5. I used FFM class methods to extract potential high-order class interaction information\n6. The next step is to focus briefly on the dichotomy of unbalanced samples\nI hope it's inspiring...</p>\n\n<p>And.. Why is the \"Recommendation\"?\nThis is a great question.This relates to my understanding of the background of this problem.In fact, Elo is a Ranking algorithm, which is used in matching mechanism of games and score calculation mechanism of board and card games. In this problem, I prefer that ELO is a dynamic game process between the authorities and cardholders.\nSo in this case, there's going to be two logical inconsistencies in time. That is, the time delay (Month_lag) in the History_Transactions table is negative. But New_Merchant is a positive(Ex. 1 2). I have several guesses as to the causes of this contradiction:</p>\n\n<ol>\n<li><p>We actually need to train History data to verify the scoring mechanism of New_Merchant</p></li>\n<li><p>The ELO actually has a very beautiful formula, and what we need to do now is to study historical behaviors to approximate these formulas as much as possible.</p></li>\n<li><p>Why it is necessary to design this competition problem, that is, \"formula\" cannot be updated immediately in real business scenarios, and it is easy to cause survivor bias, that is, cardholders with better score are more likely to get high score, which is biased learning.</p></li>\n</ol>\n\n<p>Therefore, many problems can be explained.\nThis prediction problem with the name of the recommendation, in fact, may still use the \"refusal to infer\" technology, you can also try to use the Learning-To-Rank method, specifically how to choose, in fact, still have to consider the understanding of the game.\nIn my opinion, turning it into a machine learning regression problem is our common way of thinking, but it is easy to lose the outliers, which is the characteristic of the regression algorithm; so in my solution, we will also design a ranking. The mechanism, similar to ELO RANKING, in this ranking mechanism, I will try to discretize the scores according to the distribution of the training set. At this time, \"machine learning\" and \"rejection inference\" have become the main components of this RANK system.</p>\n\n<p>And then we can see that this becomes a \"Recommendation\" question.\nIn the formula that ELO may exist, it is obvious that a large number of discrete Category Features will be used for calculation.So it's why I choose to mining the Category Feature.</p>\n\n<p>Can you give me more thumb up's? It's my second time on playing kaggle. :)</p>",
      "rawMarkdown": "Here are some of my little ideas\n1. Simple aggregation makes it difficult for us to express data differently\n2. The main source of errors is obviously strongly related to the category information in the training set. (Ex. Feature 1)\n3. We should adopt a more diversified way to express the features of categories.\n4. One idea for reference is to deeply explore the relationship between continuous value changes and original category features.\n5. I used FFM class methods to extract potential high-order class interaction information\n6. The next step is to focus briefly on the dichotomy of unbalanced samples\nI hope it's inspiring...\n\nAnd.. Why is the \"Recommendation\"?\nThis is a great question.This relates to my understanding of the background of this problem.In fact, Elo is a Ranking algorithm, which is used in matching mechanism of games and score calculation mechanism of board and card games. In this problem, I prefer that ELO is a dynamic game process between the authorities and cardholders.\nSo in this case, there's going to be two logical inconsistencies in time. That is, the time delay (Month_lag) in the History_Transactions table is negative. But New_Merchant is a positive(Ex. 1 2). I have several guesses as to the causes of this contradiction:\n\n1. We actually need to train History data to verify the scoring mechanism of New_Merchant\n\n2. The ELO actually has a very beautiful formula, and what we need to do now is to study historical behaviors to approximate these formulas as much as possible.\n\n3. Why it is necessary to design this competition problem, that is, \"formula\" cannot be updated immediately in real business scenarios, and it is easy to cause survivor bias, that is, cardholders with better score are more likely to get high score, which is biased learning.\n\nTherefore, many problems can be explained.\nThis prediction problem with the name of the recommendation, in fact, may still use the \"refusal to infer\" technology, you can also try to use the Learning-To-Rank method, specifically how to choose, in fact, still have to consider the understanding of the game.\nIn my opinion, turning it into a machine learning regression problem is our common way of thinking, but it is easy to lose the outliers, which is the characteristic of the regression algorithm; so in my solution, we will also design a ranking. The mechanism, similar to ELO RANKING, in this ranking mechanism, I will try to discretize the scores according to the distribution of the training set. At this time, \"machine learning\" and \"rejection inference\" have become the main components of this RANK system.\n\nAnd then we can see that this becomes a \"Recommendation\" question.\nIn the formula that ELO may exist, it is obvious that a large number of discrete Category Features will be used for calculation.So it's why I choose to mining the Category Feature.\n\nCan you give me more thumb up's? It's my second time on playing kaggle. :)",
      "votes": 137
    },
    {
      "id": 468611,
      "postDate": "2019-02-09T09:36:20.997Z",
      "content": "<p>Even though I don't claim to understand the post completely, it seems that it is building on an assumption that there is a link between ELO (ranking algorithm, <a href=\"https://en.wikipedia.org/wiki/Elo_rating_system\">https://en.wikipedia.org/wiki/Elo_rating_system</a>) and ELO (Brasilian credit card company, <a href=\"https://elo.com.br/\">https://elo.com.br/</a>). Are you sure it is the case?</p>",
      "rawMarkdown": "Even though I don't claim to understand the post completely, it seems that it is building on an assumption that there is a link between ELO (ranking algorithm, https://en.wikipedia.org/wiki/Elo_rating_system) and ELO (Brasilian credit card company, https://elo.com.br/). Are you sure it is the case?",
      "votes": 2
    },
    {
      "id": 441757,
      "postDate": "2018-12-19T02:49:29.277Z",
      "content": "<p>I don't understand what the topic is supposed to predict. I'd like to ask you for advice. Thank you.\n1、\nThere is a paragraph in the overview,：\n\"Elo has built machine learning models to understand the most important aspects and preferences in their customers’ lifecycle, from food to shopping. But so far none of them is specifically tailored for an individual or profile. This is where you come in“；\nI think the meaning of this sentence is that Kagglers need \"specifically tailored for an individual or profile\" for this project, is that right?\n2、\nWhat is the purpose of obtaining loyalty score, in order to evaluate whether the ELO's recommendation system is effective for people? Use the past history and the data for the next two months to fit the loyalty score. So I think this is not a predictive project. Can give us a clear explanation, what is loyalty, or what is it used for? Thanks</p>",
      "rawMarkdown": "I don't understand what the topic is supposed to predict. I'd like to ask you for advice. Thank you.\n1、\nThere is a paragraph in the overview,：\n\"Elo has built machine learning models to understand the most important aspects and preferences in their customers’ lifecycle, from food to shopping. But so far none of them is specifically tailored for an individual or profile. This is where you come in“；\nI think the meaning of this sentence is that Kagglers need \"specifically tailored for an individual or profile\" for this project, is that right?\n2、\nWhat is the purpose of obtaining loyalty score, in order to evaluate whether the ELO's recommendation system is effective for people? Use the past history and the data for the next two months to fit the loyalty score. So I think this is not a predictive project. Can give us a clear explanation, what is loyalty, or what is it used for? Thanks",
      "votes": 2,
      "replies": [
        {
          "id": 441767,
          "postDate": "2018-12-19T03:22:48.437Z",
          "content": "<p>This is a great question.This relates to my understanding of the background of this problem.In fact, Elo is a Ranking algorithm, which is used in matching mechanism of games and score calculation mechanism of board and card games. In this problem, I prefer that ELO is a dynamic game process between the authorities and cardholders.\nSo in this case, there's going to be two logical inconsistencies in time. That is, the time delay (Month_lag) in the History_Transactions table is negative. But New_Merchant is a positive(Ex. 1 2). I have several guesses as to the causes of this contradiction:</p>\n\n<ol>\n<li><p>We actually need to train History data to verify the scoring mechanism of New_Merchant</p></li>\n<li><p>The ELO actually has a very beautiful formula, and what we need to do now is to study historical behaviors to approximate these formulas as much as possible.</p></li>\n<li><p>Why it is necessary to design this competition problem, that is, \"formula\" cannot be updated immediately in real business scenarios, and it is easy to cause survivor bias, that is, cardholders with better score are more likely to get high score, which is biased learning.</p></li>\n</ol>\n\n<p>Therefore, many problems can be explained.\nThis prediction problem with the name of the recommendation, in fact, may still use the \"refusal to infer\" technology, you can also try to use the Learning-To-Rank method, specifically how to choose, in fact, still have to consider the understanding of the game.\nIn my opinion, turning it into a machine learning regression problem is our common way of thinking, but it is easy to lose the outliers, which is the characteristic of the regression algorithm; so in my solution, we will also design a ranking. The mechanism, similar to ELO RANKING, in this ranking mechanism, I will try to discretize the scores according to the distribution of the training set. At this time, \"machine learning\" and \"rejection inference\" have become the main components of this RANK system.</p>\n\n<p>And then we can see that this becomes a \"Recommendation\" question.</p>",
          "rawMarkdown": "This is a great question.This relates to my understanding of the background of this problem.In fact, Elo is a Ranking algorithm, which is used in matching mechanism of games and score calculation mechanism of board and card games. In this problem, I prefer that ELO is a dynamic game process between the authorities and cardholders.\nSo in this case, there's going to be two logical inconsistencies in time. That is, the time delay (Month_lag) in the History_Transactions table is negative. But New_Merchant is a positive(Ex. 1 2). I have several guesses as to the causes of this contradiction:\n\n1. We actually need to train History data to verify the scoring mechanism of New_Merchant\n\n2. The ELO actually has a very beautiful formula, and what we need to do now is to study historical behaviors to approximate these formulas as much as possible.\n\n3. Why it is necessary to design this competition problem, that is, \"formula\" cannot be updated immediately in real business scenarios, and it is easy to cause survivor bias, that is, cardholders with better score are more likely to get high score, which is biased learning.\n\nTherefore, many problems can be explained.\nThis prediction problem with the name of the recommendation, in fact, may still use the \"refusal to infer\" technology, you can also try to use the Learning-To-Rank method, specifically how to choose, in fact, still have to consider the understanding of the game.\nIn my opinion, turning it into a machine learning regression problem is our common way of thinking, but it is easy to lose the outliers, which is the characteristic of the regression algorithm; so in my solution, we will also design a ranking. The mechanism, similar to ELO RANKING, in this ranking mechanism, I will try to discretize the scores according to the distribution of the training set. At this time, \"machine learning\" and \"rejection inference\" have become the main components of this RANK system.\n\nAnd then we can see that this becomes a \"Recommendation\" question.\n",
          "votes": 5
        },
        {
          "id": 441780,
          "postDate": "2018-12-19T03:58:58.620Z",
          "content": "<p>First of all, thank you very much.  If I have new ideas, I will share them with you. Thanks</p>",
          "rawMarkdown": "First of all, thank you very much.  If I have new ideas, I will share them with you. Thanks"
        },
        {
          "id": 461011,
          "postDate": "2019-01-25T01:28:03.447Z",
          "rawMarkdown": "",
          "isDeleted": true
        }
      ]
    },
    {
      "id": 441005,
      "postDate": "2018-12-18T07:13:10.227Z",
      "content": "<p>For \"5. I used FFM class methods to extract potential high-order class interaction information\", do you have any references on how to do this effectively?</p>",
      "rawMarkdown": "For \"5. I used FFM class methods to extract potential high-order class interaction information\", do you have any references on how to do this effectively?",
      "votes": 2,
      "replies": [
        {
          "id": 441117,
          "postDate": "2018-12-18T09:26:58.573Z",
          "content": "<p>In CTR competition,we used to use manual interaction to give strong category features.FFM is an automatic interaction method that can provide more variety and higher accuracy. It makes category feature information more robust by means of matrix decomposition.For example, date gap is a strong Feature in this challenge. I have tried to take the date gap as a category Feature and interact with Feature 1/2/3.</p>",
          "rawMarkdown": "In CTR competition,we used to use manual interaction to give strong category features.FFM is an automatic interaction method that can provide more variety and higher accuracy. It makes category feature information more robust by means of matrix decomposition.For example, date gap is a strong Feature in this challenge. I have tried to take the date gap as a category Feature and interact with Feature 1/2/3.",
          "votes": 19
        },
        {
          "id": 445304,
          "postDate": "2018-12-26T07:19:17.787Z",
          "content": "<p>Thank you for sharing your insight. But  I have hard times understanding your explanations.  What is date gap in this context? Do u mean month_lag? Or the date gap between first and last purchase? </p>",
          "rawMarkdown": "Thank you for sharing your insight. But  I have hard times understanding your explanations.  What is date gap in this context? Do u mean month_lag? Or the date gap between first and last purchase? ",
          "votes": 3
        },
        {
          "id": 445795,
          "postDate": "2018-12-27T04:22:24.403Z",
          "content": "<p>Maybe you can try to re-think MONTH_LAG, because of this feature have many problems</p>",
          "rawMarkdown": "Maybe you can try to re-think MONTH_LAG, because of this feature have many problems",
          "votes": 4
        }
      ]
    },
    {
      "id": 440906,
      "postDate": "2018-12-18T04:41:17.257Z",
      "content": "<p>For the 2nd point:\nDid you find some samples with a large error in the valid set to analyze what features are related to the error?</p>",
      "rawMarkdown": "For the 2nd point:\nDid you find some samples with a large error in the valid set to analyze what features are related to the error?",
      "votes": 2,
      "replies": [
        {
          "id": 440912,
          "postDate": "2018-12-18T04:52:24.927Z",
          "content": "<p>Yep. I find that RMSE of a particular discount stays high in 5-folds. How does the analysis fit this value as well as possible is a very good choice.</p>",
          "rawMarkdown": "Yep. I find that RMSE of a particular discount stays high in 5-folds. How does the analysis fit this value as well as possible is a very good choice."
        },
        {
          "id": 440916,
          "postDate": "2018-12-18T04:57:13.663Z",
          "content": "<p>Thanks. It's very inspiring.</p>",
          "rawMarkdown": "Thanks. It's very inspiring.",
          "votes": 1
        },
        {
          "id": 457183,
          "postDate": "2019-01-17T03:50:12.613Z",
          "content": "<p>Hi liobinli,\nWhat does particular discount means ? Can you explain more how you deal with large error samples?</p>",
          "rawMarkdown": "Hi liobinli,\nWhat does particular discount means ? Can you explain more how you deal with large error samples?",
          "votes": 1
        },
        {
          "id": 458624,
          "postDate": "2019-01-20T04:33:11.590Z",
          "rawMarkdown": "",
          "isDeleted": true
        }
      ]
    },
    {
      "id": 471073,
      "postDate": "2019-02-14T01:59:57.413Z",
      "content": "<p>Hi, luobinli, could you tell me how many features do you use (range)?</p>",
      "rawMarkdown": "Hi, luobinli, could you tell me how many features do you use (range)?"
    },
    {
      "id": 458827,
      "postDate": "2019-01-20T14:56:53.257Z",
      "content": "<blockquote>\n  <p>I used FFM class methods to extract potential high-order class interaction information</p>\n</blockquote>\n\n<p>I was able to run FFM successfully but i am not sure how to use it as features. there is a single output for every row, did you use it as a feature to GBM?</p>",
      "rawMarkdown": "&gt; I used FFM class methods to extract potential high-order class interaction information\n\n\nI was able to run FFM successfully but i am not sure how to use it as features. there is a single output for every row, did you use it as a feature to GBM?\n",
      "replies": [
        {
          "id": 461013,
          "postDate": "2019-01-25T01:29:43.927Z",
          "rawMarkdown": "",
          "isDeleted": true
        }
      ]
    },
    {
      "id": 449880,
      "postDate": "2019-01-03T22:38:30.743Z",
      "content": "<p>I have a question about xLearn python package. In the documentation we can find the following sentence: </p>\n\n<blockquote>\n\"Note that if you use Instance-wise Normalization in training process, you also need to use the meachnism in prediction process.\"\n</blockquote>\n\n<p>Any my question how to use the meachnism in prediction process??? CV score and loss are quite Ok, but the result of a prediction is really bad: \n-0.385874\n-0.386053\n-0.385835\n-0.385713\n-0.38572\netc.</p>",
      "rawMarkdown": "I have a question about xLearn python package. In the documentation we can find the following sentence: \n<blockquote>\n\"Note that if you use Instance-wise Normalization in training process, you also need to use the meachnism in prediction process.\"\n</blockquote>\nAny my question how to use the meachnism in prediction process??? CV score and loss are quite Ok, but the result of a prediction is really bad: \n-0.385874\n-0.386053\n-0.385835\n-0.385713\n-0.38572\netc.",
      "replies": [
        {
          "id": 450024,
          "postDate": "2019-01-04T06:55:16.153Z",
          "content": "<p>you may have to set  'task':'reg'  and ffm_model.disableNorm().</p>",
          "rawMarkdown": "you may have to set  'task':'reg'  and ffm_model.disableNorm()."
        },
        {
          "id": 450120,
          "postDate": "2019-01-04T10:38:36.230Z",
          "content": "<p>'task':'reg' I already set. I was also playing with disableNorm, but I will also try to apply PCA with whitening to the dataframe. </p>",
          "rawMarkdown": "'task':'reg' I already set. I was also playing with disableNorm, but I will also try to apply PCA with whitening to the dataframe. "
        }
      ]
    },
    {
      "id": 443289,
      "postDate": "2018-12-21T11:10:59.303Z",
      "content": "<p>Thanks for you share and thoughts,good job</p>",
      "rawMarkdown": "Thanks for you share and thoughts,good job"
    },
    {
      "id": 443252,
      "postDate": "2018-12-21T09:53:25.910Z",
      "content": "<p>Hi! Thanks for the sharing. I have not used FFM before. Could you tell me which tool box you used in python? Thank you very much!</p>",
      "rawMarkdown": "Hi! Thanks for the sharing. I have not used FFM before. Could you tell me which tool box you used in python? Thank you very much!",
      "replies": [
        {
          "id": 443370,
          "postDate": "2018-12-21T14:10:10.720Z",
          "content": "<p>I would like to share this article related to FFM and its implementation.</p>\n\n<p><a href=\"https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/\">https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/</a></p>",
          "rawMarkdown": " I would like to share this article related to FFM and its implementation.\n\nhttps://www.analyticsvidhya.com/blog/2018/01/factorization-machines/",
          "votes": 7
        },
        {
          "id": 443425,
          "postDate": "2018-12-21T15:58:30.453Z",
          "content": "<p>Good job! thank you sir!</p>",
          "rawMarkdown": "Good job! thank you sir!"
        },
        {
          "id": 443670,
          "postDate": "2018-12-22T05:16:37.883Z",
          "rawMarkdown": "",
          "isDeleted": true
        },
        {
          "id": 443671,
          "postDate": "2018-12-22T05:16:55.357Z",
          "content": "<blockquote>\n  <p><strong>Ashish Gupta wrote</strong></p>\n  \n  <blockquote>\n    <p>I would like to share this article related to FFM and its implementation.</p>\n  </blockquote>\n  \n  <p><a href=\"https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/\">https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/</a>\n  I install xlearn as my custom package in kaggle, but it doesn't work, which case the kernal died(I test with little data).</p>\n</blockquote>",
          "rawMarkdown": "\n&gt; **Ashish Gupta wrote**\n&gt; \n&gt; &gt;  I would like to share this article related to FFM and its implementation.\n&gt; \n&gt; https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/\nI install xlearn as my custom package in kaggle, but it doesn't work, which case the kernal died(I test with little data)."
        },
        {
          "id": 444525,
          "postDate": "2018-12-24T07:29:57.270Z",
          "content": "<p>I use xlearn too. I think you could not run it in the kernel.</p>",
          "rawMarkdown": "I use xlearn too. I think you could not run it in the kernel."
        },
        {
          "id": 444672,
          "postDate": "2018-12-24T14:27:34.960Z",
          "content": "<p>Yes, it doesn't works on the Kernel. Do you have another suggested way of extracting more features?</p>",
          "rawMarkdown": "Yes, it doesn't works on the Kernel. Do you have another suggested way of extracting more features?",
          "votes": 3
        },
        {
          "id": 445306,
          "postDate": "2018-12-26T07:22:51.183Z",
          "content": "<p>I just use xlearn in my local machine and get a prediction value , then upload to the kernal, but doesn't get e better score, Maybe my binary task with ffm is wrong? you can try this!</p>",
          "rawMarkdown": "I just use xlearn in my local machine and get a prediction value , then upload to the kernal, but doesn't get e better score, Maybe my binary task with ffm is wrong? you can try this!"
        },
        {
          "id": 445325,
          "postDate": "2018-12-26T08:08:29.240Z",
          "content": "<p>How did you implement ffm? I would appreciate if you can give more details. Thanks!</p>",
          "rawMarkdown": "How did you implement ffm? I would appreciate if you can give more details. Thanks!"
        },
        {
          "id": 449568,
          "postDate": "2019-01-03T11:17:40.087Z",
          "content": "<p>I used the DeepFM, it's better than FM</p>",
          "rawMarkdown": "I used the DeepFM, it's better than FM",
          "votes": 2
        },
        {
          "id": 449589,
          "postDate": "2019-01-03T12:00:44.973Z",
          "content": "<p>What target did you use in for ffm model?is outlier or something elses?</p>",
          "rawMarkdown": "What target did you use in for ffm model?is outlier or something elses?"
        },
        {
          "id": 449734,
          "postDate": "2019-01-03T16:59:26.450Z",
          "content": "<p>Did u use DeepFM for feature generation or regression output as defined in the paper.</p>",
          "rawMarkdown": "Did u use DeepFM for feature generation or regression output as defined in the paper."
        },
        {
          "id": 458757,
          "postDate": "2019-01-20T12:54:58.613Z",
          "content": "<p>i followed the FFM instructions in <a href=\"https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/\">https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/</a> but kernel keeps on dying even with very small dataset</p>",
          "rawMarkdown": "i followed the FFM instructions in https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/ but kernel keeps on dying even with very small dataset"
        }
      ]
    },
    {
      "id": 442043,
      "postDate": "2018-12-19T12:05:03.237Z",
      "content": "<p>蛇佬tql！！！</p>",
      "rawMarkdown": "蛇佬tql！！！",
      "replies": [
        {
          "id": 442077,
          "postDate": "2018-12-19T13:02:01.173Z",
          "content": "<p>Thanks</p>",
          "rawMarkdown": "Thanks"
        }
      ]
    },
    {
      "id": 441008,
      "postDate": "2018-12-18T07:14:41.980Z",
      "content": "<p>Another thing I've been thinking of experimenting on is if it'd be worthwhile making separate models for different categories. We definitely have enough data</p>",
      "rawMarkdown": "Another thing I've been thinking of experimenting on is if it'd be worthwhile making separate models for different categories. We definitely have enough data",
      "replies": [
        {
          "id": 441114,
          "postDate": "2018-12-18T09:22:53.690Z",
          "content": "<p>As you said, outliers of minima and outliers of maxima deserve more taxonomic differences</p>",
          "rawMarkdown": "As you said, outliers of minima and outliers of maxima deserve more taxonomic differences"
        },
        {
          "id": 445532,
          "postDate": "2018-12-26T16:59:11.727Z",
          "content": "<p>How would that work?</p>",
          "rawMarkdown": "How would that work?"
        }
      ]
    },
    {
      "id": 453150,
      "postDate": "2019-01-09T18:33:36.100Z",
      "rawMarkdown": "",
      "votes": -2,
      "isDeleted": true
    },
    {
      "id": 441775,
      "postDate": "2018-12-19T03:50:40.870Z",
      "rawMarkdown": "",
      "isDeleted": true
    },
    {
      "id": 451202,
      "postDate": "2019-01-06T15:15:15.360Z",
      "content": "<p>Thanks , Luobin</p>",
      "rawMarkdown": "Thanks , Luobin"
    }
  ],
  "comments": [
    {
      "id": 468611,
      "author_name": "Andrey Vykhodtsev",
      "author_url": "",
      "post_date": "2019-02-09T09:36:20.997000",
      "content": "<p>Even though I don't claim to understand the post completely, it seems that it is building on an assumption that there is a link between ELO (ranking algorithm, <a href=\"https://en.wikipedia.org/wiki/Elo_rating_system\">https://en.wikipedia.org/wiki/Elo_rating_system</a>) and ELO (Brasilian credit card company, <a href=\"https://elo.com.br/\">https://elo.com.br/</a>). Are you sure it is the case?</p>",
      "votes": 2,
      "replies": []
    },
    {
      "id": 441757,
      "author_name": "u2",
      "author_url": "",
      "post_date": "2018-12-19T02:49:29.277000",
      "content": "<p>I don't understand what the topic is supposed to predict. I'd like to ask you for advice. Thank you.\n1、\nThere is a paragraph in the overview,：\n\"Elo has built machine learning models to understand the most important aspects and preferences in their customers’ lifecycle, from food to shopping. But so far none of them is specifically tailored for an individual or profile. This is where you come in“；\nI think the meaning of this sentence is that Kagglers need \"specifically tailored for an individual or profile\" for this project, is that right?\n2、\nWhat is the purpose of obtaining loyalty score, in order to evaluate whether the ELO's recommendation system is effective for people? Use the past history and the data for the next two months to fit the loyalty score. So I think this is not a predictive project. Can give us a clear explanation, what is loyalty, or what is it used for? Thanks</p>",
      "votes": 2,
      "replies": [
        {
          "id": 441767,
          "author_name": "Angle",
          "author_url": "",
          "post_date": "2018-12-19T03:22:48.437000",
          "content": "<p>This is a great question.This relates to my understanding of the background of this problem.In fact, Elo is a Ranking algorithm, which is used in matching mechanism of games and score calculation mechanism of board and card games. In this problem, I prefer that ELO is a dynamic game process between the authorities and cardholders.\nSo in this case, there's going to be two logical inconsistencies in time. That is, the time delay (Month_lag) in the History_Transactions table is negative. But New_Merchant is a positive(Ex. 1 2). I have several guesses as to the causes of this contradiction:</p>\n\n<ol>\n<li><p>We actually need to train History data to verify the scoring mechanism of New_Merchant</p></li>\n<li><p>The ELO actually has a very beautiful formula, and what we need to do now is to study historical behaviors to approximate these formulas as much as possible.</p></li>\n<li><p>Why it is necessary to design this competition problem, that is, \"formula\" cannot be updated immediately in real business scenarios, and it is easy to cause survivor bias, that is, cardholders with better score are more likely to get high score, which is biased learning.</p></li>\n</ol>\n\n<p>Therefore, many problems can be explained.\nThis prediction problem with the name of the recommendation, in fact, may still use the \"refusal to infer\" technology, you can also try to use the Learning-To-Rank method, specifically how to choose, in fact, still have to consider the understanding of the game.\nIn my opinion, turning it into a machine learning regression problem is our common way of thinking, but it is easy to lose the outliers, which is the characteristic of the regression algorithm; so in my solution, we will also design a ranking. The mechanism, similar to ELO RANKING, in this ranking mechanism, I will try to discretize the scores according to the distribution of the training set. At this time, \"machine learning\" and \"rejection inference\" have become the main components of this RANK system.</p>\n\n<p>And then we can see that this becomes a \"Recommendation\" question.</p>",
          "votes": 5,
          "replies": []
        },
        {
          "id": 441780,
          "author_name": "u2",
          "author_url": "",
          "post_date": "2018-12-19T03:58:58.620000",
          "content": "<p>First of all, thank you very much.  If I have new ideas, I will share them with you. Thanks</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 461011,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-01-25T01:28:03.447000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 441005,
      "author_name": "Lorenzo Ampil",
      "author_url": "",
      "post_date": "2018-12-18T07:13:10.227000",
      "content": "<p>For \"5. I used FFM class methods to extract potential high-order class interaction information\", do you have any references on how to do this effectively?</p>",
      "votes": 2,
      "replies": [
        {
          "id": 441117,
          "author_name": "Angle",
          "author_url": "",
          "post_date": "2018-12-18T09:26:58.573000",
          "content": "<p>In CTR competition,we used to use manual interaction to give strong category features.FFM is an automatic interaction method that can provide more variety and higher accuracy. It makes category feature information more robust by means of matrix decomposition.For example, date gap is a strong Feature in this challenge. I have tried to take the date gap as a category Feature and interact with Feature 1/2/3.</p>",
          "votes": 19,
          "replies": []
        },
        {
          "id": 445304,
          "author_name": "Salamat",
          "author_url": "",
          "post_date": "2018-12-26T07:19:17.787000",
          "content": "<p>Thank you for sharing your insight. But  I have hard times understanding your explanations.  What is date gap in this context? Do u mean month_lag? Or the date gap between first and last purchase? </p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 445795,
          "author_name": "Angle",
          "author_url": "",
          "post_date": "2018-12-27T04:22:24.403000",
          "content": "<p>Maybe you can try to re-think MONTH_LAG, because of this feature have many problems</p>",
          "votes": 4,
          "replies": []
        }
      ]
    },
    {
      "id": 440906,
      "author_name": "Correlation",
      "author_url": "",
      "post_date": "2018-12-18T04:41:17.257000",
      "content": "<p>For the 2nd point:\nDid you find some samples with a large error in the valid set to analyze what features are related to the error?</p>",
      "votes": 2,
      "replies": [
        {
          "id": 440912,
          "author_name": "Angle",
          "author_url": "",
          "post_date": "2018-12-18T04:52:24.927000",
          "content": "<p>Yep. I find that RMSE of a particular discount stays high in 5-folds. How does the analysis fit this value as well as possible is a very good choice.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 440916,
          "author_name": "Correlation",
          "author_url": "",
          "post_date": "2018-12-18T04:57:13.663000",
          "content": "<p>Thanks. It's very inspiring.</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 457183,
          "author_name": "Salamat",
          "author_url": "",
          "post_date": "2019-01-17T03:50:12.613000",
          "content": "<p>Hi liobinli,\nWhat does particular discount means ? Can you explain more how you deal with large error samples?</p>",
          "votes": 1,
          "replies": []
        },
        {
          "id": 458624,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-01-20T04:33:11.590000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 471073,
      "author_name": "Rae Huang",
      "author_url": "",
      "post_date": "2019-02-14T01:59:57.413000",
      "content": "<p>Hi, luobinli, could you tell me how many features do you use (range)?</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 458827,
      "author_name": "dylonLL",
      "author_url": "",
      "post_date": "2019-01-20T14:56:53.257000",
      "content": "<blockquote>\n  <p>I used FFM class methods to extract potential high-order class interaction information</p>\n</blockquote>\n\n<p>I was able to run FFM successfully but i am not sure how to use it as features. there is a single output for every row, did you use it as a feature to GBM?</p>",
      "votes": 0,
      "replies": [
        {
          "id": 461013,
          "author_name": "",
          "author_url": "",
          "post_date": "2019-01-25T01:29:43.927000",
          "content": "",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 449880,
      "author_name": "fisher",
      "author_url": "",
      "post_date": "2019-01-03T22:38:30.743000",
      "content": "<p>I have a question about xLearn python package. In the documentation we can find the following sentence: </p>\n\n<blockquote>\n\"Note that if you use Instance-wise Normalization in training process, you also need to use the meachnism in prediction process.\"\n</blockquote>\n\n<p>Any my question how to use the meachnism in prediction process??? CV score and loss are quite Ok, but the result of a prediction is really bad: \n-0.385874\n-0.386053\n-0.385835\n-0.385713\n-0.38572\netc.</p>",
      "votes": 0,
      "replies": [
        {
          "id": 450024,
          "author_name": "Link",
          "author_url": "",
          "post_date": "2019-01-04T06:55:16.153000",
          "content": "<p>you may have to set  'task':'reg'  and ffm_model.disableNorm().</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 450120,
          "author_name": "fisher",
          "author_url": "",
          "post_date": "2019-01-04T10:38:36.230000",
          "content": "<p>'task':'reg' I already set. I was also playing with disableNorm, but I will also try to apply PCA with whitening to the dataframe. </p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 443289,
      "author_name": "",
      "author_url": "",
      "post_date": "2018-12-21T11:10:59.303000",
      "content": "<p>Thanks for you share and thoughts,good job</p>",
      "votes": 0,
      "replies": []
    },
    {
      "id": 443252,
      "author_name": "Shuwei Zhang",
      "author_url": "",
      "post_date": "2018-12-21T09:53:25.910000",
      "content": "<p>Hi! Thanks for the sharing. I have not used FFM before. Could you tell me which tool box you used in python? Thank you very much!</p>",
      "votes": 0,
      "replies": [
        {
          "id": 443370,
          "author_name": "Ashish Gupta",
          "author_url": "",
          "post_date": "2018-12-21T14:10:10.720000",
          "content": "<p>I would like to share this article related to FFM and its implementation.</p>\n\n<p><a href=\"https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/\">https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/</a></p>",
          "votes": 7,
          "replies": []
        },
        {
          "id": 443425,
          "author_name": "Jianfei Wang",
          "author_url": "",
          "post_date": "2018-12-21T15:58:30.453000",
          "content": "<p>Good job! thank you sir!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 443670,
          "author_name": "",
          "author_url": "",
          "post_date": "2018-12-22T05:16:37.883000",
          "content": "",
          "votes": 0,
          "replies": []
        },
        {
          "id": 443671,
          "author_name": "Jianfei Wang",
          "author_url": "",
          "post_date": "2018-12-22T05:16:55.357000",
          "content": "<blockquote>\n  <p><strong>Ashish Gupta wrote</strong></p>\n  \n  <blockquote>\n    <p>I would like to share this article related to FFM and its implementation.</p>\n  </blockquote>\n  \n  <p><a href=\"https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/\">https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/</a>\n  I install xlearn as my custom package in kaggle, but it doesn't work, which case the kernal died(I test with little data).</p>\n</blockquote>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 444525,
          "author_name": "Link",
          "author_url": "",
          "post_date": "2018-12-24T07:29:57.270000",
          "content": "<p>I use xlearn too. I think you could not run it in the kernel.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 444672,
          "author_name": "Ashish Gupta",
          "author_url": "",
          "post_date": "2018-12-24T14:27:34.960000",
          "content": "<p>Yes, it doesn't works on the Kernel. Do you have another suggested way of extracting more features?</p>",
          "votes": 3,
          "replies": []
        },
        {
          "id": 445306,
          "author_name": "Jianfei Wang",
          "author_url": "",
          "post_date": "2018-12-26T07:22:51.183000",
          "content": "<p>I just use xlearn in my local machine and get a prediction value , then upload to the kernal, but doesn't get e better score, Maybe my binary task with ffm is wrong? you can try this!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 445325,
          "author_name": "Salamat",
          "author_url": "",
          "post_date": "2018-12-26T08:08:29.240000",
          "content": "<p>How did you implement ffm? I would appreciate if you can give more details. Thanks!</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 449568,
          "author_name": "Angle",
          "author_url": "",
          "post_date": "2019-01-03T11:17:40.087000",
          "content": "<p>I used the DeepFM, it's better than FM</p>",
          "votes": 2,
          "replies": []
        },
        {
          "id": 449589,
          "author_name": "Ethan",
          "author_url": "",
          "post_date": "2019-01-03T12:00:44.973000",
          "content": "<p>What target did you use in for ffm model?is outlier or something elses?</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 449734,
          "author_name": "SubikashPal",
          "author_url": "",
          "post_date": "2019-01-03T16:59:26.450000",
          "content": "<p>Did u use DeepFM for feature generation or regression output as defined in the paper.</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 458757,
          "author_name": "dylonLL",
          "author_url": "",
          "post_date": "2019-01-20T12:54:58.613000",
          "content": "<p>i followed the FFM instructions in <a href=\"https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/\">https://www.analyticsvidhya.com/blog/2018/01/factorization-machines/</a> but kernel keeps on dying even with very small dataset</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 442043,
      "author_name": "Ethan",
      "author_url": "",
      "post_date": "2018-12-19T12:05:03.237000",
      "content": "<p>蛇佬tql！！！</p>",
      "votes": 0,
      "replies": [
        {
          "id": 442077,
          "author_name": "Angle",
          "author_url": "",
          "post_date": "2018-12-19T13:02:01.173000",
          "content": "<p>Thanks</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 441008,
      "author_name": "Lorenzo Ampil",
      "author_url": "",
      "post_date": "2018-12-18T07:14:41.980000",
      "content": "<p>Another thing I've been thinking of experimenting on is if it'd be worthwhile making separate models for different categories. We definitely have enough data</p>",
      "votes": 0,
      "replies": [
        {
          "id": 441114,
          "author_name": "Angle",
          "author_url": "",
          "post_date": "2018-12-18T09:22:53.690000",
          "content": "<p>As you said, outliers of minima and outliers of maxima deserve more taxonomic differences</p>",
          "votes": 0,
          "replies": []
        },
        {
          "id": 445532,
          "author_name": "João Paulo Martins",
          "author_url": "",
          "post_date": "2018-12-26T16:59:11.727000",
          "content": "<p>How would that work?</p>",
          "votes": 0,
          "replies": []
        }
      ]
    },
    {
      "id": 453150,
      "author_name": "",
      "author_url": "",
      "post_date": "2019-01-09T18:33:36.100000",
      "content": "",
      "votes": -2,
      "replies": []
    },
    {
      "id": 441775,
      "author_name": "",
      "author_url": "",
      "post_date": "2018-12-19T03:50:40.870000",
      "content": "",
      "votes": 0,
      "replies": []
    },
    {
      "id": 451202,
      "author_name": "Neo Zhao",
      "author_url": "",
      "post_date": "2019-01-06T15:15:15.360000",
      "content": "<p>Thanks , Luobin</p>",
      "votes": 0,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "440855": "Here are some of my little ideas\n1. Simple aggregation makes it difficult for us to express data differently\n2. The main source of errors is obviously strongly related to the category information in the training set. (Ex. Feature 1)\n3. We should adopt a more diversified way to express the features of categories.\n4. One idea for reference is to deeply explore the relationship between continuous value changes and original category features.\n5. I used FFM class methods to extract potential high-order class interaction information\n6. The next step is to focus briefly on the dichotomy of unbalanced samples\nI hope it's inspiring...\n\nAnd.. Why is the \"Recommendation\"?\nThis is a great question.This relates to my understanding of the background of this problem.In fact, Elo is a Ranking algorithm, which is used in matching mechanism of games and score calculation mechanism of board and card games. In this problem, I prefer that ELO is a dynamic game process between the authorities and cardholders.\nSo in this case, there's going to be two logical inconsistencies in time. That is, the time delay (Month_lag) in the History_Transactions table is negative. But New_Merchant is a positive(Ex. 1 2). I have several guesses as to the causes of this contradiction:\n\n1. We actually need to train History data to verify the scoring mechanism of New_Merchant\n\n2. The ELO actually has a very beautiful formula, and what we need to do now is to study historical behaviors to approximate these formulas as much as possible.\n\n3. Why it is necessary to design this competition problem, that is, \"formula\" cannot be updated immediately in real business scenarios, and it is easy to cause survivor bias, that is, cardholders with better score are more likely to get high score, which is biased learning.\n\nTherefore, many problems can be explained.\nThis prediction problem with the name of the recommendation, in fact, may still use the \"refusal to infer\" technology, you can also try to use the Learning-To-Rank method, specifically how to choose, in fact, still have to consider the understanding of the game.\nIn my opinion, turning it into a machine learning regression problem is our common way of thinking, but it is easy to lose the outliers, which is the characteristic of the regression algorithm; so in my solution, we will also design a ranking. The mechanism, similar to ELO RANKING, in this ranking mechanism, I will try to discretize the scores according to the distribution of the training set. At this time, \"machine learning\" and \"rejection inference\" have become the main components of this RANK system.\n\nAnd then we can see that this becomes a \"Recommendation\" question.\nIn the formula that ELO may exist, it is obvious that a large number of discrete Category Features will be used for calculation.So it's why I choose to mining the Category Feature.\n\nCan you give me more thumb up's? It's my second time on playing kaggle. :)",
    "468611": "Even though I don't claim to understand the post completely, it seems that it is building on an assumption that there is a link between ELO (ranking algorithm, https://en.wikipedia.org/wiki/Elo_rating_system) and ELO (Brasilian credit card company, https://elo.com.br/). Are you sure it is the case?",
    "441757": "I don't understand what the topic is supposed to predict. I'd like to ask you for advice. Thank you.\n1、\nThere is a paragraph in the overview,：\n\"Elo has built machine learning models to understand the most important aspects and preferences in their customers’ lifecycle, from food to shopping. But so far none of them is specifically tailored for an individual or profile. This is where you come in“；\nI think the meaning of this sentence is that Kagglers need \"specifically tailored for an individual or profile\" for this project, is that right?\n2、\nWhat is the purpose of obtaining loyalty score, in order to evaluate whether the ELO's recommendation system is effective for people? Use the past history and the data for the next two months to fit the loyalty score. So I think this is not a predictive project. Can give us a clear explanation, what is loyalty, or what is it used for? Thanks",
    "441005": "For \"5. I used FFM class methods to extract potential high-order class interaction information\", do you have any references on how to do this effectively?",
    "440906": "For the 2nd point:\nDid you find some samples with a large error in the valid set to analyze what features are related to the error?",
    "471073": "Hi, luobinli, could you tell me how many features do you use (range)?",
    "458827": "&gt; I used FFM class methods to extract potential high-order class interaction information\n\n\nI was able to run FFM successfully but i am not sure how to use it as features. there is a single output for every row, did you use it as a feature to GBM?\n",
    "449880": "I have a question about xLearn python package. In the documentation we can find the following sentence: \n<blockquote>\n\"Note that if you use Instance-wise Normalization in training process, you also need to use the meachnism in prediction process.\"\n</blockquote>\nAny my question how to use the meachnism in prediction process??? CV score and loss are quite Ok, but the result of a prediction is really bad: \n-0.385874\n-0.386053\n-0.385835\n-0.385713\n-0.38572\netc.",
    "443289": "Thanks for you share and thoughts,good job",
    "443252": "Hi! Thanks for the sharing. I have not used FFM before. Could you tell me which tool box you used in python? Thank you very much!",
    "442043": "蛇佬tql！！！",
    "441008": "Another thing I've been thinking of experimenting on is if it'd be worthwhile making separate models for different categories. We definitely have enough data",
    "453150": "",
    "441775": "",
    "451202": "Thanks , Luobin"
  }
}