Tips for New PhD Students in Machine Learning

Starting a PhD in a Virtual Environment

Starting a PhD in itself is full of many challenges, but students starting this fall will have to navigate the extra hurdle of a virtual environment. Here I’m attempting to write down what I’d tell my junior colleagues starting a PhD in the US – geared toward students in Computer Science, and especially Machine Learning – including some Princeton-specific thoughts.

Navigating the academic landscape

In graduate school, you get an immense amount of freedom to choose how to spend your time. Figuring out how to weigh and adjust your priorities is a skill that will be developed over time.

Getting started with research

At Princeton, in your first year or so, you generally are free to explore working with different professors before committing to an official advisor (or co-advisors) – take advantage of this early on, but also throughout your PhD.

Usually your advisor will help you get started with a new research project and suggest a few directions to get started with; maybe your advisor will want you to come in with a few ideas of your own and help you shape those ideas. Try to schedule regular meetings if possible, especially if you find this helpful or motivating (this is usually an aspect of “advisor style” to keep in mind).

In practice, advisors are fairly busy and generally expect a lot of independence from you as a student (but you should ask your advisor directly what their expectations are!). To supplement whatever guidance you receive from your advisor(s) on a research project, I’d also suggest:

  • Try to join a project with a senior PhD student (or postdoc) that has a few publications already: one way to develop strong research skills is by working with someone who has already published a few impactful papers. This will generally help you get up to speed on, e.g., what background material to learn, how to run experiments on the cluster, how to write a paper, what are the typical venues to submit to, what are some future extensions, how to choose research projects, how to write a paper rebuttal, how to submit to the arXiv, etc.
  • Get to know other professors in your department/area: these may be eventual committee members, co-advisors, or collaborators. How do you get to know other professors? Ask questions in class and attend office hours, take seminars from professors, ask faculty members if you can sit in their group meetings or reading groups.
  • Get advice on what papers, books, and resources to check out from other students and postdocs. But also try to avoid groupthink and figure out what problems excite you, rather than gravitating to hot areas by default.
  • Attend relevant seminars and talks to get an idea of what types of research people are currently thinking about. Jot down the main takeaway of the talk, and make a mental note if there is a paper or preprint online.

I’d also suggest keeping a (digital) notebook of research ideas and adding to it every time inspiration strikes. Many of these will probably be “bad” ideas, but sometimes even bad ideas can get shaped into solid research contributions.

Lastly, I think it’s important to focus on building research skills, rather than worrying too much about working on ambitious research projects. Your PhD research will help you contribute new knowledge to some area of research, but does not define what you work on for the rest of your career!

Check out:

Balancing classes (breadth & foundations) vs research (depth)

Over time, I’ve come to see coursework as an opportunity to learn from someone who is an expert in some area and as a chance to really expand your toolkit. So I’d recommend trying to take some foundational courses in your earlier years if you can, especially if you haven’t had much previous exposure to particular topics, as well as some topics courses to help expand your breadth.

On the virtual format: Zoom lectures can be tough, but it’s not a bad idea to spend some more time on courses in your first year. Courses add some much-needed extra structure during a virtual term and allow you to meet other students that you might not ordinarily interact with.

At Princeton, some excellent foundational courses I’d recommend for ML students (in CS, ORFE, and EE) include:

  • Theoretical Machine Learning
  • Probability Theory
  • Probability in High-Dimension (and/or Mathematics of Data Science)
  • Statistical Inference (and/or Nonparametric Statistics)
  • Convex Optimization (and/or Nonlinear Optimization and/or Computational Statistics)

More generally, talk to other students to find out what courses they enjoyed and found useful (or if there is an instructor that really stands out).

On seminars: I have some ambivalence about taking research seminars, especially paper reading and presentation courses (I have taken many such courses). But I think the right ones can be a really great way to learn about a narrow topic relevant to your research and to get to know a professor in a specific research area you’re interested in.

For example, at Princeton I really enjoyed taking a seminar on Optimization for Machine Learning. I liked this because it was a lecture-based course covering both foundational topics and modern research progress. The course had a few simple assignments to help reinforce my understanding of the material but were also not too time consuming.

My suggestion is to only take a few seminars, and to wait until later in your PhD when you have less time for more intensive coursework but still want to gain breadth in some new areas. If there is a topic that you’re really interested in or is your specific research area and you see a seminar being taught, then of course I’d recommend checking it out, since these aren’t usually taught every year!

The CS program at Princeton gives you a lot of flexibility of when you can take courses and which courses to take. Thus, this give you some choice in how to balance your course schedule with research. For my required breadth areas, I took Advanced Algorithms and Networks. During my first 3 years, I chose to take one semester that was more course-focused (e.g., one or more courses with weekly or bi-weekly assignments) and one semester that was more research-focused (e.g., at most 1 research seminar course), and I’d typically shoot for some type of paper submission deadline during the term when I wasn’t doing much coursework (RIP Spring 2020).

Building communication skills

Communication skills are crucial to develop for researchers. We often hear about communication skills in giving talks and writing papers (which is very important!). Early on in your graduate career, you’ll also want to think about how to have effective meetings – this is especially important given the virtual nature of meetings right now.

Leading effective research meetings

Maybe you’ve gotten some awesome results for a project, or maybe you’re stuck on something and are meeting with your advisor and/or collaborators. Beyond just preparing the technical content of what you’re planning to discuss, think about how to communicate your results in a clear and efficient manner so as to minimize your collaborators’ cognitive load and ultimately get the best feedback possible.

For in-person (or video call) meetings, you may want to experiment with coming in with an agenda of items you want to discuss (or even consider sending this out in advance). If you’re presenting some results, remind your collaborators of the setting and your last conversation(s) before sharing results or updates; e.g., don’t just screen share and jump into page 4 of your notes – briefly remind everyone of what’s going on.

If you are collaborating with someone through, e.g., email or Slack, you’ll want to provide a little bit more context of what you’re trying to communicate. For example, don’t just send them a figure with little to no context, and don’t assume they remember the details of your last conversation. At the minimum a concise writeup of the setting is useful, for instance:

  • What data are you using (if synthetic - how was it generated?)
  • What model are you using and how was it fit? Hyperparameters?
  • What is a summary of the conclusions/takeaways you want to convey?
  • What questions do you have? What are you stuck on? What are you thinking about doing next?

Read over your writeup and double check that it clearly and precisely communicates the points you’re trying to convey. Make sure any plots you include are clearly labeled. Keep things short to maximize the chance it’ll actually get read.

Keep detailed notes of all of your meetings – this is especially important if you start working on multiple projects and need to context switch. At the end of a meeting, sometimes it’s helpful to verbally discuss concretely what your TODOs are for next time. This may help you focus on what to do next and also help get some direction from your advisor/collaborators.

1-1 meetings with your advisor

Here’s a great zine from Julia Evans – it’s geared towards industry, but I think the main ideas apply in terms of meetings with your advisor. Besides the technical specifics of a research project, you should discuss other things like:

  • What should I read to learn about [topic]?
  • I’d like to brainstorm about [potential research direction].
  • What should I expect for my [generals exam, defense, conference talk]?
  • I want apply for [fellowship, award, internship, contributed talk].
  • How do I do [write a research statement, give a talk, write a paper]?
  • I think we could improve [the reading group] by doing [suggestion].
  • Do you have any feedback on [the talk I gave, my research statement]?
  • What are the typical job trajectories after the PhD?

Writing and presentation skills

Writing and presentation skills are often under-emphasized in graduate school training but are so crucial for getting paper acceptances, communicating your ideas, and getting funding for new research.

In my experience, the best way to get better at giving talks and writing papers is to get a lot of practice in. Keeping a research blog (or detailed notes) can help you practice how to clearly articulate a technical topic. Besides advisors and collaborators, you can also get feedback on paper drafts from peers – this feedback gives you perspective on potential comments you may get from reviewers or readers that you can work on clarifying.

Practice giving talks and presentations as much as possible, and get feedback on what could be more clear – group meetings, reading groups, and class presentations are a great way to get started with this. When you watch a talk you really like, make a note of what was great about it. If you see a talk you thought could have been better, make a note of why. Later on, you’ll give talks at conferences and workshops and at other universities, and it’s great to be extra prepared before you start speaking in front of larger audiences.

Practice your talks before you give them! This will help you with your general delivery and flow, even when you get nervous. Before you give a generals or qualifying exam talk, schedule a practice talk with your peers and/or ask your advisor if you can give a practice talk. You can also practice and record your talks on Zoom – this allows you to watch the talk back and see what you can improve on.

Additional reading:

As a graduate student, you’ll quickly realize how many papers there are: journal papers, conference papers, workshop papers, arXiv papers, etc. You might wonder how to possibly keep up with all the papers being put out every day. My answer to this is: you don’t – but more on this later.

Some ways to read papers include:

  • High-level browsing: reading the title, authors, and (maybe) abstract
  • Big-picture read: high-level browsing + reading the introduction and skimming the sections of the paper.
  • Detailed read: big-picture read + carefully reading (and re-reading) many or all of the technical sections of the paper

My workflow: Most papers I read only get a big-picture read. I also do a lot of high-level browsing of papers from daily arXiv email blasts (I’m subscribed to stat.ML and math.ST), and I generally make a note of anything directly relevant to my research. If it’s not too relevant to my work but seems interesting, I try to save it using the Google Keep browser plugin.

Typically papers I read carefully are longer, journal articles and take a lot of time for me to digest; these are usually papers directly related to a research project I’m currently working on or papers that provide a deep understanding of a new topic I’m trying to understand. Also, if there’s a talk available (e.g., from a conference, workshop, tutorial, or summer school), I try to watch that before reading the paper in depth; that way I come in already knowing the main idea and concepts before diving into the details.

Tips for early on: keep a detailed note-tracking system for papers, and have these backed up via cloud storage or version control. You may even consider keeping a citation system. When you do a big-picture read, it’s helpful to write down your version of the big picture summary, so you can refer back to it later. This is especially useful when it’s time to write up a paper and you’re going back to review and organize related work. Taking notes and revisiting them upon second or third readings of a paper is also useful for gaining new insights on a topic – oftentimes when you’re new to a topic, you don’t have as much context or background to fully understand some parts of a paper.

I am generally skeptical of tools that you have to pay a monthly subscription to use, as I value persistence of my notes and workflow (and sometimes tools stop being supported or start charging for more than two devices). Here are some tools I personally use as of the current writing:

  • For detailed research notes: I like to have these notes in LaTeX + pdf format and in backed up in a git repository.
  • Notability for iOS and MacOS: I’ve been using my ipad to keep a lot of notes on each of my projects, meeting notes, notes from talks and lectures, and paper annotation notes. Recently I also got the desktop app in order to make it easier to add papers and typed notes.
  • Google Keep for super quick notes: e.g., I save papers that might be relevant after doing a high-level browse using the browser extension.
  • I keep detailed folders of papers (in Dropbox) to allow for fast search of titles/authors.
  • Using Jekyll/Hugo (or similar tool) + MathJax + git to keep LaTeX notes in a blog format: this makes it nice to organize notes by topic (or give some notes multiple topics) and to in general customize your note-taking format. Note: you can just organize this locally without posting your notes online.
  • Google docs: for collaborative projects, sometimes I keep lists of related work with notes in shared google docs / folders.
  • Paper notebooks: I do like to write on paper, but I try to make sure to transfer anything important to LaTeX or some other digital notebook so that I don’t lose it.

Find a format that works for you so that you can refer back to them in 5 years, and keep those notes under version control or backed up in some way.

Aside: when I first started doing ML research, I kept most of my notes in a paper notebook. Now I love some good Muji products – but I found that I rarely refer back to handwritten notes and eventually lose track of physical pages and notebooks. Since switching over to more digital notetaking tools, I’ve definitely noticed a difference in my ability to keep track of multiple projects and ideas.

Building strong relationships

Finding a good set of collaborators is often key and can make research more fun. Learning from a diverse set of people often helps you develop new perspectives and leads to more creative thinking. Finding good collaborators can take time (and is often more difficult for students from underrepresented groups), but one way to get started is to first build your research network.

Virtual coffee chats

Given the virtual environment, building community will be even harder than before, so it’s important to stay proactive. I’d highly recommend trying to schedule a weekly 1-1 coffee chat with other students and postdocs in your lab and in your department. This could lead to friendships and collaborations but also just keep you engaged in the community.

1-1 meetings with visitors

Usually your advisor will also have visiting researchers in the lab and have students sign up to meet with these researchers. This is another great opportunity to get to know another researcher and to share your own research. If you’re not sure what to talk about, some general topics include:

  • General introductions about your backgrounds
  • Ask about what they’re currently excited about
  • Tell them a bit about your current interests or a project you’re working on

Generally, researchers and academics love to talk about their own work, and so if you feel like you don’t have much to say yourself, this is an easy way to fill a meeting. But I’d also encourage you to chat about some of your interests – part of the graduate school experience is learning how to get out of your comfort zone and building up your confidence; it’s totally fine to say you just got started with research but are really interested in X because of Y.

Have a website and update it regularly

Graduate students (and yes, first years too) should make a research website. You can usually host on a university domain or on Github pages. If your department has a student directory, they may ask to link to a personal website – definitely take advantage of this! Similarly, advisors often link to their current students’ websites.

Having a website earlier on in your graduate career is an important step toward having some visibility. When you’re applying for jobs (or internships, fellowships, travel grants, etc.), it is helpful to have a website. It’s also very common to look up someone’s website when considering speaker invitations for events or reviewer invitations for academic conferences and workshops. It’s generally considered a professional must-have now, just like how you need to maintain a CV or resume.

Many students are hesitant about making a website, often due to feeling like they don’t have anything to put online. But even if you feel this way, you can still start out with a fairly minimal website: e.g., name, email, a brief bio (what program are you in, where were you before that), and possibly even a few sentences on what you’re interested in now.

If you’re comfortable, here are some ideas on other things you might pick and choose from when deciding what to include:

  • A professional photo
  • A brief bio: including who you’re advised by, if you’re part of a larger research group
  • Links to: Github, Google Scholar, Twitter, CV, etc.
  • Past work and teaching experience
  • Research portfolio: pre-prints and working papers, publications, the report for a course project you’re proud of, a description and link of any software packages you’re written
  • Non-academic work you’re proud of (e.g., volunteer work)

Virtual conferences and workshops

Attending conferences is a good way to meet people and learn about new research. One of the advantages of the virtual format is that student registration fees are generally fairly low (~$25) or even free, and so your advisor will likely be more willing to support you, even if you’re not presenting any work. You can also apply for a registration fee scholarship – often conferences offer applications for students as well as researchers from underrepresented groups. In machine learning, several of the major conferences have some presence from some affinity group, such as Black in AI, LatinX in AI, {Dis}Ability in AI, and Women in Machine Learning (also other areas such as NLP, CV), and many of these also offer scholarships to register for conferences, such as NeurIPS and ICML.

Registering for a virtual conference gives you access to a bunch of recorded talks and panels, as well as a chance to interact with other conference attendees. I’d suggest trying to attend a virtual conference this year, regardless of whether you’re presenting anything.

What are the main conference venues in machine learning? Just to list a few:

  • NeurIPS
  • ICML
  • COLT
  • UAI
  • ICLR
  • AAAI
  • KDD

Some of these are more geared towards certain areas, such as theory or applications. If you’re working at the intersection of ML and statistics, attending statistics conferences (which generally don’t have published proceedings) may also be of interest, e.g.: JSM, ISBA, or smaller workshops in specific topics.

A great way to participate in conferences early on is to submit to workshops. Typically, many of the larger conferences (e.g., NeurIPS and ICML) offer a few days of workshops that are typically solicit extended abstracts and short papers (e.g., around 2–4 pages) that are not published in the conference proceedings. This is a great way to meet other people working in this subfield and to get feedback on your work. Typically, the acceptance rate for workshops is much higher than for a conference (but you should still strive to only submit high-quality work!).

Additionally, many research institutes often have semester-long or year-long programs with workshops, such as the Simon’s Institute or the Institute of Advanced Study.

Maintaining and contributing to a healthy work environment

Based on my own personal experience and conversations with peers, there are many challenging aspects of grad school (which I’d say is an understatement!), and these will be different for everyone!

The main thing I want to emphasize is that it’s important to maintain and contribute to a healthy work environment, and this will probably take some experimenting to figure out what works for you.

WFH productivity and mental health

It’s a huge privilege for computer scientists to be able to work from home on their computers. That said, I’ve definitely found it hard to be productive working from home full-time in the middle of a pandemic. I think it’s important to be especially gentle with ourselves and others right now – personally, I’ve been trying to take things one week at a time.

Physical and mental health

Take care of your physical and mental health – this is not easy and takes active work! Graduate school itself is filled with moments of imposter syndrome, failure, isolation, and stress. So being proactive about building up your physical and mental health is crucial for preparing you for potential tough situations:

  • Get lots of sleep, drink lots of water, and eat healthily.
  • Try to prioritize getting some exercise and spending some time outdoors every day.
  • Establish a strong support group – talk to a therapist, your mentors, and friends and family regularly. (At Princeton: check out the CS Grad and GSG Slack Groups.)
  • Develop and maintain some hobbies outside of work.
  • Try to maintain a regular sleep schedule and daily routine.

Work from home tips

Try to get a good work setup at home, if possible. You might want to consider asking if your advisor, department, or university has resources in helping you get set up to work from home, with e.g., a laptop, monitor, desk, and chair. I’d also check with your advisor (or department) to see if they have funds for a tablet for online meetings – if not, I’ve found that paper+pen and webcam can also be useful for communicating in online video calls. Try to maintain some separation of work and life, and try to keep your work area clean!

Stay organized – right now the extra lack of structure and interactions makes it easy for the days to just blend together. These days I really rely on calendar invites to keep track of what I need to do. I’ve tried a lot of various organization tools. Currently, I’ve been using a super simple system – I maintain a note with checkboxes of all the tasks I need to do this semester and when I need to do them by. Then I make sure to check it every day to remind myself what needs to get done soon and update the list when new tasks come up. (Update: I’ve been using a similar workflow as the one described, but now using Todoist to keep track of long-termer goals and deadlines as well as daily tasks and meetings with the calendar integration.)

Several times I’ve looked back at a semester and wondered, “What did I do the past few months?” This past year, I’ve been keeping a daily research log in a Google doc, where I write down all the tasks I did that day (research, meetings, exercise, errands). At the start of each day, I write down tasks I plan to do and update my list of completed tasks as the day goes on. The reason I do this is because it helps me feel like I am moving forward, even if at an extremely slow rate!

Take a break!

Some days are not going to be that productive – and that’s ok! Take time off if you need to, but also when you don’t need it so you don’t burn out. In academia, there is a culture of overworking and projecting the image of working all the time, and this is something I actively try to resist. During the semester, I almost always take fall and spring break off and take at least a week off during summer/winter holidays. I also try to not work on the weekends and evenings and generally push back now when people try to schedule work meetings on the weekends or during the evening*.

*Except perhaps around conference deadlines. :-)

Contributing to an inclusive work environment

Machine learning (CS / STEM) has a diversity problem. But as graduate students, we each can strive toward improving the inclusivity of our local community, such as our research groups, departments, university, and the greater research community, and to educate ourselves about systemic issues faced by students and researchers from underrepresented groups. For students starting just now, it won’t be long before you become one of the senior members of your research lab and other students will look to you for guidance.

I’ll close with some recommended reading:

Diana Cai
Center for Computational Mathematics

I am broadly interested in machine learning and statistics, and in particular, developing robust and reliable methods for modeling and inference.