Sergi Abadal completed his 2020-21 NEC Student Research Fellowship with NEC Laboratories Europe on the topic, iGNNspector: Graph-Driven Acceleration of Graph Neural Networks. Sergi completed his PhD in Computer Architecture (Hons) from Universitat Politècnica de Catalunya in 2016, and has been a visiting researcher at the University of Illinois, Georgia Institute of Technology and the Foundation for Research and Technology (FORTH) in Greece. Sergi was recently awarded a European Research Council Starting Grant to continue his work.
NEC: When did you realize that computer science was the profession that you wanted to pursue?
Sergi Abadal: I think it was when I was 14 or so. I was fascinated with trying to understand the Internet; what was it and how could different computers connect? That was one of the seminal moments that eventually led me to enroll in a telecommunications degree at The Technical University of Catalonia (Universidad Politécnica de Cataluña) or UPC, which is similar discipline to computer engineering here in Spain. At that point, I realized that computer science was much more than I could imagine. During my initial studies about telecommunications, everything was more focused on electronics and communications – the Internet part of my story. When I progressed to my master’s and PhD, things naturally went back to computer architecture, so my research expanded into computers and computer science.
NEC: What led you to pursue your area of research interest and why at UPC?
Sergi Abadal: I always had good advisors, fellow students and people around me at UPC, so I chose not to move. I completed my bachelors, masters and PhD there, and am now pursuing my professorship at UPC because I feel it is a natural choice given my career path so far. I did not feel it necessary to move and pursue other, perhaps more compelling institutional options. But one of the perks of research is that you can do research staying here and there, so I have always tried to expand my horizons.
NEC: Can you provide an insight into the research you did as part of your NEC Student Research fellowship at NEC Laboratories Europe?
Sergi Abadal: The research that I was doing relates to machine learning and how to accelerate different types of neural networks, in particular those related to graph learning, which are capable of learning relationships within data that is structured as a graph. This is quite a bit different from other types of machine learning.
Why this research? It evolved naturally. I started working on miniaturized antennas; where I was trying to build antennas that were so small you could fit ten or more into a microchip and communicate within the chip through these antennas. That approach provided some sort of reconfigurability, which was good for different types of workloads of the different types of architectures that we were researching. We were looking for new architectures and types of applications that would need this kind of configuration and came up with machine learning to do this. At the time, everyone was trying to make better processors to accelerate machine learning neural networks. Previously, we were researching communication systems that are adaptive and versatile, which needed computer architectures that were also versatile, and were looking into how these were useful. We realized graph learning is an application that is needed.
NEC: What sort of challenges were you hoping to overcome?
Sergi Abadal: Well, I would start by saying that machine learning is everywhere right now. It's a hot topic. Neural networks are used everywhere, for example, in our cell phones, because you want to have fingerprint recognition or facial recognition to unlock the phone. They are also used in recommendation systems. One of the big problems is how to compute what is behind a machine-learning algorithm. How can you do it in the least amount of time with the least amount of energy?
There are different types of neural networks that can work well with different applications. For instance, with computer vision for facial recognition or image recognition, convolutional neural networks work best. However, there was no neural network that was good for learning from arbitrary relationships, which is what can be represented in a graph. A graph neural network is a set of nodes and edges that represent how things relate to each other in an abstract way.
The fundamental challenge of graph neural networks is how they are computed. In other types of neural networks, the type of computation is fixed, so you always know which kind of additions and multiplications you can expect, and you can adapt your computations to do this as fast and efficiently as possible. But with graph neural networks, you depend on the graph that you're trying to learn from. For example, you might want to build a processor, which is very good at learning from graphs, without knowing what graph it will have to learn from. So the computation, the amount of multiplications and additions and how to do them, is not known or predictable. To achieve this you need to design a processor that is able to adapt all the time to these different types of graphs. That was the main challenge that we were trying to solve in the NEC fellowship: how to use information from the graph and analyze it. For example, how well connected and dense is it and so on? With this information we then looked for an understanding of what was the best way to accelerate the neural network that ran on the graph neural network.
NEC: Were you using your research to develop AI that reduces the processing load on smaller devices or was it a more a fundamental concept?
Sergi Abadal: It was more fundamental. You should be able to use the outcome of our knowledge graph research in low-power, simple processors that go into cell phones or, at the other end of the spectrum, into processors used in servers or big data centers.
NEC: You mentioned that your research was about solving or finding connections in arbitrary relationships. Why is that an issue for AI now?
Sergi Abadal: Until about three years ago, there were no effective algorithms to extract that information: to learn those relationships. Neural networks back then were either very good at analyzing images or extracting relationships from temporal data like, for instance, voice, which is a continuous signal. However, there was no neural network capable of extracting relationships between different arbitrary entities.
NEC: Can you give an example?
Sergi Abadal: Yes, natural language processing is one example. So recognizing the syntax of a sentence, which might be different across languages – it's one of the applications of a neural network like this. Imagine that you want to do a translation. A translator cannot translate word by word, because the sentences would look terrible. It needs to recognize the syntax of the sentence and then do a full translation. To accomplish this, you need to understand the relationship between words, which can be arbitrary: one word can be related to the next one, but it can also be related to the last one of the sentence, or it can be related to the fact that you have a question mark at the end. To fully understand how grammar or syntax works you need to learn about this arbitrary relationship between the different words of a sentence. That is one of example.
Another example is social media. It is a graph structure in the sense that you are connected to the people that you follow, and people that follow you are also connected to you. So this is a graph and people are connected through edges. So how can a social network recommend who you should follow, if that person does not know you? Basically, what these algorithms do is learn from you and your relationships, who you are following at the moment, and try to extract a pattern out of that, to try and recommend who you should follow next. This can be applied to an online shop to make recommendations based on what you bought and what other people like you bought in the past – what to recommend to you because it knows that there will be a high chance that you buy it. That is the recommendation system. So those are examples of things that you can model as a graph with relationships. A neural network, a graph neural network, can learn from those relationships to give you new predictions, new possibilities, and so on.
NEC: Were you focusing on any specific application examples or use cases in your research?
Sergi Abadal: No, and that was on purpose. Let me give you one example. A knowledge graph that represents a molecule is not the same as one that represents a social media network. A molecule is a set of elements that are related through chemistry and chemical relationships; you can describe a molecule as a graph neural network and that graph is going to be very small, for example, 20 nodes connected with a few edges. With that, you can already predict if that molecule is going to be sweet, sour or have a given amount of properties. Therefore, with a graph neural network you can already predict these kinds of properties, only with 20 nodes and a few edges. A social network is millions and millions of people connected with billions of edges, so you have small graphs and big graphs, and they are equally important in their respective applications but they pose different problems from the perspective of computing. Molecules are small, but they need to be fast. So what I was doing was much more fundamental. I was getting graph neural networks, whatever they were, from whatever system and application, and analyzing these from a mathematical perspective. Then we used that information to see how we could accelerate the computation of the graph neural network we were looking at.
NEC: You mentioned that there is a lot of research in AI intended to accelerate software and hardware processing. What do you think made your research unique?
Sergi Abadal: The reason why I focused on this type of problem is because the use of graph neural networks are quickly gaining momentum. People are now looking at how to accelerate processing of graphs. Researches are trying to come up with new microchips that have faster hardware, and are implementing new changes in the software code of neural networks to increase their speed. Is the graph neural network large or small? How are the connections? My thoughts were, if the processing speed of a microchip is closely related to the knowledge graph then why not look at the graph? Why not extract the mathematical properties of graphs to drive hardware accelerators and design one that takes account how the graph is.
As an extension of this, we were able to pick many of the hardware accelerators that people have proposed and check which accelerators worked better, depending on the structure of their knowledge graphs. What we are hoping to achieve is to create an AI-based system that helps us decide for each scenario, if the graph is like this, perhaps it is better for to use this set of variables instead of the other. With this approach, we are investigating what is the best way to improve hardware accelerators by using what already exists or with something new.