Live data from Hacker News

Let me see your papers, let me see your source

cflewis.posterous.com

21–30 of 32 posts

Re: Let me see your papers, let me see your source

#21

Earlier quoted context omitted.

(Disclaimer: Author of the OP) I absolutely understand your feelings on hacky code. Every academic produces hacky code, there are precious few who don't. I myself, when I started, did not want to release my code for the same reason. However, once I began to realize that we were all on the same boat of HMS Hacked Together, that feeling began to dissipate. My advisor calls it "research code", and it's fine, because as…

(Disclaimer: I work in your lab. ;-)) I've asked people for code a few times, but my experience after getting it is actually that I don't really ask for it anymore, because I've never found it to help me. What I really want in most of the cases is a clear enough English writeup, perhaps with pseudocode, so that I can understand how they solved their problems, and ideally reimplement it myself. At least, that's the ca…

I agree with your TLDR;, but as you say, we're in a culture of 6-to-8 pages. I actually quite like the 8 page limit for most papers, it forces authors to a brevity of expression that aids focus, but you're right that details are the first thing jettisoned.

If I'm going to propose a probably impossible sea change, taking the baby step of saying "just show me what you've already done" instead of "now write another 12-20 page set of documentation" is the more likely of the impossible two :) In a perfect world, we'd have both!

Re: Let me see your papers, let me see your source

#22
post #13
post #11

I agree with the feeling, but a lot of the time, scientific software is just not ready for real usage. My software at least is completely useless most of the time (you have to open it in the interpreter and type the right incantations, and the data has to be in a non-trivial massaged way, filesystem paths are hardcoded everywhere, etc). It takes some effort to turn a works-for-me research tool into something releasea…

I was just typing my comment while you posted yours. I absolutely agree with this. Especially the "fluidity of the hacky code" - the environment that makes cool research happen is often the opposite of clean software engineering.

One thing that'd make it particularly difficult for me is that most of my early-stage experimentation is done in image-based environments with REPLs, not by editing code (Lisp, R; the Smalltalk people are also big on it). So I don't even have code to send! Well, some parts usually are in code, but it won't run unless you load it into my image and do the right thing with it. I have working images / image dumps, session transcripts, notes about what I did (some of which may be stuff I did by hand for the first proof-of-concept stage), etc. I find it a much more fluid way to work than code in a text editor, personally.

Re: Let me see your papers, let me see your source

#23
post #12

Source code publication along with the paper is a great idea in theory, but there are several problems with it in practice. The reason CS researchers do not usually publish their code has nothing to do with dishonesty - nobody is trying to hide their code because it does not really work, or anything like that. It's not even that people are worried of scooping, though that sometimes happens. The main problem is that a…

(Disclaimer: I am author of the OP) The NSF is a great point. One of the things that bugs me about this, that I didn't go into in the post for brevity's sake, is that a lot research is funded by some government institution under the banner of public interest. If you are paid to create something, and then you lock it away for whatever reason, that's not in the public interest. Worse still, more money has to be spent f…

Wouldn't things like Bayh-Dole have to be repealed before that could even be anywhere near remotely possible? At this university source-code transfers must be rubber-stamped by the university IPO office. For publishing we only have to tell them what's going on if we think it may be valuable. But actually letting university-owned things slip out is a university IPO matter. Unless you're a student, in which case code you write directly related to your degree is yours, the university owns the code. The work of post-doc's, professors, associates, etc are owned by the employer. The way most research grants work, you are an employee of the university, not of the NSF/NIH.

Re: Let me see your papers, let me see your source

#24
I 100% agree, but think there is no chance of this happening. The incentives simply do not line up, and some sort of all-or-nothing transition is needed.

It's not (exactly) my community, but SIGMOD has been trying to do this since 2008 with the "repeatability/workability committee." See this:

http://www.sigmod.org/sigmod-pods-conferences/mirrors/sigmod...

There's also an interesting FAQ about the repeatability requirements specifically here:

http://www.sigmod.org/sigmod-pods-conferences/mirrors/sigmod...

... as well as various follow-ups from that work, if you search on Google Scholar.

The issues as I understand them are:

1. Research code is often of poor quality, usually thousands of lines of unchecked output by a single graduate student. There are probably bugs, some of which may change the results. In the absence of code, results are assumed to be correct. It takes substantially longer to write good code, and hurts researcher "output" to do so. As a result, good quality code is actively discouraged.

2. Releasing code and/or data usually makes it substantially easier for others to duplicate or catch up to your research program, which is seen as a disadvantage if you are still in an area. It may lead to more citations, but that probably isn't enough for the effort. Other researchers also have an incentive to try to find bugs in the code/data, which they may overstate as they try to get their own work accepted.

3. The code and/or data itself my be copyrighted or have unclear distribution terms, for example, if you are doing experiments on a web crawl.

4. Actual production quality code that does something useful can be used as the basis of a startup or other venture, especially if the researcher is the only one who has and understands it. Furthermore, research groups can make money licensing their code to outside companies if they do not release it openly.

5. Many (most?) industrial papers involve code or data that cannot be released. Ultimately, in highly competitive conferences, it is hard to balance "unverifiable" papers written by industry with academia papers. A blanket ban on papers without code or data would remove a huge number of industry contributions, but an optional requirement for code or data mostly continues the status quo. Many of the most interesting recent papers (e.g., MapReduce) might not have been published with a code/data requirement.

Re: Let me see your papers, let me see your source

#25
There is a movement towards reproducibility and open code/data in academic publications. A friend of mine, Victoria Stodden, has dedicated her career to this. See http://www.stanford.edu/~vcs/Talks.html for her talks on the subject and http://blog.stodden.net for some of her writings.

Re: Let me see your papers, let me see your source

#26

Earlier quoted context omitted.

(Disclaimer: I am author of the OP) The NSF is a great point. One of the things that bugs me about this, that I didn't go into in the post for brevity's sake, is that a lot research is funded by some government institution under the banner of public interest. If you are paid to create something, and then you lock it away for whatever reason, that's not in the public interest. Worse still, more money has to be spent f…

Wouldn't things like Bayh-Dole have to be repealed before that could even be anywhere near remotely possible? At this university source-code transfers must be rubber-stamped by the university IPO office. For publishing we only have to tell them what's going on if we think it may be valuable. But actually letting university-owned things slip out is a university IPO matter. Unless you're a student, in which case code y…

I honestly wouldn't know about the majority of these issues (and, secretly, I suspect most universities don't either).

Aside from legal issues, it seems to me the business proposition is the same as the open-source business proposition: you know the most about the system you've created, so you're in the best position to consult on it. If you want a startup, I think guys like Cloudera show that even if you give away what was traditionally thought of as the family jewels, you can still very effectively monetize. That's what the university should leverage.

Anyway, for most projects, you've already given the game away in the paper (or at least, should have done): the expensive thing was the idea. Reimplementation is cheap.

Re: Let me see your papers, let me see your source

#27

Earlier quoted context omitted.

Wouldn't things like Bayh-Dole have to be repealed before that could even be anywhere near remotely possible? At this university source-code transfers must be rubber-stamped by the university IPO office. For publishing we only have to tell them what's going on if we think it may be valuable. But actually letting university-owned things slip out is a university IPO matter. Unless you're a student, in which case code y…

I honestly wouldn't know about the majority of these issues (and, secretly, I suspect most universities don't either). Aside from legal issues, it seems to me the business proposition is the same as the open-source business proposition: you know the most about the system you've created, so you're in the best position to consult on it. If you want a startup, I think guys like Cloudera show that even if you give away w…

I'm surprised that as a researcher you have not had notification or training about Bayh-Dole (someone mentioned they are in your lab so I assume you're funded). Universities have to report that they have notified researchers about the act. Here, all grad students have to sign an acknowledgement form indicating that fact during orientation. Flaunting the act has serious implications for the university's federal funding. It's government research privatization indoctrination 101 since the Regan revolution.

It's funny because the public (like you) demands access to the research because they paid for it, but the politicians view you as an economic investment and demand that you monetize and produce returns (e.g. tax revenue, employment from startups). The public doesn't write the rules.

Re: Let me see your papers, let me see your source

#28
post #13

Earlier quoted context omitted.

I was just typing my comment while you posted yours. I absolutely agree with this. Especially the "fluidity of the hacky code" - the environment that makes cool research happen is often the opposite of clean software engineering.

One thing that'd make it particularly difficult for me is that most of my early-stage experimentation is done in image-based environments with REPLs, not by editing code (Lisp, R; the Smalltalk people are also big on it). So I don't even have code to send! Well, some parts usually are in code, but it won't run unless you load it into my image and do the right thing with it. I have working images / image dumps, sessio…

That is a huge part of my problem, as well. Sometimes when showing the code to an advisor/colleague I have to bring up an interpreter and type over 10 differend commands before something starts to work (and don't even get me started on the fact that half of my bookkeeping, logging, and plotting is done by made-at-the-time emacs macros).

Re: Let me see your papers, let me see your source

#29

Earlier quoted context omitted.

(Disclaimer: Author of the OP) I absolutely understand your feelings on hacky code. Every academic produces hacky code, there are precious few who don't. I myself, when I started, did not want to release my code for the same reason. However, once I began to realize that we were all on the same boat of HMS Hacked Together, that feeling began to dissipate. My advisor calls it "research code", and it's fine, because as…

(Disclaimer: I work in your lab. ;-)) I've asked people for code a few times, but my experience after getting it is actually that I don't really ask for it anymore, because I've never found it to help me. What I really want in most of the cases is a clear enough English writeup, perhaps with pseudocode, so that I can understand how they solved their problems, and ideally reimplement it myself. At least, that's the ca…

This is also very true.

And I think a part of the reason why this is worse with research code is that the meaty part of the code tends to be (at least in ML/NLP) a few equations from the paper, in a hacky and convoluted way, and unless you're a world-class expert on keeping track of indexes and one-greek-letter variable names, there's very little to get from the code to a well-written paper. I make an exception for tuning parameters, constants, tweaks, etc, but these shouldn't matter much anyway.

Re: Let me see your papers, let me see your source

#30
post #15

I see some of the comments here talk about the code being useless it terms of using it the same way the author of the paper has. Personally for a lot of the papers I have read in NLP based stuff I'd feel more comfortable just having some source to look through to give a better idea of how it was done. Some papers are quiet abstract about their method and aren't really helpful past giving you basic ideas without some…

I'm not sure I agree. In most NLP papers I've read the real meat of the paper is not in the code, but in a couple of equations that, with a lot of mostly-mechanical wrapping around, implementing, debugging, and plugging into well-understood parts should make sense and be a contribution in and of themselves.

And for these other things, it might be good to see code a couple of times, but mostly at first, and to get up to speed in an area.

I think a problem is that, if you force all papers to include source code, due to the fact that science builds upon itself, you'd find that the average paper length for an area should climb a bit (going back down when a paradigm shift happens, because then the tricks stop working, but climbing all over again), and most of it would just be repeats of what's already there. Comparing to maths, it's like asking every paper proving a theorem to prove their lemmas, even very basic ones: sure, it'd help a novice understand what's going on, but it'll hinder progress more often than it'd help it. There's a place for introductory writing and a place for stand-in-the-shoulders-of-giants writing, and papers are mostly of the last sort.

For example, a couple of decades ago every paper that used a naive bayes classifier would derive the equations, describe feature selection, weighting, etc; today, most just say "I use a naive bayes classifier for this, that, and that" and move on. Likewise for SVMs---you don't want to see the full code for most papers that use that, since it's a mess of kernel caches and dual variables that mean nothing whatsoever to the problem at hand (but the algorithm won't work without it).

Post reply on HN