{
  "id": 2082,
  "title": "0.711 is the new 0",
  "url": "/competitions/FacebookRecruiting/discussion/2082",
  "author_name": "",
  "post_date": "2012-06-26T01:01:04.350Z",
  "votes": 11,
  "comment_count": 45,
  "views": 35432,
  "content": "<p>Assume forward link for a node is a link going out of the node. And backward link is the link going into the node. Ie the forwards of A is the people A is following. And backwards of A is the people that follow A.</p>\r\n<p>Assume X is the node for which we want to find forward links for.</p>\r\n<p>The algorithm goes like this:</p>\r\n<p>The node X has 1,000,000 credits. It splits it to the number of connections(both forwards and backwards) it has and gives them to them.</p>\r\n<p>Each node that gets credit:</p>\r\n<p>1. Keeps half of the credits for itself.</p>\r\n<p>2. Divides the credits it received by the number of links and distributes them. Like X did, but with one difference. Backward links do not get to keep the credits. Only to redistribute them.</p>\r\n<p>&nbsp;</p>\r\n<p>Repeat 3 times.</p>\r\n<p>&nbsp;</p>\r\n<p>Q &amp; As:</p>\r\n<p>&nbsp;</p>\r\n<p>a .Why keep only half the credits?</p>\r\n<p>For the backwards links we only want to connect to the links that have a higher degree of being connected back. When a node Y keeps half of the credits and redistributes the rest to its links, it will get credits back for its backward connections that have\r\n them in its forward connections. I.e. the more &quot;friends&quot; it has the more credits it will get back.</p>\r\n<p>&nbsp;</p>\r\n<p>b. Why backward connections don't get credits?&nbsp;</p>\r\n<p>Because we are interested in forward connections. Also like this we are trying to discover forward only links of node X that where lost. I.e. Lets say nodes A, B, C and D are being followed as a group by a lot of people. Now lets say X is one of them and\r\n it lost its connection to node D.</p>\r\n<p>Nodes A,B,C will get credits, which they will pass to their followers, which in turn they will pass to D. Hence D is discovered!</p>\r\n<p>&nbsp;</p>\r\n<p>The code below gives a score of 0.711. So its the new 0!</p>\r\n<p>&nbsp;</p>\r\n<p>To run it use the train file as a first argument and the test file as the second. Please strip any headers from those files.</p>",
  "messages": [
    {
      "id": "11883",
      "postDate": "06/26/2012 01:01:04",
      "content": "<p>Assume forward link for a node is a link going out of the node. And backward link is the link going into the node. Ie the forwards of A is the people A is following. And backwards of A is the people that follow A.</p>\r\n<p>Assume X is the node for which we want to find forward links for.</p>\r\n<p>The algorithm goes like this:</p>\r\n<p>The node X has 1,000,000 credits. It splits it to the number of connections(both forwards and backwards) it has and gives them to them.</p>\r\n<p>Each node that gets credit:</p>\r\n<p>1. Keeps half of the credits for itself.</p>\r\n<p>2. Divides the credits it received by the number of links and distributes them. Like X did, but with one difference. Backward links do not get to keep the credits. Only to redistribute them.</p>\r\n<p>&nbsp;</p>\r\n<p>Repeat 3 times.</p>\r\n<p>&nbsp;</p>\r\n<p>Q &amp; As:</p>\r\n<p>&nbsp;</p>\r\n<p>a .Why keep only half the credits?</p>\r\n<p>For the backwards links we only want to connect to the links that have a higher degree of being connected back. When a node Y keeps half of the credits and redistributes the rest to its links, it will get credits back for its backward connections that have\r\n them in its forward connections. I.e. the more &quot;friends&quot; it has the more credits it will get back.</p>\r\n<p>&nbsp;</p>\r\n<p>b. Why backward connections don't get credits?&nbsp;</p>\r\n<p>Because we are interested in forward connections. Also like this we are trying to discover forward only links of node X that where lost. I.e. Lets say nodes A, B, C and D are being followed as a group by a lot of people. Now lets say X is one of them and\r\n it lost its connection to node D.</p>\r\n<p>Nodes A,B,C will get credits, which they will pass to their followers, which in turn they will pass to D. Hence D is discovered!</p>\r\n<p>&nbsp;</p>\r\n<p>The code below gives a score of 0.711. So its the new 0!</p>\r\n<p>&nbsp;</p>\r\n<p>To run it use the train file as a first argument and the test file as the second. Please strip any headers from those files.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11884",
      "postDate": "06/26/2012 04:16:04",
      "content": "<p>It sounds a lot like you just reinvented PageRank/EdgeRank.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11885",
      "postDate": "06/26/2012 04:34:57",
      "content": "Never heard of edgerank.. But yeah I guess it looks somewhat like pagerank. But needs quite a lot if tweaking. At the current stage a backward connection with a lot of &quot;friends&quot; will probable get better score than one with less friend but already connected\r\n to the &quot;user's immediate network&quot;. Also discovering lost single forward connections may need to get a boost when the user has has high &quot;follower&quot; index or high peer index. Anyway. Lots of ways to tweak it and play around. By the way to compute predictions\r\n for the &quot;test&quot; takes about 15 mins on a 10 node cluster. So anybody trying it be patient..",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11886",
      "postDate": "06/26/2012 05:02:20",
      "content": "<p>Looking at the code, it seems that on the first step you allow backward-connected nodes to retain credit, but on deeper steps you do not (contrast score<em>network with propagate</em>score).</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11887",
      "postDate": "06/26/2012 05:25:06",
      "content": "Yes. That's on purpose. We are interested in making forward connections only with the direct backward connections. 2nd line backwards (or forward-&gt;backward) are too of long shot to get connected to them.. (And if the are of interest they shall get some\r\n credit from forward connections.I am much more likely to follow somebody the people that follow me or that I follow, follow. Than to follow somebody who follows the one who follows me..). But they play critical role for transferring the credit to their forwards.\r\n I think I understand your concern of under-crediting a lost &quot;friend&quot;. It's something that needs tweaking. Any suggestions?",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11888",
      "postDate": "06/26/2012 05:50:05",
      "content": "<p>The approach makes sense, I was just checking if the description or the code was what you meant.</p>\r\n<p>Here, at least, it's going to take 20 days to actually run that, so no 0.711 for me!</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11891",
      "postDate": "06/26/2012 12:26:56",
      "content": "<p>My first attemp is similar to this method, using a modified random walk with restart from each node that need to be predict following nodes.</p>\r\n<p>That is, assume that q is node to be predicted, we start random walk with restart with probability 0.15 to return to q, and 0.85 to fly to other nodes.</p>\r\n<p>Any other nodes except q will receive a random walk score that indicates the probability of reaching this node from q in 20 iteration.</p>\r\n<p>This is similar to : instead of using 0.5 to keep credit, I use 0.15, and the repeated times is set to 20.</p>\r\n<p>But I only get map@10 around 0.004 and then I give up this method totally.</p>\r\n<p>Very curious why you achive at 0.71, will try and see:)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11901",
      "postDate": "06/26/2012 17:00:01",
      "content": "<p>If you are using python on a linux/mac machine with multiple cores and plenty of ram, this method is very easy to parallelize. See the python documentation for the multiprocessing module:&nbsp;http://docs.python.org/library/multiprocessing.html</p>\r\n<p>The attached code runs considerbly faster than 20 hours on 4 cores, also note additional functions added to utilities.py</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11902",
      "postDate": "06/26/2012 17:18:48",
      "content": "<p>We have removed the code posted to this thread by Den Souleo and others.&nbsp; We encourage contestants to use the competition forums to discuss and learn from each other, but posting full solution code has a direct impact on the integrity of the recruiting competition.&nbsp;&nbsp;\r\n If you receive an interview with Facebook, you will be asked to present code that only reflects your own work.&nbsp; Using code that was posted by another user will not help you, and you should be aware of this before selecting such work as your final submission.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11903",
      "postDate": "06/26/2012 17:27:06",
      "content": "<p>You removed the code after 16 hours? Is that fair towards us who did not have a look at the code?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11904",
      "postDate": "06/26/2012 17:30:22",
      "content": "<p>With respect, I've had equivalent code up on the forum for nineteen days already. At the time I posted it, this code yielded results not dissimilar in ranking from the current offers in this thread. The result, I believe, was to help kaggle users learn and\r\n advance more quickly, in effect raising the bar. Already with a score of 0.711, this code will scarcely get you into the top ten, and certainly will not by the end of the competition. I don't believe posting code here violates any agreement made by kaggle\r\n users. It is already the case that using code posted by other users will not help you to win. On what grounds can this selective censoring be truly justified?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11905",
      "postDate": "06/26/2012 17:37:37",
      "content": "",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11906",
      "postDate": "06/26/2012 17:37:41",
      "content": "<p>[quote=SivaP;11903]</p>\r\n<p>You removed the code after 16 hours? Is that fair towards us who did not have a look at the code?</p>\r\n<p>[/quote]</p>\r\n<p>We are discussing the situation with users who downloaded the code during the 16 hour time window</p>\r\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11908",
      "postDate": "06/26/2012 17:43:37",
      "content": "<p>[quote=Aaron Schumacher;11904]</p>\r\n<p>With respect, I've had equivalent code up on the forum for nineteen days already. At the time I posted it, this code yielded results not dissimilar in ranking from the current offers in this thread. The result, I believe, was to help kaggle users learn and\r\n advance more quickly, in effect raising the bar. Already with a score of 0.711, this code will scarcely get you into the top ten, and certainly will not by the end of the competition. I don't believe posting code here violates any agreement made by kaggle\r\n users. It is already the case that using code posted by other users will not help you to win. On what grounds can this selective censoring be truly justified?</p>\r\n<p>[/quote]</p>\r\n<p>&nbsp;</p>\r\n<p>Hi Aaron.&nbsp; I agree with you that the purpose of the forums should be to help Kaggle users climb the [machine] learning curve, and I don't want to be in the position of censoring anybody.&nbsp; However, this is starting to get out of hand.&nbsp; It is one thing to\r\n post code snippets, but another to post full solutions.&nbsp; The purpose of a recruiting competition is to give participants a chance to demonstrate their skills to a potential employer.&nbsp; Posting full solution code undermines this for everybody, throwing the originality\r\n of everyone's work in doubt.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11910",
      "postDate": "06/26/2012 17:54:55",
      "content": "<p>Anyway, the algorithm is written in the start of this post, and it is is based on pageRank/edgeRank. Anyone can implement it now. The users who downloaded the file will have to re-implement it by themselves anyway! And as aaron stated, 0.71130 won't be enough\r\n to make it to top 10...</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11911",
      "postDate": "06/26/2012 18:01:25",
      "content": "<p>Den's case is much different from Aaron since Den has NO ranking on this competition&nbsp;after posting the code! The purpose of doing that is kind of suspicious. On the other hand, Aaron is a very&nbsp;helpful person as we can see. BTW, Aaron's result could be also\r\n getton after obtaining stats of inbound and outbound links based on Bayes' theorem.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11912",
      "postDate": "06/26/2012 18:01:53",
      "content": "<p>Yes, we could have deleted the entire post, but you can't put an idea back in the bottle (especially when its based on such a well known algo).&nbsp; We're not saying you can't use an approach based on PageRank/EdgeRank, but that you shouldn't just be recycling\r\n someone else's code to try to slip through an interview screen.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11913",
      "postDate": "06/26/2012 18:10:25",
      "content": "<p>There is an issue. People who've seen the code will rewrite it, combine it with their own approaches and get better score than equally skilled people who haven't seen the code. That's pretty unfair.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11915",
      "postDate": "06/26/2012 18:36:39",
      "content": "<p>a) Just google for the code</p>\r\n<p>b) The code will *not* put you into final top 10</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11916",
      "postDate": "06/26/2012 18:44:02",
      "content": "<p>I just received this email:</p>\r\n<p class=\"x_x_p1\" style=\"padding-left:30px\">&quot;You are receiving this email because you downloaded the files that were posted to competition thread &quot; 0.711 is the new 0&quot; before they were removed by the competition admins. There will be no backlash for having\r\n downloaded the files, but we respectfully ask that you inform us of any submissions you have already made based on this code so that we can remove them from the leaderboard.&nbsp; If you have any questions about why the files were removed, please feel free to contact\r\n us to discuss the situation.&quot;</p>\r\n<p class=\"x_x_p1\">So how does this work? I never ran that actual code, but I did look at it and integrated some of the ideas into my solution. Sorry, but I can't &quot;forget&quot; what I saw. Does that mean I can't submit any solutions based on this idea anymore? This\r\n makes no sense.</p>\r\n<p class=\"x_x_p1\">I think Kaggle put itself in a difficult situation. How can you possibly know that everybody is honest and tells you exactly which submissions they made based on that code?&nbsp;</p>\r\n<p class=\"x_x_p1\">My suggestion would be to put the code back on the forum for everyone to see, and clarify the rules as of what can be posted on the forums from now on. I'm sure the guys at Facebook can figure out in an interview, if someone has no idea about\r\n the code they submitted.</p>\r\n<p class=\"x_x_p1\">By the way, this is a quote from your own rules:</p>\r\n<p class=\"x_x_p1\" style=\"padding-left:30px\"><span>&quot;privately sharing code or data is not permitted outside of teams (sharing data or code is permissible if made available to all players, such as on the forums)&quot;</span></p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11917",
      "postDate": "06/26/2012 18:46:01",
      "content": "<p>I did receive the same email and replied basically the same thing.</p>\r\n<p>Most probably, the code will be up again soon, it is the most sensible solution.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11919",
      "postDate": "06/26/2012 18:57:14",
      "content": "<p>I was one of the individuals who downloaded the code. &nbsp;As others have noted, the algorithm is described in the first post and it is a variant of the PageRank algorithm. &nbsp;So, if you didn't see the code, look up PageRank on WikiPedia and then look at Den Souleo's\r\n description above and the subsequent clarifications.</p>\r\n<p><strong>Did I benefit from Den Souleo's post?</strong></p>\r\n<p>Yes. &nbsp;PageRank/EdgeRank was on the list of algorithms I planned on on investigating. Den's post moved its implementation up to the top of the list.</p>\r\n<p><strong>Did I use Den Souleo's code?</strong></p>\r\n<p>Not directly. &nbsp;I read his code to clarify his algorithm description. &nbsp;I also implemented a version of his algorithm in Java.</p>\r\n<p><strong>Would I have implemented the algorithm exactly the same way without seeing his post?</strong></p>\r\n<p>No. &nbsp;But again, the algorithm is not particularly original. &nbsp;I would have made different initial implementation decisions. &nbsp;Also, I view his description as a good start but hardly an optimized implementation.&nbsp;</p>\r\n<p><strong>Would I have initially implemented Den's algorithm the same way without seeing his code?</strong></p>\r\n<p>Maybe. &nbsp;However, his original description did not match his code. Someone who now reads the thread can reconstruct the algorithm based on subsequent clarifications.</p>\r\n<p>&nbsp;</p>\r\n<p>I recognize that the Kaggle team is trying to strike a difficult balance here but I would suggest a slightly different tack. &nbsp;There are plenty of software similarity tools out there (MOSS is especially good). &nbsp;Let everyone know (or not) that you plan on\r\n running competitors' code thru such tools. Update the terms of the competition, if need be, to indicate that unattributed third-party code is grounds for dismissal.</p>\r\n<p>As the prize for this competition is a job interview, a winner should be prepared to discuss all aspects of his/her model implementation. I would hope that Facebook is most interested in one's thought process, how one worked through implementation details\r\n and iterated through potential model tweaks/blends. It is good form to document/footnote your algorithm selection. All this forms your &quot;story&quot;. &nbsp;If your story is, &quot;uhhh, I cut/paste some code from the competition forum&quot; then you won't get very far in the interview\r\n (assuming you magically won the competition with someone else's code).</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11921",
      "postDate": "06/26/2012 19:10:53",
      "content": "<p>I agree with Dave. Of course you could just google it. If you know the competition name, and the exact score it would achieve you can reach the code.\r\n<strong>Anyway, put back the code. It's more fair.</strong> It won't make to top 10! Just enforce this &quot;no complete code sharing&quot; from now on!</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11922",
      "postDate": "06/26/2012 19:11:20",
      "content": "<p>The files have been republished.&nbsp; Many of you made the strong point that some have already seen the files so the most sensible solution is to allow everyone access to the same information.&nbsp; As Dave Klein points out, if the prize is a job interview, it won't\r\n be much help if you just c/p someone else's work.</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11923",
      "postDate": "06/26/2012 19:14:00",
      "content": "<p>[quote=apollobp;11916]</p>\r\n<p class=\"x_x_x_p1\">By the way, this is a quote from your own rules:</p>\r\n<p class=\"x_x_x_p1\" style=\"padding-left:30px\"><span>&quot;privately sharing code or data is not permitted outside of teams (sharing data or code is permissible if made available to all players, such as on the forums)&quot;</span></p>\r\n<p>[/quote]</p>\r\n<p>&nbsp;</p>\r\n<p>Touche.&nbsp; Usually, since this is a competition, there is an incentive not to share your entire solution.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11924",
      "postDate": "06/26/2012 19:19:23",
      "content": "<p>[quote=Glider;11923]&nbsp;</p>\r\n<p>Touche.&nbsp; Usually, since this is a competition, there is an incentive not to share your entire solution.</p>\r\n<p>[/quote]</p>\r\n<p>Actually, when I saw Den's posting, my initial thought was he may even work for Facebook/Kaggle and &quot;seed&quot; a better solution into the pool of candidates, maybe because they detected that the overall progress had stalled. At least for genetic algorithms that's\r\n a common technique to kickstart the search and get better end results :-)</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11925",
      "postDate": "06/26/2012 19:20:44",
      "content": "<p>How about using the submissions before the post as an additional adjustment criterion?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11926",
      "postDate": "06/26/2012 19:26:29",
      "content": "<p>[quote=apollobp;11924]</p>\r\n<p>[quote=Glider;11923]&nbsp;</p>\r\n<p>Touche.&nbsp; Usually, since this is a competition, there is an incentive not to share your entire solution.</p>\r\n<p>[/quote]</p>\r\n<p>Actually, when I saw Den's posting, my initial thought was he may even work for Facebook/Kaggle and &quot;seed&quot; a better solution into the pool of candidates, maybe because they detected that the overall progress had stalled. At least for genetic algorithms that's\r\n a common technique to kickstart the search and get better end results :-)</p>\r\n<p>[/quote]</p>\r\n<p>hmm, didn't know you thought we were that devious. </p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11927",
      "postDate": "06/26/2012 19:40:32",
      "content": "<p>The overall progress somehow stalled because the dataset is simple. If we had more info about the nodes, like gender, sex, etc, it would be very different.<br>\r\nAnd about the seed history, i believe he is just someone who wanted to drop the competition and left his progress behind...\r\n</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11934",
      "postDate": "06/26/2012 21:02:05",
      "content": "<p>[quote=Leustagos;11927]</p>\r\n<p>And about the seed history, i believe he is just someone who wanted to drop the competition and left his progress behind...</p>\r\n<p>[/quote]</p>\r\n<p>The Kaggle Leaderboard Conspiracy (2012).&nbsp;</p>\r\n<p>EDIT: Now the user Den Souleo does not exist. The plot just got thicker.<br>\r\nSource: https://www.kaggle.com/users/48103/den-souleo</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11936",
      "postDate": "06/26/2012 23:59:40",
      "content": "<p>Hi all,</p>\r\n<p>I haven't posted on the forum to date because I considered doing so would violate the non-collaboration rule.&nbsp;</p>\r\n<p>FWIW, there is more to the &quot;Den&quot; story than appears here. (It may have been easier to connect the dots from here, in a radically different time zone.)</p>\r\n<p>I've advised Kaggle admin last night (Melbourne time) that I consider the competition compromised from the time of the &quot;Den&quot; posting. My final submission was the same file I posted Sunday, simply so I could attach my code and README archive (in the state\r\n it happened to be in).</p>\r\n<p>My laptop's two cores can now cool down. :)</p>\r\n<p>Kudos to Kaggle for surfing this wave with agility and maturity. You don't get to push the cutting edge without losing some blood. And before anyone here gets too heated about the pandemonium, remember that the people running and judging this comp are at\r\n least as intelligent as you are. They're no fools. Go with the flow.</p>\r\n<p>Cheers all,</p>\r\n<p>John Costella<br>\r\nJune 27, 2012&nbsp;</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11937",
      "postDate": "06/27/2012 01:13:50",
      "content": "<p>John,</p>\r\n<p>As a competitor, I wouldn't &quot;consider this competition compromised&quot; at this point.\r\n</p>\r\n<p>Right now, everyone has access to the same information. With everything considered, this is probably the best way forward AFTER the &quot;Den&quot; past was made and I would still consider this competition fair. From a certain point view, the current situation is\r\n not so different from the hypothetical scenario where the &quot;Den solution&quot; was posted as one of the benchmarks by Kaggle.</p>\r\n<p>While the &quot;Den&quot; post does leave a bad taste in my (and probably many others') mouth, let's not go to the extreme and declare this entire competition &quot;compromised&quot;.\r\n</p>\r\n<p>As you said, &quot;remember that the people running and judging this comp are at least as intelligent as you are&quot;. So let them judge.</p>\r\n<p>Owen</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11938",
      "postDate": "06/27/2012 01:23:25",
      "content": "<p>Ima noob, and I have joined Kaggle to try to gain some practical machine learning experience. I find the discussion threads to be quite informative and an integral part of the education process. I am quite perturbed by any attempt to censor the discussion\r\n by Kaggle (of course excluding trolling, spiteful, and bullying comments).</p>\r\n<p>This whole non-collaboration clause in this particular contest is silly in my opinion. It reminds me of high school. The real world is an open-book, open-ended, and collaborative exam. I mean the whole idea is for the data scientist to be part of a team,\r\n and not work in isolation.</p>\r\n<p>The key is when you use another person's work that you give proper attribution and obey the terms of use. Of course FB and Kaggle can set up this particular contest any which way they want. However, I believe that this particular contest is setting a bad\r\n precedent in terms of the open learning environment that Kaggle is trying to promote on this site.\r\n</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11963",
      "postDate": "06/27/2012 21:10:04",
      "content": "<p>Although I first agreed that the path taken (making Den's code available to all) is the best option available, I'm not sure about it anymore. It's first Kaggle competition, and I don't know if that's the norm - but it's not the first fishy thing that happened.\r\n It was preceeded by users having multiple accounts. It seems to me that ending the competition early might have been better.</p>\r\n<p>Now, Den's code does give certain advantage to people like me who came up with a very different approach. I can merge Den's approach with mine to get a better solution (and indeed I went up 3 spots), while users who used a similar approach to Den's might\r\n not find this a simple task.</p>\r\n<p>Moreover, Den's code is far from an initial benchmark - it's non trivial (I've tried igraph's implementation of the &quot;standard&quot; pagerank early on, and wasn't very valuable), and has many parameters you can play with (number of cycles/how many points each\r\n nodes keeps/using non uniform weights).</p>\r\n<p>TLDR: meh, I feel worse today than a week ago.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "11973",
      "postDate": "06/28/2012 00:07:22",
      "content": "<p>Recruiting model is kind of new to kaggle. Recruiting competitions seem to be different from cash reward ones. Most people like money, but many may not be interested in an job offer or interview. One who doesn't want a new job more likely pose some inappropriate\r\n information.</p>\r\n<p>My suggestion is to set a cash reward to recruiting competitions as well. More people should be serious.\r\n</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12001",
      "postDate": "06/28/2012 18:43:15",
      "content": "<p>I think you can be serious without being antisocial. Linux is serious, for instance.</p>\r\n<p>This whole situation is very interesting to me as a seeming demonstration that while systems that rely on everyone being selfless don't seem to work, neither can you necessarily rely on everyone being selfish.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12003",
      "postDate": "06/28/2012 20:00:20",
      "content": "<p>I am new here so probably my opinion doesn't matter. But the way I see it the problem is with the particular competition. It is a lot like high-school exams as somebody already mentioned in the thread. Also the organizing parties try to get too much control\r\n over something that is not possible to get control of.</p>\r\n<p>If on the other hand this was research-like; i.e given an interesting real-life problem, which if solved it will help society, the best solutions (as decided by fellows and peer-reviews) win XYZ, things would be very different.</p>\r\n<p>Any contribution towards a better solution would be seen as positive no matter what.</p>\r\n<p>In this case the contribution leaves most of us with negatives feelings.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12004",
      "postDate": "06/28/2012 20:47:50",
      "content": "<p>[quote]This whole non-collaboration clause in this particular contest is silly in my opinion.[/quote]</p>\r\n<p>I believe the intent is to prevent people from teaming up behind the scenes - getting more submissions while coordinating efforts - then merging their teams.&nbsp; Other than that - and this contest (there was another if I recall as well) - generally collaboration\r\n seems to be encouraged.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12009",
      "postDate": "06/29/2012 01:18:22",
      "content": "<p>In this contest it is not possible to merge teams. What happened in my opinion is that, to get around 2 submissions per day people created fake profiles, got discovered and banned.\r\n<br>\r\nAfter that they problably got very angry...<br>\r\n2 submissions per day are enough, but kaggle should let non used submissions acumulate and be used in the next days. Maybe not accumulating indefinitly, but to a number, lets say, 5x the daily amount. Some people can only work on weekends...</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12011",
      "postDate": "06/29/2012 02:41:21",
      "content": "<p>[quote=Leustagos;12009]</p>\r\n<p>2 submissions per day are enough, but kaggle should let non used submissions acumulate and be used in the next days. Maybe not accumulating indefinitly, but to a number, lets say, 5x the daily amount. Some people can only work on weekends...</p>\r\n<p>[/quote]</p>\r\n<p>Amen to that! I found myself submitting shi**y solutions just so I won't waste my daily allowance.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12021",
      "postDate": "06/29/2012 15:36:41",
      "content": "<p>I could not agree more. I think it would be a great change if submissions would store up over the week, especially in competitions where setting up meaningful cross-validation is a challenge.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12040",
      "postDate": "06/30/2012 12:02:19",
      "content": "<p>Totally agree,:). The submissions should be accumulated by days.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12046",
      "postDate": "06/30/2012 17:10:48",
      "content": "<p>Regarding collaboration, the rules state that &quot;the foregoing shall not apply to any public communications, such as forum participation or blog posts.&quot;</p>\r\n<p>For any competition in general, unless Kaggle explicitly states otherwise, I assume collaboration in forums is always allowed.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12212",
      "postDate": "07/09/2012 02:05:51",
      "content": "<p>I support Leustagos! Many cannot do kaggle everyday and a cache for unused budgets of submission should be considered. Suppose a students work everyday but can only work on this at weekends. Two choices for him, first is to only submit at weekends or submit\r\n some careless work during the weekday in order not to waste...</p>\r\n<p>Maybe we have have a cash contest, given the leader bord score and predict whether the work he submit that day is carefully designed or just want to take the budget. Further we can predict he can take which day to work at Kaggle out of the whole week.</p>\r\n<p>Actually, If it is possible, can we have a voting for such policy publicly? Everyday counts. If we can have such policy, why not have it as soon as possible.</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12225",
      "postDate": "07/09/2012 13:49:45",
      "content": "<p>Sorry for the stupid question. I'm new here and I'm still trying to learn more about kaggle &amp; data mining.\r\n</p>\r\n<p>Can someone please enlighten me about the benefit of submitting bad entries in order not to waste the submission allowance?</p>",
      "rawMarkdown": "",
      "votes": null
    },
    {
      "id": "12227",
      "postDate": "07/09/2012 14:49:55",
      "content": "<p>@<a class=\"x_profilelink\" title=\"View yuenking's profile\" href=\"https://www.kaggle.com/users/41766/yuenking\">yuenking</a>&nbsp;I guess you're asking that because of a prior comment I've made. There's no point of submitting bad solutions, but sometimes I've submitted\r\n a poorly thought of solution, that if I could &quot;bank&quot; submission, I would have avoided.</p>",
      "rawMarkdown": "",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 11884,
      "author_name": "strongai",
      "author_url": "",
      "post_date": "06/26/2012 04:16:04",
      "content": "<p>It sounds a lot like you just reinvented PageRank/EdgeRank.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11885,
      "author_name": "",
      "author_url": "",
      "post_date": "06/26/2012 04:34:57",
      "content": "Never heard of edgerank.. But yeah I guess it looks somewhat like pagerank. But needs quite a lot if tweaking. At the current stage a backward connection with a lot of &quot;friends&quot; will probable get better score than one with less friend but already connected\r\n to the &quot;user's immediate network&quot;. Also discovering lost single forward connections may need to get a boost when the user has has high &quot;follower&quot; index or high peer index. Anyway. Lots of ways to tweak it and play around. By the way to compute predictions\r\n for the &quot;test&quot; takes about 15 mins on a 10 node cluster. So anybody trying it be patient..",
      "votes": null,
      "replies": []
    },
    {
      "id": 11886,
      "author_name": "quidity",
      "author_url": "",
      "post_date": "06/26/2012 05:02:20",
      "content": "<p>Looking at the code, it seems that on the first step you allow backward-connected nodes to retain credit, but on deeper steps you do not (contrast score<em>network with propagate</em>score).</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11887,
      "author_name": "",
      "author_url": "",
      "post_date": "06/26/2012 05:25:06",
      "content": "Yes. That's on purpose. We are interested in making forward connections only with the direct backward connections. 2nd line backwards (or forward-&gt;backward) are too of long shot to get connected to them.. (And if the are of interest they shall get some\r\n credit from forward connections.I am much more likely to follow somebody the people that follow me or that I follow, follow. Than to follow somebody who follows the one who follows me..). But they play critical role for transferring the credit to their forwards.\r\n I think I understand your concern of under-crediting a lost &quot;friend&quot;. It's something that needs tweaking. Any suggestions?",
      "votes": null,
      "replies": []
    },
    {
      "id": 11888,
      "author_name": "quidity",
      "author_url": "",
      "post_date": "06/26/2012 05:50:05",
      "content": "<p>The approach makes sense, I was just checking if the description or the code was what you meant.</p>\r\n<p>Here, at least, it's going to take 20 days to actually run that, so no 0.711 for me!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11891,
      "author_name": "seba45683",
      "author_url": "",
      "post_date": "06/26/2012 12:26:56",
      "content": "<p>My first attemp is similar to this method, using a modified random walk with restart from each node that need to be predict following nodes.</p>\r\n<p>That is, assume that q is node to be predicted, we start random walk with restart with probability 0.15 to return to q, and 0.85 to fly to other nodes.</p>\r\n<p>Any other nodes except q will receive a random walk score that indicates the probability of reaching this node from q in 20 iteration.</p>\r\n<p>This is similar to : instead of using 0.5 to keep credit, I use 0.15, and the repeated times is set to 20.</p>\r\n<p>But I only get map@10 around 0.004 and then I give up this method totally.</p>\r\n<p>Very curious why you achive at 0.71, will try and see:)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11901,
      "author_name": "wlattner",
      "author_url": "",
      "post_date": "06/26/2012 17:00:01",
      "content": "<p>If you are using python on a linux/mac machine with multiple cores and plenty of ram, this method is very easy to parallelize. See the python documentation for the multiprocessing module:&nbsp;http://docs.python.org/library/multiprocessing.html</p>\r\n<p>The attached code runs considerbly faster than 20 hours on 4 cores, also note additional functions added to utilities.py</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11902,
      "author_name": "glider",
      "author_url": "",
      "post_date": "06/26/2012 17:18:48",
      "content": "<p>We have removed the code posted to this thread by Den Souleo and others.&nbsp; We encourage contestants to use the competition forums to discuss and learn from each other, but posting full solution code has a direct impact on the integrity of the recruiting competition.&nbsp;&nbsp;\r\n If you receive an interview with Facebook, you will be asked to present code that only reflects your own work.&nbsp; Using code that was posted by another user will not help you, and you should be aware of this before selecting such work as your final submission.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11903,
      "author_name": "rohits",
      "author_url": "",
      "post_date": "06/26/2012 17:27:06",
      "content": "<p>You removed the code after 16 hours? Is that fair towards us who did not have a look at the code?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11904,
      "author_name": "ajschumacher",
      "author_url": "",
      "post_date": "06/26/2012 17:30:22",
      "content": "<p>With respect, I've had equivalent code up on the forum for nineteen days already. At the time I posted it, this code yielded results not dissimilar in ranking from the current offers in this thread. The result, I believe, was to help kaggle users learn and\r\n advance more quickly, in effect raising the bar. Already with a score of 0.711, this code will scarcely get you into the top ten, and certainly will not by the end of the competition. I don't believe posting code here violates any agreement made by kaggle\r\n users. It is already the case that using code posted by other users will not help you to win. On what grounds can this selective censoring be truly justified?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11905,
      "author_name": "rohits",
      "author_url": "",
      "post_date": "06/26/2012 17:37:37",
      "content": "",
      "votes": null,
      "replies": []
    },
    {
      "id": 11906,
      "author_name": "glider",
      "author_url": "",
      "post_date": "06/26/2012 17:37:41",
      "content": "<p>[quote=SivaP;11903]</p>\r\n<p>You removed the code after 16 hours? Is that fair towards us who did not have a look at the code?</p>\r\n<p>[/quote]</p>\r\n<p>We are discussing the situation with users who downloaded the code during the 16 hour time window</p>\r\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11908,
      "author_name": "glider",
      "author_url": "",
      "post_date": "06/26/2012 17:43:37",
      "content": "<p>[quote=Aaron Schumacher;11904]</p>\r\n<p>With respect, I've had equivalent code up on the forum for nineteen days already. At the time I posted it, this code yielded results not dissimilar in ranking from the current offers in this thread. The result, I believe, was to help kaggle users learn and\r\n advance more quickly, in effect raising the bar. Already with a score of 0.711, this code will scarcely get you into the top ten, and certainly will not by the end of the competition. I don't believe posting code here violates any agreement made by kaggle\r\n users. It is already the case that using code posted by other users will not help you to win. On what grounds can this selective censoring be truly justified?</p>\r\n<p>[/quote]</p>\r\n<p>&nbsp;</p>\r\n<p>Hi Aaron.&nbsp; I agree with you that the purpose of the forums should be to help Kaggle users climb the [machine] learning curve, and I don't want to be in the position of censoring anybody.&nbsp; However, this is starting to get out of hand.&nbsp; It is one thing to\r\n post code snippets, but another to post full solutions.&nbsp; The purpose of a recruiting competition is to give participants a chance to demonstrate their skills to a potential employer.&nbsp; Posting full solution code undermines this for everybody, throwing the originality\r\n of everyone's work in doubt.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11910,
      "author_name": "leustagos",
      "author_url": "",
      "post_date": "06/26/2012 17:54:55",
      "content": "<p>Anyway, the algorithm is written in the start of this post, and it is is based on pageRank/edgeRank. Anyone can implement it now. The users who downloaded the file will have to re-implement it by themselves anyway! And as aaron stated, 0.71130 won't be enough\r\n to make it to top 10...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11911,
      "author_name": "songgc",
      "author_url": "",
      "post_date": "06/26/2012 18:01:25",
      "content": "<p>Den's case is much different from Aaron since Den has NO ranking on this competition&nbsp;after posting the code! The purpose of doing that is kind of suspicious. On the other hand, Aaron is a very&nbsp;helpful person as we can see. BTW, Aaron's result could be also\r\n getton after obtaining stats of inbound and outbound links based on Bayes' theorem.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11912,
      "author_name": "glider",
      "author_url": "",
      "post_date": "06/26/2012 18:01:53",
      "content": "<p>Yes, we could have deleted the entire post, but you can't put an idea back in the bottle (especially when its based on such a well known algo).&nbsp; We're not saying you can't use an approach based on PageRank/EdgeRank, but that you shouldn't just be recycling\r\n someone else's code to try to slip through an interview screen.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11913,
      "author_name": "yarreg",
      "author_url": "",
      "post_date": "06/26/2012 18:10:25",
      "content": "<p>There is an issue. People who've seen the code will rewrite it, combine it with their own approaches and get better score than equally skilled people who haven't seen the code. That's pretty unfair.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11915,
      "author_name": "nocencorship",
      "author_url": "",
      "post_date": "06/26/2012 18:36:39",
      "content": "<p>a) Just google for the code</p>\r\n<p>b) The code will *not* put you into final top 10</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11916,
      "author_name": "apollobp",
      "author_url": "",
      "post_date": "06/26/2012 18:44:02",
      "content": "<p>I just received this email:</p>\r\n<p class=\"x_x_p1\" style=\"padding-left:30px\">&quot;You are receiving this email because you downloaded the files that were posted to competition thread &quot; 0.711 is the new 0&quot; before they were removed by the competition admins. There will be no backlash for having\r\n downloaded the files, but we respectfully ask that you inform us of any submissions you have already made based on this code so that we can remove them from the leaderboard.&nbsp; If you have any questions about why the files were removed, please feel free to contact\r\n us to discuss the situation.&quot;</p>\r\n<p class=\"x_x_p1\">So how does this work? I never ran that actual code, but I did look at it and integrated some of the ideas into my solution. Sorry, but I can't &quot;forget&quot; what I saw. Does that mean I can't submit any solutions based on this idea anymore? This\r\n makes no sense.</p>\r\n<p class=\"x_x_p1\">I think Kaggle put itself in a difficult situation. How can you possibly know that everybody is honest and tells you exactly which submissions they made based on that code?&nbsp;</p>\r\n<p class=\"x_x_p1\">My suggestion would be to put the code back on the forum for everyone to see, and clarify the rules as of what can be posted on the forums from now on. I'm sure the guys at Facebook can figure out in an interview, if someone has no idea about\r\n the code they submitted.</p>\r\n<p class=\"x_x_p1\">By the way, this is a quote from your own rules:</p>\r\n<p class=\"x_x_p1\" style=\"padding-left:30px\"><span>&quot;privately sharing code or data is not permitted outside of teams (sharing data or code is permissible if made available to all players, such as on the forums)&quot;</span></p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11917,
      "author_name": "miguel2",
      "author_url": "",
      "post_date": "06/26/2012 18:46:01",
      "content": "<p>I did receive the same email and replied basically the same thing.</p>\r\n<p>Most probably, the code will be up again soon, it is the most sensible solution.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11919,
      "author_name": "drk123",
      "author_url": "",
      "post_date": "06/26/2012 18:57:14",
      "content": "<p>I was one of the individuals who downloaded the code. &nbsp;As others have noted, the algorithm is described in the first post and it is a variant of the PageRank algorithm. &nbsp;So, if you didn't see the code, look up PageRank on WikiPedia and then look at Den Souleo's\r\n description above and the subsequent clarifications.</p>\r\n<p><strong>Did I benefit from Den Souleo's post?</strong></p>\r\n<p>Yes. &nbsp;PageRank/EdgeRank was on the list of algorithms I planned on on investigating. Den's post moved its implementation up to the top of the list.</p>\r\n<p><strong>Did I use Den Souleo's code?</strong></p>\r\n<p>Not directly. &nbsp;I read his code to clarify his algorithm description. &nbsp;I also implemented a version of his algorithm in Java.</p>\r\n<p><strong>Would I have implemented the algorithm exactly the same way without seeing his post?</strong></p>\r\n<p>No. &nbsp;But again, the algorithm is not particularly original. &nbsp;I would have made different initial implementation decisions. &nbsp;Also, I view his description as a good start but hardly an optimized implementation.&nbsp;</p>\r\n<p><strong>Would I have initially implemented Den's algorithm the same way without seeing his code?</strong></p>\r\n<p>Maybe. &nbsp;However, his original description did not match his code. Someone who now reads the thread can reconstruct the algorithm based on subsequent clarifications.</p>\r\n<p>&nbsp;</p>\r\n<p>I recognize that the Kaggle team is trying to strike a difficult balance here but I would suggest a slightly different tack. &nbsp;There are plenty of software similarity tools out there (MOSS is especially good). &nbsp;Let everyone know (or not) that you plan on\r\n running competitors' code thru such tools. Update the terms of the competition, if need be, to indicate that unattributed third-party code is grounds for dismissal.</p>\r\n<p>As the prize for this competition is a job interview, a winner should be prepared to discuss all aspects of his/her model implementation. I would hope that Facebook is most interested in one's thought process, how one worked through implementation details\r\n and iterated through potential model tweaks/blends. It is good form to document/footnote your algorithm selection. All this forms your &quot;story&quot;. &nbsp;If your story is, &quot;uhhh, I cut/paste some code from the competition forum&quot; then you won't get very far in the interview\r\n (assuming you magically won the competition with someone else's code).</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11921,
      "author_name": "leustagos",
      "author_url": "",
      "post_date": "06/26/2012 19:10:53",
      "content": "<p>I agree with Dave. Of course you could just google it. If you know the competition name, and the exact score it would achieve you can reach the code.\r\n<strong>Anyway, put back the code. It's more fair.</strong> It won't make to top 10! Just enforce this &quot;no complete code sharing&quot; from now on!</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11922,
      "author_name": "glider",
      "author_url": "",
      "post_date": "06/26/2012 19:11:20",
      "content": "<p>The files have been republished.&nbsp; Many of you made the strong point that some have already seen the files so the most sensible solution is to allow everyone access to the same information.&nbsp; As Dave Klein points out, if the prize is a job interview, it won't\r\n be much help if you just c/p someone else's work.</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11923,
      "author_name": "glider",
      "author_url": "",
      "post_date": "06/26/2012 19:14:00",
      "content": "<p>[quote=apollobp;11916]</p>\r\n<p class=\"x_x_x_p1\">By the way, this is a quote from your own rules:</p>\r\n<p class=\"x_x_x_p1\" style=\"padding-left:30px\"><span>&quot;privately sharing code or data is not permitted outside of teams (sharing data or code is permissible if made available to all players, such as on the forums)&quot;</span></p>\r\n<p>[/quote]</p>\r\n<p>&nbsp;</p>\r\n<p>Touche.&nbsp; Usually, since this is a competition, there is an incentive not to share your entire solution.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11924,
      "author_name": "apollobp",
      "author_url": "",
      "post_date": "06/26/2012 19:19:23",
      "content": "<p>[quote=Glider;11923]&nbsp;</p>\r\n<p>Touche.&nbsp; Usually, since this is a competition, there is an incentive not to share your entire solution.</p>\r\n<p>[/quote]</p>\r\n<p>Actually, when I saw Den's posting, my initial thought was he may even work for Facebook/Kaggle and &quot;seed&quot; a better solution into the pool of candidates, maybe because they detected that the overall progress had stalled. At least for genetic algorithms that's\r\n a common technique to kickstart the search and get better end results :-)</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11925,
      "author_name": "songgc",
      "author_url": "",
      "post_date": "06/26/2012 19:20:44",
      "content": "<p>How about using the submissions before the post as an additional adjustment criterion?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11926,
      "author_name": "glider",
      "author_url": "",
      "post_date": "06/26/2012 19:26:29",
      "content": "<p>[quote=apollobp;11924]</p>\r\n<p>[quote=Glider;11923]&nbsp;</p>\r\n<p>Touche.&nbsp; Usually, since this is a competition, there is an incentive not to share your entire solution.</p>\r\n<p>[/quote]</p>\r\n<p>Actually, when I saw Den's posting, my initial thought was he may even work for Facebook/Kaggle and &quot;seed&quot; a better solution into the pool of candidates, maybe because they detected that the overall progress had stalled. At least for genetic algorithms that's\r\n a common technique to kickstart the search and get better end results :-)</p>\r\n<p>[/quote]</p>\r\n<p>hmm, didn't know you thought we were that devious. </p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11927,
      "author_name": "leustagos",
      "author_url": "",
      "post_date": "06/26/2012 19:40:32",
      "content": "<p>The overall progress somehow stalled because the dataset is simple. If we had more info about the nodes, like gender, sex, etc, it would be very different.<br>\r\nAnd about the seed history, i believe he is just someone who wanted to drop the competition and left his progress behind...\r\n</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11934,
      "author_name": "rohits",
      "author_url": "",
      "post_date": "06/26/2012 21:02:05",
      "content": "<p>[quote=Leustagos;11927]</p>\r\n<p>And about the seed history, i believe he is just someone who wanted to drop the competition and left his progress behind...</p>\r\n<p>[/quote]</p>\r\n<p>The Kaggle Leaderboard Conspiracy (2012).&nbsp;</p>\r\n<p>EDIT: Now the user Den Souleo does not exist. The plot just got thicker.<br>\r\nSource: https://www.kaggle.com/users/48103/den-souleo</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11936,
      "author_name": "costella",
      "author_url": "",
      "post_date": "06/26/2012 23:59:40",
      "content": "<p>Hi all,</p>\r\n<p>I haven't posted on the forum to date because I considered doing so would violate the non-collaboration rule.&nbsp;</p>\r\n<p>FWIW, there is more to the &quot;Den&quot; story than appears here. (It may have been easier to connect the dots from here, in a radically different time zone.)</p>\r\n<p>I've advised Kaggle admin last night (Melbourne time) that I consider the competition compromised from the time of the &quot;Den&quot; posting. My final submission was the same file I posted Sunday, simply so I could attach my code and README archive (in the state\r\n it happened to be in).</p>\r\n<p>My laptop's two cores can now cool down. :)</p>\r\n<p>Kudos to Kaggle for surfing this wave with agility and maturity. You don't get to push the cutting edge without losing some blood. And before anyone here gets too heated about the pandemonium, remember that the people running and judging this comp are at\r\n least as intelligent as you are. They're no fools. Go with the flow.</p>\r\n<p>Cheers all,</p>\r\n<p>John Costella<br>\r\nJune 27, 2012&nbsp;</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11937,
      "author_name": "owenzhang1",
      "author_url": "",
      "post_date": "06/27/2012 01:13:50",
      "content": "<p>John,</p>\r\n<p>As a competitor, I wouldn't &quot;consider this competition compromised&quot; at this point.\r\n</p>\r\n<p>Right now, everyone has access to the same information. With everything considered, this is probably the best way forward AFTER the &quot;Den&quot; past was made and I would still consider this competition fair. From a certain point view, the current situation is\r\n not so different from the hypothetical scenario where the &quot;Den solution&quot; was posted as one of the benchmarks by Kaggle.</p>\r\n<p>While the &quot;Den&quot; post does leave a bad taste in my (and probably many others') mouth, let's not go to the extreme and declare this entire competition &quot;compromised&quot;.\r\n</p>\r\n<p>As you said, &quot;remember that the people running and judging this comp are at least as intelligent as you are&quot;. So let them judge.</p>\r\n<p>Owen</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11938,
      "author_name": "uncadrew",
      "author_url": "",
      "post_date": "06/27/2012 01:23:25",
      "content": "<p>Ima noob, and I have joined Kaggle to try to gain some practical machine learning experience. I find the discussion threads to be quite informative and an integral part of the education process. I am quite perturbed by any attempt to censor the discussion\r\n by Kaggle (of course excluding trolling, spiteful, and bullying comments).</p>\r\n<p>This whole non-collaboration clause in this particular contest is silly in my opinion. It reminds me of high school. The real world is an open-book, open-ended, and collaborative exam. I mean the whole idea is for the data scientist to be part of a team,\r\n and not work in isolation.</p>\r\n<p>The key is when you use another person's work that you give proper attribution and obey the terms of use. Of course FB and Kaggle can set up this particular contest any which way they want. However, I believe that this particular contest is setting a bad\r\n precedent in terms of the open learning environment that Kaggle is trying to promote on this site.\r\n</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11963,
      "author_name": "roulinir",
      "author_url": "",
      "post_date": "06/27/2012 21:10:04",
      "content": "<p>Although I first agreed that the path taken (making Den's code available to all) is the best option available, I'm not sure about it anymore. It's first Kaggle competition, and I don't know if that's the norm - but it's not the first fishy thing that happened.\r\n It was preceeded by users having multiple accounts. It seems to me that ending the competition early might have been better.</p>\r\n<p>Now, Den's code does give certain advantage to people like me who came up with a very different approach. I can merge Den's approach with mine to get a better solution (and indeed I went up 3 spots), while users who used a similar approach to Den's might\r\n not find this a simple task.</p>\r\n<p>Moreover, Den's code is far from an initial benchmark - it's non trivial (I've tried igraph's implementation of the &quot;standard&quot; pagerank early on, and wasn't very valuable), and has many parameters you can play with (number of cycles/how many points each\r\n nodes keeps/using non uniform weights).</p>\r\n<p>TLDR: meh, I feel worse today than a week ago.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 11973,
      "author_name": "songgc",
      "author_url": "",
      "post_date": "06/28/2012 00:07:22",
      "content": "<p>Recruiting model is kind of new to kaggle. Recruiting competitions seem to be different from cash reward ones. Most people like money, but many may not be interested in an job offer or interview. One who doesn't want a new job more likely pose some inappropriate\r\n information.</p>\r\n<p>My suggestion is to set a cash reward to recruiting competitions as well. More people should be serious.\r\n</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12001,
      "author_name": "ajschumacher",
      "author_url": "",
      "post_date": "06/28/2012 18:43:15",
      "content": "<p>I think you can be serious without being antisocial. Linux is serious, for instance.</p>\r\n<p>This whole situation is very interesting to me as a seeming demonstration that while systems that rely on everyone being selfless don't seem to work, neither can you necessarily rely on everyone being selfish.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12003,
      "author_name": "nikoskavadias",
      "author_url": "",
      "post_date": "06/28/2012 20:00:20",
      "content": "<p>I am new here so probably my opinion doesn't matter. But the way I see it the problem is with the particular competition. It is a lot like high-school exams as somebody already mentioned in the thread. Also the organizing parties try to get too much control\r\n over something that is not possible to get control of.</p>\r\n<p>If on the other hand this was research-like; i.e given an interesting real-life problem, which if solved it will help society, the best solutions (as decided by fellows and peer-reviews) win XYZ, things would be very different.</p>\r\n<p>Any contribution towards a better solution would be seen as positive no matter what.</p>\r\n<p>In this case the contribution leaves most of us with negatives feelings.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12004,
      "author_name": "chrisraimondi",
      "author_url": "",
      "post_date": "06/28/2012 20:47:50",
      "content": "<p>[quote]This whole non-collaboration clause in this particular contest is silly in my opinion.[/quote]</p>\r\n<p>I believe the intent is to prevent people from teaming up behind the scenes - getting more submissions while coordinating efforts - then merging their teams.&nbsp; Other than that - and this contest (there was another if I recall as well) - generally collaboration\r\n seems to be encouraged.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12009,
      "author_name": "leustagos",
      "author_url": "",
      "post_date": "06/29/2012 01:18:22",
      "content": "<p>In this contest it is not possible to merge teams. What happened in my opinion is that, to get around 2 submissions per day people created fake profiles, got discovered and banned.\r\n<br>\r\nAfter that they problably got very angry...<br>\r\n2 submissions per day are enough, but kaggle should let non used submissions acumulate and be used in the next days. Maybe not accumulating indefinitly, but to a number, lets say, 5x the daily amount. Some people can only work on weekends...</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12011,
      "author_name": "roulinir",
      "author_url": "",
      "post_date": "06/29/2012 02:41:21",
      "content": "<p>[quote=Leustagos;12009]</p>\r\n<p>2 submissions per day are enough, but kaggle should let non used submissions acumulate and be used in the next days. Maybe not accumulating indefinitly, but to a number, lets say, 5x the daily amount. Some people can only work on weekends...</p>\r\n<p>[/quote]</p>\r\n<p>Amen to that! I found myself submitting shi**y solutions just so I won't waste my daily allowance.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12021,
      "author_name": "shumarci",
      "author_url": "",
      "post_date": "06/29/2012 15:36:41",
      "content": "<p>I could not agree more. I think it would be a great change if submissions would store up over the week, especially in competitions where setting up meaningful cross-validation is a challenge.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12040,
      "author_name": "nhanitvn",
      "author_url": "",
      "post_date": "06/30/2012 12:02:19",
      "content": "<p>Totally agree,:). The submissions should be accumulated by days.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12046,
      "author_name": "solorzano",
      "author_url": "",
      "post_date": "06/30/2012 17:10:48",
      "content": "<p>Regarding collaboration, the rules state that &quot;the foregoing shall not apply to any public communications, such as forum participation or blog posts.&quot;</p>\r\n<p>For any competition in general, unless Kaggle explicitly states otherwise, I assume collaboration in forums is always allowed.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12212,
      "author_name": "weilinear",
      "author_url": "",
      "post_date": "07/09/2012 02:05:51",
      "content": "<p>I support Leustagos! Many cannot do kaggle everyday and a cache for unused budgets of submission should be considered. Suppose a students work everyday but can only work on this at weekends. Two choices for him, first is to only submit at weekends or submit\r\n some careless work during the weekday in order not to waste...</p>\r\n<p>Maybe we have have a cash contest, given the leader bord score and predict whether the work he submit that day is carefully designed or just want to take the budget. Further we can predict he can take which day to work at Kaggle out of the whole week.</p>\r\n<p>Actually, If it is possible, can we have a voting for such policy publicly? Everyday counts. If we can have such policy, why not have it as soon as possible.</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12225,
      "author_name": "yuenking",
      "author_url": "",
      "post_date": "07/09/2012 13:49:45",
      "content": "<p>Sorry for the stupid question. I'm new here and I'm still trying to learn more about kaggle &amp; data mining.\r\n</p>\r\n<p>Can someone please enlighten me about the benefit of submitting bad entries in order not to waste the submission allowance?</p>",
      "votes": null,
      "replies": []
    },
    {
      "id": 12227,
      "author_name": "roulinir",
      "author_url": "",
      "post_date": "07/09/2012 14:49:55",
      "content": "<p>@<a class=\"x_profilelink\" title=\"View yuenking's profile\" href=\"https://www.kaggle.com/users/41766/yuenking\">yuenking</a>&nbsp;I guess you're asking that because of a prior comment I've made. There's no point of submitting bad solutions, but sometimes I've submitted\r\n a poorly thought of solution, that if I could &quot;bank&quot; submission, I would have avoided.</p>",
      "votes": null,
      "replies": []
    }
  ],
  "raw_markdown_by_id": {
    "11883": "",
    "11884": "",
    "11885": "",
    "11886": "",
    "11887": "",
    "11888": "",
    "11891": "",
    "11901": "",
    "11902": "",
    "11903": "",
    "11904": "",
    "11905": "",
    "11906": "",
    "11908": "",
    "11910": "",
    "11911": "",
    "11912": "",
    "11913": "",
    "11915": "",
    "11916": "",
    "11917": "",
    "11919": "",
    "11921": "",
    "11922": "",
    "11923": "",
    "11924": "",
    "11925": "",
    "11926": "",
    "11927": "",
    "11934": "",
    "11936": "",
    "11937": "",
    "11938": "",
    "11963": "",
    "11973": "",
    "12001": "",
    "12003": "",
    "12004": "",
    "12009": "",
    "12011": "",
    "12021": "",
    "12040": "",
    "12046": "",
    "12212": "",
    "12225": "",
    "12227": ""
  },
  "source": "meta"
}