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).
- Faculty: Prof. Liang Huang.
- PhD Students:
- Kai Zhao (B.S., USTC, 2010). Since Fall 2012.
- Visiting Students:
- Heng Yu, Ph.D. candidate, Chinese Academy of Sciences (CAS/ICT). Summer 2013 -- .
- Zhuoran Yu, M.S. candidate, NYU Poly. Summer 2013 -- .
- Visiting Faculty:
- Recent External Collaborators:
- [May 2013] The camera-ready versions of our two ACL papers are online:
faster beam search (with Yoav)
and joint IE (with blender lab).
Our group will not be there though.
- [May 2013] Visiting students Heng and Zhuoran have joined our group from CAS/ICT and NYU Poly, respectively. They will be working on machine translation and parsing algorithms.
- [Apr 2013] Our group is hosting the website of IWPT 2013,
with Liang being the PC Chair and Kai the Webmaster. See you in Nara!
- [Apr 2013] The camera-ready version of Kai's NAACL 2013 paper on minibatch parallelization is online.
See you in Atlanta.
- [Jan 2013] The linear-time dynamic programming parser from Huang and Sagae (2010) is now downloadable.
We focus on the theoretical 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 are also interested in the intersection of NLP
with compiler theory and programming languages,
psycholinguistics, theoretical computer science, and computational biology.
For more details, visit the PI's website.
Group Rules and Values
“CEOs are supposed to have class. I can see that isn't an opinion you hold.”
We enforce these rules and hold these values to ensure high-quality research and education:
-- Steve Jobs to Michael Dell (1997)
- Elegance is the top priority in our group and can summarize all points below.
- No Windows operating system is allowed. A serious computer science student should use a mac laptop and a Linux desktop. Coding, debugging, and experimentation should be carried on Linux only.
- No M$FT software is allowed (even on macs). Office (esp. Word, the 3rd-worst software ever written) is bad on Windows but much worse 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 conference paper is typeset in Word, my first impression will be "the authors are not serious".
- 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, avoiding animations.
- 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 so much faster to open and has so much less bugs.
- All paper submissions should get a "clarity" score of 4 or 5.
- All papers have to go through at least 30 revisions before submission and 50 after acceptance.
- 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 always use the authors' original slides annotated with the presenter's comments.
- 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.
- I expect everybody in my group
to have a genuine interest in languages and theoretical 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 (every student should learn at least one functional language).
But no C++ or Perl is allowed because we aim for elegance and readability
rather than quick-and-dirtiness.
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) can even not 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 is little contribution, there will be hard work,
even if there is little hard work, there will be fatigue. :)
Advisors should treat PhD students as students who need to learn,
and with high respect, rather than treating them as employees
who need to produce, esp. in the first two 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, it'll eventually work if you keep trying, or at least something else (instead of your original goal) would work and that thing is often 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 seminars, 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, do literature survey, 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 even harmful on the 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 many people in this field, esp. those smartest researchers, so that the student would have an opportunity to collaborate with them during the PhD or after graduation.
- 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 one (1) single-author paper in his/her job application (it would help a lot for academic jobs and it doesn't 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 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 it (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".
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 classically-oriented mindset rather than aiming for short-term and low-impact goals.
- People is 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, people don't.
If there is a conflict between a person and a project,
always care for the person.