Google offers a variety of opportunities for PhD students who wish to gain industry experience. Through our Getting to Know a PhD series, we’ll provide a glimpse into some of these opportunities as well as the impactful projects PhD students at Google work on. Today we’re featuring Cynthia Liem, a PhD student, Google European Doctoral Fellowship Recipient and former Google Anita Borg Scholarship recipient who interned as a Software Engineer on the research team in Mountain View, CA last summer.So Cynthia, tell us about yourself and your PhD topic ...
I’m a PhD student at the Multimedia Computing Group
of Delft University of Technology
. My research is in the field of music information retrieval; I’m working on technologies to analyze, organize and present the considerable amount of digital music information we currently have at our disposal. I’m particularly interested in making sense of music data by obtaining richer perspectives on it by taking into account information from multiple data sources. These can be recordings of multiple interpretations of the same music piece, but also related information in non-audio modalities, such as videos of performing musicians and textual information from collaborative web resources describing songs and their usage contexts.How did you get to work in this area?
Music has always been an important part of my life. I was young when I started playing the piano and obtained a bachelor and master degree in Classical Piano Performance at the Royal Conservatoire
in the Hague. I’m happy to still be an active musician but I’ve always had diverse interests.
In my final year of high school I discovered computer science. The concept of using programs to make a computer do difficult things intrigued me and I realized how much impact CS could have on daily life.
My music and computer science studies largely went on in parallel. The combination of instrumental practice and computer assignments caused a very dense daily schedule but I was also never bored.
Music information retrieval looked like an ideal synthesis of my two fields of expertise. That’s how I decided to do a PhD in this area. I was fortunate to be the first Google European Doctoral Fellowship
Recipient in Multimedia, which allowed me to fund the research project I’d hoped for!Why did you apply for an internship at Google?
Through the Google European Doctoral Fellowship
, I was assigned a Google mentor who works on topics related to my PhD interests. In my case, this was Dr. Douglas Eck
in Mountain View, who is part of Google Research and leads a team focusing on music recommendation. Since Delft and Silicon Valley are quite far apart, we do not get to collaborate daily. However, Doug has remotely been advising and encouraging me in several of my academic activities, most notably the initiation of the ACM MIRUM Workshop
, which managed to successfully bring music retrieval into the spotlight of the prestigious ACM Multimedia conference. While the conference used to be very vision-oriented, thanks to the MIRUM efforts we now
have a dedicated music-related submission area in the main track.
Still, the best way to really work together is being in the same office. As soon as internship hiring started, I got in touch with Doug regarding opportunities. This allowed me to do an internship with his team in Fall 2011, Summer 2013 and I have another one coming up in Summer 2014.What did you work on in your most recent internship at Google?
My task was to find and implement ways to improve classical music recommendation in Google Music. Recommendation for popular music genres which have many listeners work quite well, but in the classical music genre the problem becomes harder, as there both are fewer listeners and more ‘diffusion issues’.
In this genre, the representation of a ‘song’ with a certain ‘title’ by a certain ‘artist’ is not sufficient. As for the ‘song’, we often deal with pieces that might be built out of different related movements. As for the ‘title’, classical music pieces often are characterized by a tempo indication, so for example, Beethoven (or any other composer) wrote several pieces named ‘Allegro’, which definitely are not the same pieces. Then, there still is the matter who should be accredited as ‘artist’. In classical music, we usually mention composer names with a piece, but usually, the musician who performs and records the piece is not the composer, but someone reinterpreting the score that the composer originally wrote. So we can have many renditions of the same piece by different performers, and all of these will differ a bit in the audio domain. This causes a lot of challenges around the concept of ‘similarity’: when are two recordings considered ‘the same’ or ‘similar’, also from a recommendation perspective?
In my internship, I focused on this problem, and looked for ways to get a richer representation of the ‘artist’ as input for the recommendation algorithms, which are aware of both performer and composer contributions. This led to some clear quality improvements, not just for classical music, but also for other genres in which music tends to be reinterpreted by different musicians.How closely connected was your internship to your PhD topic?
In my PhD work I am not focusing on music recommendation that strongly but my internship definitely dealt with getting a richer representation of music data. In that sense it perfectly aligned with my research interests.
I didn’t expect it at first, but for this internship I was able to draw upon my background as a musician, and became the "expert" on classical music on the team. Not only did this benefit me personally, but I felt I was really able to contribute by addressing some information scheme challenges unique to the classical music genre. I even had the opportunity to give some tutorial talks, and in the end prepared a lecture-recital in which I demonstrated some key concepts at the piano.Did you write your own code?
Definitely! As a software engineering intern you will be expected to code, and often your contributions will not be restricted to a fully isolated package, but be part of regular pipeline code. It can be quite intimidating at first to be so close to complex Google code which actually runs in production. At the same time, code health at Google is exceptional, so as soon as you get the hang of inspecting the codebase, it’s very easy to contribute to it.What’s been your favorite part of the internship?
I really liked that it was a multidisciplinary endeavor. Since my topic was relevant to the broader group of people working on Google Music, I had the opportunity to interact with many teams, e.g. the engineers working on the Android Music application, and the content specialists who also are genre experts, and already were looking into quality-improving mechanisms.
I also enjoyed life at Google’s Mountain View Campus in California, they even have some pianos on campus so I could keep practicing. The culture inside Google also is remarkable, you meet many inspiring people who share similar interests with you. I also ran into the most famous faces of the company; I once realized Sergey Brin was having lunch at the table right next to me!
At one point during the summer a special event was held bringing together all female Engineering interns based in US offices. This was really impressive - I don’t often get to be in a room with more than 100 female engineers. We networked, met several female VPs of the company, who talked about their experiences working as engineers in leadership roles. This was really inspiring and having role models like them is vital to the whole discussion about tackling gender and diversity issues in software engineering.What key skills have you gained during your internship?
The internship was a good chance to polish and improve my coding skills. My project was multidisciplinary and so I also developed my communication skills a lot.How does your internship experience compare against your experiences as a PhD in the lab?
Working at an applied university, I am familiar with conducting research with some concrete application and societal or economic impact in mind. At Google, the concrete practical problems are more strongly steering and driving the work. Also, things move really fast. As a PhD, I would spend a few months to elaborate on a problem, come up with possible solutions, and then carefully figure out the most optimal or sophisticated way to fix it. At Google, you are expected to have results within a few weeks. So you need to approach the problem in a very practical way, coming up with a straightforward solution which quickly can be tested. It’s really thinking the agile way: work on small improvements and ensure to always have results, even if they are not optimal at first, since you can (and likely will) go into that at a later iteration.
At Google, a strong measure of success is whether you manage to achieve practical impact in the product or service you’re working on. Regarding that product or service, in a company like Google, you are right in the middle of it, and you are expected to help building it. In academia this final application usually is a bit further away, and not the thing you would primarily be co-developing.What impact do you think this internship experience will have on your PhD?
Obviously, I can use my improved coding and communication skills very well in my regular PhD work. Now that I have seen the practical side of the topics I definitely have a better understanding of deployment- and adaptation-related opportunities and the pitfalls in technology focusing on these topics. I also have some good ideas on how to maintain good code health in my own work. My internship also sparked some new ideas and inspiration regarding research directions I would like to pursue. Has this internship experience impacted the way you think about your future career?
Yes. While I am quite happy in academia, the internship certainly made me see that industry is an interesting career option. I have only had a few years of coding experience from my studies and mostly did scripting in my current academic life so I haven't seriously considered the option of working for a company like Google. I didn't think I would pass the software development hiring bar that would allow me to contribute to Google. Furthermore, for both of my internships I needed to code in C++, a language that I had no experience with. However, I wanted to gain professional experience in this particular team, so in the end I just went for it. It worked out remarkably well! While I would not have believed a few years ago that working in a company like Google was possible, I could potentially see myself in that position now. Why should a PhD student apply for an internship at Google?
During an internship you will get tons of practical experience. If you get the chance to join a team with interests close to yours, it’s a unique opportunity to be ‘close to the fire’ and help building solutions in your field with the potential to affect lots of users. You get to do this in a quite unusual, but really nice environment, where you surely will meet interesting people and get a chance to be inspired.Any advice to offer?
Go for it! If you are passionate about something, let this be your driving force.
Google offers several outreach programs and scholarships for students; apply for them, it is really worth it. If you’re a PhD student: Google is very active at academic conferences. So if you are interested in an internship in a particular area, that is your chance to meet Googlers working in your field. So be brave, step up and have a chat!For more information on our outreach programs and scholarships, please visit our Google Students Job site.