Getting to know a research intern: Nicola Pezzotti

Google Research tackles the most challenging problems in CS and related fields. Being bold and taking risks is essential to what we do, and research teams are embedded throughout Google, allowing our discoveries to affect billions of users each day.

The compelling benefit to researchers is that their innovations can be implemented fast and big. Google’s unique infrastructure facilitates ideas’ speed to market — allowing their ideas to be trialled by millions of users before their papers are even published.

Today we’re talking to PhD Research Intern, Nicola Pezzotti, coming to us from the Google AI team in Zürich. Read on!


So tell us about yourself and your PhD topic …
I’m a PhD student in the Computer Graphics & Visualization group at the Delft University of Technology. My research interest is mainly oriented towards the application of Machine Learning algorithms, in particular Manifold Learning techniques, in a Visual Analytics context.

I’m particularly interested in the extraction of knowledge from large and high-dimensional datasets without an a-priori model of what we can find in the data. This is particularly useful in the context of exploratory data analysis of medical data and for the interpretation of AI models.

How did you get to work in this area?
I remember implementing my first AI, a not-so-intelligent one that played Tic-Tac-Toe, during the first year of high-school and I have always been interested in AI since then.

That being said, during my years at the University of Brescia, I started focusing on general purpose graphics processing unit programming (GPGPU) for Geometry Processing and I left my passion for AI on the side. I really had a lot of fun in implementing general purpose algorithms that make use of graphics hardware, and I continued to do so in my first work in industry in 2011.

Four years ago, I founded a PhD position in the Computer Graphics & Visualization group in Delft. The position was within the ImaGene project and aimed at finding insights that can help address neurodegenerative diseases such as Alzheimer's disease or dementia. I found the possibility to help in this domain very exciting and it gave me the opportunity to combine my knowledge of GPGPU techniques with my passion for AI.

Moreover, the name of the project is VAnPIRe, which gave me the opportunity to make a lot of silly jokes in the office ;)

Why did you apply for an internship at Google and how supportive was your PhD advisor?
GoogIe has top notch AI researchers – I wanted to join Google since the beginning of my PhD. My supervisor, Dr. Anna Vilanova, was very supportive and agreed with me that it would be an amazing opportunity to get in touch with some of these researchers and to make my research more impactful.

Last summer, I felt that I had enough contributions in the field to make my internship at Google a success. Hence, I applied for an internship in research at Google’s Zürich office. The hiring process was extremely fast and well handled and I found a host that was interested in my research topic.

What project was your internship focused on?
My host at Google is Alexander Mordvintsev, the creator of Google DeepDream. You may imagine the excitement that I had when I learned that I was chosen to support him in the development of novel techniques for better interpreting Deep Neural Networks results.

During my four month internship I worked on two different projects. First, I helped Alex in experimenting and getting DeepDream to work on different kinds of media, such as 3D objects and Compositional Pattern-Producing Network. This work focused on the artistic aspect of image parameterizations and is published on Distill.pub, an interactive and online journal. It has been particularly exciting to make the results of these techniques available to a large audience directly in the browser through Distill.pub, and reproducible in Google’s Colab Notebooks.

Then, I focused on developing a new implementation of the tSNE algorithm that scales to very large datasets and runs in the browser! tSNE is a manifold learning technique which is used to visualize high-dimensional feature vectors in 2-dimensional scatterplots while preserving the presence of clusters at different scales.

You may be familiar with its results due to its use for interpreting Deep Neural Network outputs in the TensorFlow Embedding Projector and TensorBoard. However, tSNE does not scale well to large datasets, due to its computational complexity. During my internship I developed a new implementation that scales much better thanks to a GPGPU approach that is implemented in WebGL. This implementation is released in the TensorFlow.js family ad you can try it directly in your browser.

I really liked this work as it shows how lateral thinking using a GPGPU approach can solve otherwise unscalable problems.

Did you publish at Google during your internship?
I did publish two papers, one for each project (ArXiV). I believe that my experience in Google will make my PhD thesis stronger and more impactful. I had the chance to publish on such a novel and creative journal such as Distill.pub, while remotely collaborating with researchers in Mountain View. It has been really a nice way to explore a new medium that brings academic knowledge to a large audience through easy to understand and interactive diagrams.

How closely connected was the work you did during your internship to your PhD topic?
Since I’ve been focusing on the scalability of the tSNE algorithm, in particular, and on Deep Neural Network understanding, in general, my work at Google was very much related to my PhD topic. You can read more about it here.

It has been particularly exciting to release my work as an open source work in the TensorFlow.js family. Bringing openly available algorithms to a larger audience is the icing on the cake for any PhD research.

Did you write your own code?
Writing code is my main driver and I’ve been happy to get in touch with so many exceptional programmers in Google. Releasing open source code has been very easy and I received a lot of support from different Google AI teams in Zürich and Cambridge.

What key skills have you gained from your time at Google?
I had the chance to work with a programming language, Typescript, that was completely new to me. It has also been really eye opening to learn how code is developed in a rigorous and high-quality way at Google.

What impact has this internship experience had on your PhD?
I see my experience at Google as the culmination of my PhD project.

I have been working on the topic of the scalability of manifold-learning algorithms such as tSNE for the last 3 years. Having an open source implementation that can run in the browser for large datasets is really satisfying and I can’t wait to see what other researchers can build using this code. I would not have been able to have had such exposure and impact without this experience.

Looking back on your experiences now: Why should a PhD student apply for an internship at Google? Any advice to offer?
Besides working closely with great researchers and engineers, I have to say that the most striking aspect of my time at Google was how wide the exposure to high quality and open research is.

Every week a number of extremely interesting guests are invited to host talks held in the office. You are free to join, either in person or on a video stream. Some days you really have to choose which one is the best to attend since they are so good and there are so many! If you join Google for an internship you should not miss them, they can help your research in unexpected ways.