HN user

brendano

406 karma

http://brenocon.com

Posts8
Comments142
View on HN

I find it frustrating why statisticians can't just give us something we could indeed use with confidence that it actually tells us what we think it tells us...

This is on a slightly different statistical methodology issue, but quoting from Brad Efron (http://statweb.stanford.edu/~ckirby/brad/papers/2005BayesFre...):

The physicists I talked with were really bothered by our 250 year old Bayesian-frequentist argument. Basically there’s only one way of doing physics but there seems to be at least two ways to do statistics, and they don’t always give the same answers.

This says something about the special nature of our field. Most scientists study some aspect of nature, rocks, stars, particles; we study scientists, or at least scientific data. Statistics is an information science, the first and most fully developed information science. Maybe it’s not surprising then that there is more than one way to think about an abstract subject like “information”.

"Terrible" is a little harsh. I found the benchmark to be interesting because it's similar to many NLP-style analysis tasks I have myself. Of course reproducible ones would be great too.

Yeah, that's the main PTB-style tagset resource for tweets (that I know of). Our tool can also be run to produce tags in their form (we just retrained our software on their annotated data). See further down the webpage for information on how to get this.

Part of it is genuine differences between online conversational language versus standard written English, like emoticons, Twitter-specific discourse markers, and hard-to-segment compounds or clitic constructions (see the Gimpel and Owoputi papers (2011, 2013) linked on the page, and/or the annotation guidelines document too). Part of it is just that it's easier for humans to annotate the coarse-grained POS tagset, and we didn't have many resources for annotation when we did it.

These things also intersect ... for example, you'd have to figure out how dialectical English verbal auxiliaries like "finna", or the second or so word in "imma", map to PTB tags. It's possible but just takes more work and thinking through the descriptive linguistics and what you want to use it for. Someday I'd like to update the whole thing for a more PTB-like POS tagset, if it can be done well. I feel like Chris Manning's whitepaper on issues in PTB POS data convinced us (well, it convinced me, at least) that it might be a good idea to focus on making high quality tag annotations. (http://nlp.stanford.edu/pubs/CICLing2011-manning-tagging.pdf )

Java Pain 12 years ago
    1 - why can't I import a directory full of jars? eg
       --classpath ./lib/jars/*
    or better yet, recursively descend
       --classpath ./lib/jars/**
I usually do this as (in zsh):
   -cp "$(print -l ./lib/jars/**/*.jar | tr '\n' :)"

Here's a positive report on teaching "back to basics" first-semester programming with Java. They only teach procedural concepts and no OO at all. The point is, while Java itself is non-ideal for this and slants towards OO, you can just ignore that part and teach with it anyway.

Lots of people here have raised concerns that the way Java forces class and static declarations is confusing for beginners. Interestingly, the instructors were concerned about that too, but found that students don't seem to mind.

http://homes.cs.washington.edu/~reges/sigcse/basics.pdf

http://homes.cs.washington.edu/~reges/sigcse/basics.ppt

The second major concern being discussed here, that functional programming isn't possible in Java, I think is a non-issue for a true introductory first-semester class, which needs to focus on more basic issues of procedural programming and abstraction. The SICP approach is beautiful and great for already advanced and highly motivated students, but that's honestly a small minority.

(You can find many more examples of reports like this if you search for "CS1", which is the shorthand for intro-to-CS that's used in the CS education literature.)

You can get some of this from Google Scholar's metrics pages, which list, for each venue, the most-cited papers since 2008. These indeed seem to be different than the best-paper selections, though I haven't examined this systematically. (I guess you could take the best-paper and look at its citation rank out of papers that year. But this raises other questions; for example, is the point of best paper award to select the paper that will be most influential?)

From this page, http://scholar.google.com/citations?view_op=top_venues&hl=en... , click "Subcategories" under "Engineering & Computer Science": for example, "Artificial Intelligence," "Computational Linguistics," or "Human Computer Interaction." It lists the most-cited-venues for each area, but if you click on a particular venue you get its list of most-cited-papers.

Here are a few that are also on Jeff Huang's list:

ICML: http://scholar.google.com/citations?hl=en&vq=eng_artificiali...

NIPS: http://scholar.google.com/citations?hl=en&vq=eng_artificiali...

AAAI: http://scholar.google.com/citations?hl=en&vq=eng_artificiali...

ACL: http://scholar.google.com/citations?hl=en&vq=eng_computation...

EMNLP: http://scholar.google.com/citations?hl=en&vq=eng_computation...

CHI: http://scholar.google.com/citations?hl=en&vq=eng_humancomput...

CVPR: http://scholar.google.com/citations?hl=en&vq=eng_computervis...

Ah, wonderful! So if I understand this correctly, this doesn't give C/Fortran access to Java-native primitive arrays; but instead, it's specific to NIO byte buffers (and then the matrix libraries have to build on top of that). But that should be fine for doing R replacements, at least in theory.

(Personally, when programming Java I find it more convenient to use primitive arrays as opposed to matrix libraries, but that might be dependent on the operations I tend to do: lots of increment/decrements and only occasional linear algebra. I guess this isn't exactly relevant to the R replacement question.)

The programming language analysis is pretty interesting, but you have to ask, what's the point of a brand-new Java implementation? R isn't just a programming language, but it's a software framework/ecosystem. They mentioned this in the slides, but it's problematic because R crucially relies on C and Fortran interaction (which I thought the JVM can't do efficiently, since it doesn't like giving C/Fortran raw memory access to its internals). Decades of work has gone into highly optimized Fortran linear algebra libraries, for example -- which R and all the other high-level numerical languages (NumPy/SciPy, Matlab, Julia) use. And many of the CRAN packages (the availability of which are a major reason anyone uses R in the first place) are partly or mostly C/Fortran code.

There are many other R implementation efforts going on right now -- Radford Neal lists a few (as well as his own) here: http://radfordneal.wordpress.com/2013/07/24/deferred-evaluat...

The presentation focuses on the R programming language, which they nicely show has all sorts of misfeatures that impede rapid execution. If you're going to not try to have compatibility with R and CRAN, you might as well start from scratch with design and performance in mind, as in Julia: http://julialang.org/

It may not be necessary for all those people to give LinkedIn access to their email address books. Say you're A and you see a suggestion for B. Maybe a mutual friend C uploaded their email address book, which includes both A and B in it, and LinkedIn's PYMK can use the feature "A and B have a mutual email-network-friend", which might be useful.

Given that email address books are really large, only a few of them might give lots of these sorts of second-order connections.

Second order connections on the LinkedIn network could be driving these recommendations too. People's friend-of-friends sets can be really large, like typically tens of thousands if I remember right...

Eventually I realized that the only reason the companies pushed so hard, why they insisted so strongly on rankings and scores over information and analysis, was because it made it not their problem anymore. They didn’t have the credentials to pull 50 ‘good’ countries from 100 uncategorised ones, so they used us to push the responsibility away. ‘It’s not me saying Bolivia is an 8.2,’ they could tell their boss. ‘A human rights NGO said it was. Making shoes there is totally approved.

What else would you expect the corporation to do? Eventually, someone in that organization has to make a decision, and that requires the complex information about countries' human rights situations to be summarized in a simpler way -- for which a ranking is one approach.

It sounds like they wanted the NGO to do this summarization. If the NGO didn't do it, then they'd get someone else or from within their organization to do it.

Something like rankings are inevitable. They fulfill a huge information need. The fact there are lots of poorly done rankings out there won't change that. This just means, it's even more important to make useful rankings that reflect good information.

(And besides rankings, there are perhaps coarser-grained options, like making several tiers of groupings, only asserting each is an equivalence class ... or finer-grained options, like giving each country scores in three different categories. Etc. But in all cases, the incredibly rich and complex source information has to be summarized somehow.)

Once you've reached input number 10^8 or whatever, you've got all sorts of chances to have arithmetic overflow and/or the weirdness of that many pseudo-random operations screw you.

Why? Double floats don't overflow until 10^-300 or so, and RNG's give uniform numbers from 0 to 1 just fine...

Has Numenta done any of the empirical evaluations that are standard in the mainstream applied machine learning communities? For example, if they're doing image classification, one of the standard shared tasks from the field of vision research. When you ask what research supports Numenta's approach, they always point to the Hawkins book. It's a nice story, but there's quite a history of nice stories in AI that haven't always been ready from prime time.

I took the $300K 13 years ago

It was great working with Cliff and many other folks at Powerset. I think I got cynical a little earlier than some of the other folks and left before the acquisition, so I might be less justified in my opinion, but anyway,

On the below-market wages issue: I think Powerset's really crazy marketing/hype allowed it to hire stronger engineers than would have been justified given its product and technology. All the startup spinoffs he mentions (Serious Business, Crowdflower, Github... and later some more I can't even keep track of...) I think are an indication of that. I guess that's how you hire using equity. You could say it's taking advantage of the psychology of overvaluing low-probability, high-impact outcomes. Or you could say, those people were duped.

I'm just glad for all the folks who, like Cliff, were able to take the bonuses to help support families or later business ventures.

I thought a long time about whether to do economics or a computer science PhD, eventually deciding on CS / machine learning. The usefulness of both is very appealing, and economics is full of interesting problems, a wonderful analytic method to approach thinking about society, and fascinating ideas and techniques you don't see much of in CS or statistics. The smartest economists are really smart and great at just thinking about the world.

But economics is also saddled with crazy non-empirical theories they force everyone to learn in the first two years, and an anemic journal-centric research culture that requires years to get an article published. I mean, from the OP:

And after you pass the prelims, there is little risk of not finishing a dissertation; unlike in most fields, you do not have to publish to graduate.

That is insane. Talk about tyranny of low expectations.

I wonder if their centrally-planned job market hurts academic productivity. It lessens the risk to spending years with mediocre research -- everyone gets a job eventually.