Welcome to the Algorithms for Computational Linguistics (ACL) Group!
We are based in Queens College and the Graduate Center, the City University of New York (CUNY).
Our lab space is free of windows, but also proudly free of Windows.
(from the left: Kai, James, Andy, Eric, Liang, Dezhong, Lemao, and Mingbo.
Queens College, May 2014.
The official languages of our group
are currently English, Mandarin, Wu, French, and Spanish.)
I have the rare honor of working with some of the brightest students and scholars.
- PI: Liang Huang, Assistant Professor.
[Google Scholar Profile].
- Dr. Feifei Zhai (Ph.D., Chinese Academy of Sciences, 2014; thesis work on unsupervised
tree-based MT with Chengqing Zong). Fall 2014 --.
- Dr. Lemao Liu (Ph.D., Harbin Institute of Technology, 2013; thesis work on machine learning for MT with Taro Watanabe) and Tiejun Zhao. Fall 2013 -- Summer 2014. Now Research Scientist at NICT, Japan.
- PhD Students:
- Kai Zhao (B.S., USTC, 2010). Since Fall 2012.
Summer intern at IBM TJ Watson in 2013, MSR Redmond in 2014, and Google Research NYC in 2015.
- Dezhong Deng (B.S., PKU, 2013). Since Spring 2014.
Summer intern at MSRA in 2014 and DARPA/HLTCOE in 2015.
- Mingbo Ma (B.S., Jilin U.). Since Fall 2013.
- James Cross (J.D., NYU, 2005). Since Fall 2014. Summer intern at IBM TJ Watson in 2014,
and at Facebook Research in 2015.
- Ashish Vaswani (co-advised by David Chiang). Ph.D. at USC, Summer 2014. Now Research Scientist at USC/ISI.
- Interns and Visiting PhD/MS Students:
- Heng Yu, Ph.D. student from Chinese Academy of Sciences (CAS/ICT). Summer -- Fall 2013. Now Research Scientist at Samsung.
- Zhuoran Yu, M.S. student from NYU Poly. Summer 2013. Now Software Engineer at Google Research (NLP), NYC.
- Licheng Fang, Ph.D. student from Rochester. Summer 2011.
Now Software Engineer at Google.
- Sasha Rush, Ph.D. student from MIT. Summer 2010. Now Assistant Professor at Harvard.
- Undergraduate Students:
- Andy Rivas, Queens College. Summer 2014.
- Haiqiang Zou, Queens College. Summer 2014.
- Hongbo Fang, Worcester Polytechnic Institute (WPI), Summer 2014.
- Visiting Faculty:
- Xiaopeng Tao, Associate Professor, Fudan University. Fall 2014--Summer 2015.
- Frequent External Collaborators:
- [June 2014] My first Ph.D. student Ashish Vaswani
(co-advised by David Chiang) successfully defended his thesis on June 12, 2014!
Ashish did great work on learning small models for NLP. He will be a Computer Scientist at ISI.
- [June 2014] Kai's short paper at ACL 2014
ranked the first among all ~80 short paper submissions to the machine translation track.
His talk will be at the last session of ACL 2014.
- [June 2014] Liang started working part-time as a Research Scientist at IBM T. J. Watson Research Center, on semantic parsing (in Bowen Zhou's group).
- [Mar 2014] This Summer Kai will be interning at MSR,
Dezhong at MSRA (with Prof. Tsujii), and James at IBM TJ Watson.
- [Feb 2014] Liang gave three (different) talks at
AI2, UW, and MSR. The video from the last talk is here; thanks to MSR for the very nice recording.
- [Jan 2014] Liang is serving as Area Chair (Machine Translation) for ACL 2014. He's also giving
three (different) talks in Beijing on 1/13-14 at Tsinghua, MSRA, and Baidu.
- [Aug 2013] We have three EMNLP papers accepted.
- [Aug 2013] We got our second Google Faculty Research Award.
- [Apr 2013] Our group is hosting the website of IWPT 2013,
with Liang being the PC Co-Chair and Kai the Webmaster. See you in Nara!
- [Jan 2013] The linear-time dynamic programming parser from
Huang and Sagae (2010) is now downloadable.
“Lambdas really changed my life.”
We focus on the theoretical and algorithmic aspects of computational linguistics,
in particular, efficient algorithms and datastructures for parsing and machine translation, linear-time algorithms, and grammar formalisms.
We also study
structured learning theory (esp. under inexact inference)
and online learning theory (esp. online approximations of SVM and
parallelizing online learning),
and try to scale them up for big-data in practice.
We also work on the intersection of NLP
with compiler theory and programming languages,
theoretical computer science,
psycholinguistics, historical linguistics, and computational biology.
For more details, visit the PI's website.
-- Barbara Partee (details)
Group Rules and Values
“CEOs are supposed to have class. I can see that isn't an opinion you hold.”
We hold these truths to be self-evident, that
all students/postdocs are entitled to a good education and quality training in research skills.
-- Steve Jobs to Michael Dell (1997)
- Elegance is the top priority in our group and can summarize all points below.
Taste is often more important than productivity:
if a student acquires a bad taste, it's very difficult to unlearn it,
and the more productive s/he is,
the more tasteless his/her work will be. :)
- Windows operating system is strictly forbidden.
A serious computer scientist uses a Mac laptop and a Linux desktop.
Coding, debugging, and experimentation should be carried on Linux or Mac terminals only.
- M$FT software is largely forbidden (even on Macs). Office (esp. Word, the 4th-worst software ever written) is bad on Windows (except for Powerpoint) but much worse on Macs.
I always got depressed when I had to use Word or Powerpoint on Macs. So:
- Always use LaTeX instead of Word for papers.
It will make your papers look so much prettier and consistent.
You have to take the pain to learn to be an expert in LaTeX.
If a paper is typeset in Word, our first impression as a serious scientist
will be "the authors aren't that serious"
(so I shouldn't be that serious in reviewing it either! Indeed never was I.).
- Always use Keynote (plus LaTeXiT) instead of Powerpoint for slides. It will make your slides so much more elegant. Do not call our slides "PPTs" since we don't use it. For teaching, export Keynote to PDF, skipping animations. For presentation, you can export to PDF "including each build"
to keep (most) animations.
LaTeX/beamer sides are OK only for very mathematical talks (e.g., programming languages) and I think in general, Keynote+LaTeXiT is still better even for theoretical talks. Talks are supposed to be all about intuitions and visualizations, rather than formulations, after all. But I agree that Keynote's incompatibility with linkback (which enabled in-place editing of equations) really sucks, esp. when you need to teach some Mathy topics; Apple should fix this!
(see for example how Mehryar Mohri's teaching slides were made via Keynote+LaTeXiT -- they're so beautiful but required way too much time and are not very editable.
See also Alex Smola's slides for the same topic; he even released the Keynote files (you can even edit his equations via LaTeXiT, though not in-place)
which I used for my class. Thanks a lot Alex!).
- Use googledoc spreadsheet instead of Excel. It's so much faster to open and sharable.
- (from Andrew) use Pages as the default app for Word files on mac. It's much faster to open and has much less bugs. Or use googledoc if the formatting isn't too complicated (I know, it sucks too but at least it has been improving).
- All paper submissions should get a "clarity" score of 4 or 5 -- I have maintained this since 2007.
- All papers have to go through at least 20 revisions before submission,
20 while under review, and 50 after acceptance.
Why more revisions after submission?
Well, before the deadline you are always too busy (running experiments etc),
so after submission it is time to carefully think about major rewriting,
and after acceptance you'll have extra help from the reviewers (see below).
When I was at Penn, I saw Michael Kearns start to rewrite a whole paper
just a few hours before the camera-ready deadline.
The reviewers' comments are always gold,
even if s/he apparently misunderstands you -- it is still your fault
to have misled him/her to that misunderstanding; you'd better
make it less ambiguous (sometimes audience-specific)
so your readers can't miss it. :)
- Teaching practicum is an extremely important part of the PhD education. Every student should TA at least twice and teach at least one real course.
- In a reading group, we only read the best papers (defined as either those award winners or highly cited ones), and the presenter should in general use the authors' original slides annotated with the presenter's comments.
Why using the authors' slides rather than making your own slides?
Well, making a good set of slides costs
too much time. In my experience, if you were the lead author, it'll take around one week of full-time work;
not to mention you're not the author and are much less familiar with the work.
Often (but not always) the authors' slides are significantly better than what you can make in one week.
- Breadth is more important than depth in the first two or three years of the PhD process. Every student needs to take demanding classes outside of his/her own area (e.g., "approximation algorithms", "game theory", etc., for NLP students).
- I expect everybody in my group
to have a genuine interest in languages and linguistics,
and encourage students to take at least one linguistics course (esp. semantics and phonetics).
Language (and its recursion), after all, is the defining feature of human-being.
Language processing is AI-Complete and its holy grail.
- I expect everybody in my group, even including visiting students and professors, to be solid programmers and good mathematicians.
- Programming should be done in Python by default, while OCaml/Haskell is also encouraged
(each student should be fluent in least one functional language).
But C++, Perl, or Java is strictly forbidden because we aim for elegance and readability
rather than quick-and-dirtiness or verbosity.
That being said, each student should be able to read and hack
existing C++/Perl/Java code (e.g. somebody else's parser).
- The major goals of a PhD study should include, in decreasing order of importance:
- Make sure the student receives enough preparation s/he would need for a brighter future and a successful career after graduation.
If a PhD graduate (after 5-6 years of tedious study) cannot even find a good job with interesting work and a minimum salary (130k/year in industry or 100k/year in academia), it is largely the advisor's fault.
There is an old Chinese saying that "mei2 you3 gong1lao2, ye3 you3 ku3lao2; mei2 you3 ku3lao2, ye3 you3 pi2lao2",
meaning if you look at a PhD student's work for 5-6 years,
even if there were little contribution, there should have been hard work,
even if there were little hard work, there must have been fatigue. :)
Advisors should treat PhD students as students who need to learn
in the first 2.5 years, and ideally as colleagues who need feedback
in the final 2.5 years,
rather than treating them as employees
who need to produce and listen to you for the whole 5 years.
- The student acquires the most valuable thing in the PhD process: patience and perseverance. S/he realizes how hard research is: nothing is going to work before you tried at least 100 times, and still isn't going to work if you try 101 times, but if you make sure you're on the right track, something will eventually work,
and that something is often quite different from but almost always more interesting than your original goal.
- The student is well-trained in technical communication skills: writing, presentation, and teaching. S/he has taken at least one writing/speaking seminar, and has taught at least one real course.
The advisor should also help non-native speaking students improve their English.
- The student learns *how* to do research, including how to find or propose a problem, survey the literature, formulate ideas, conduct experiments, and write/present them to various audiences.
- The student interns at least twice with top-class research labs or groups in other universities. Do *not* do an engineering intern, or with a non-top lab, which is harmful on your CV.
- The student should be well-connected in the community after 3 years of study, by attending conferences and giving seminars in other universities. It is the advisor's responsibility to introduce the student to those smartest minds in the field (e.g. dchiang, gildea, graehl, jason, mjohnson, mjn, satta, yoavg, etc.), so that the student would have an opportunity to collaborate with them during or after the PhD study. The student, however, is personally responsible for introducing his/her own work to many other people in conferences.
- The student has taken many relevant courses in and outside of his/her own area, greatly broadening the vision. Taking classes from good professors
also helps the student learn to teach.
- The student does some truly *independent* research without the advisor's influence, which may or may not succeed. This is the only way to check whether the student has grown fully independent and really to go. Ideally, the student should have at least one (1) single-author paper in his/her job application (it would help a lot for academic jobs and it does *not* need to be a good one! it's just a great practice).
- The student publishes 2 quality papers in top conferences/journals.
Note: points 1--3 are much more important than 4--9, because
even if the student chooses to abandon research altogether after graduation,
s/he would still benefit tremendously from the skills and lessons learned in 1--3.
Point 9 is the least important: the point of the PhD is to train you *how* to do research,
rather than the "doing" itself, though you get to learn it largely by doing
(but also by other things like courses and teaching).
It is more important that you're better prepared for future publications,
because it is all about the "potential":
Fernando once said to me,
if you want, you could devote the rest of your
life to publishing, so why rush during your PhD then? :P
John Hopcroft got tenured after the publication of his second paper. Well I know it was in the old days but still we should have a classical mindset rather than aiming for short-term and low-impact goals.
To this day, I still don't understand how some people manage to publish 15+ papers a year.
- People are always more important than research projects.
Choosing the right advisor in terms of research style and personality
is more important than what projects he is doing right now.
Projects change all the time, but people don't.
If there is a conflict between a person and a project,
always care for the person.