Roberto Infante

Cognitive computing · decision-making in humans and machines

rdji@uw.edu · CV · GitHub · LinkedIn · Twitter

Roberto Infante

Why a phd?

This traces back to my graduation year when I told my parents "First of 3". At that time I was talking with an advisor about career plans I didn't know which path to take… pm, swe or ds. I had applied to google for TPM and software engineer then Data Scientist in Expedia. I got into the last rounds of all of them but it never felt that I had a preference for any of those. What motivated me was to work for the mission of Google: Organize the world information. I know I'm deviating a little bit but bear with me.

Two months before that, I was auditing a class in Recommendation systems with professor Chirag Shah. I was already taking too many credits, so I couldn't register to it but it was very important for my CAPSTONE project. For that project, I started using prompt expansion using language models back in 2022. I ended up using Latent Dirichlet Allocation for recommendations instead because using DaVinci was super expensive for a school project. Anyhow, during this class I got two important things:

  1. Learn a little bit of some of academia's point of view on Large language models before them morphing into chat like systems.
  2. Met professor Nicholas Belkin, who continued chatting with me about information personalization.

These conversations with him and professor Michael Schrage (mostly about his book on recommendation engines made) me try to chase this path of machine learning in recommendation systems. So I tried to apply to Google again and also to other places where I could work in the future in these type of projects (Tiktok, Netflix, Meta) are some of the jobs I applied to but between luck, hiring freeze and other great candidates I was not able to get there. I wanted to remain in Seattle, so in order for me to stay there I got into a masters in Information Sciences, being totally honest, I didn't want to do this but at the time it was the "best" decision based on my "first of 3 degrees" goal.

That year was hard for me because there was a lot of hype around language models, and as a curious person, I wanted to work with them in many areas: finance, medicine, logistics, everything. But I did not really know how.

It was not just because the technology was new. I really like data wrangling, so the way language models were interpreting data was incredible to me. Before, we needed to define the parameters and decide exactly what data we were going to ingest. That felt like a summation, where you work with separate and clearly defined pieces. With language models, it felt smoother, imperfect for sure, but more like an integration, where different pieces of information could flow together in a more continuous way.

I tried to use language models for triaging with pregnant women to give more information to them during their process (my dad is a gynecologist obstetrician so we've been seeing this problem for a while) but there were many hallucinations and it was hard to do system diagnosis for it to be released to the wild. Then during my first year in my masters I got maybe from 3 different professors the word prescriptive analytics. And I got obsessed with it. I thought of prescriptive analytics like a some sort of recommendations system but deciding on just one overall solution for the goal at hand; with some feedback. Apart from that, the masters didn't had too much alignment with my future professional plans. So through conversations with my informatics dean I decided to go on leave. Machine Learning classes were good but for them to be really useful (for what I wanted) I needed to go deeper on the material on my own but I was not tested on that so constructive feedback was hard. That was the first time where I said, I really want to do my Phd. So I ran into professor Mike Teodorescu and he helped me go through the reality of applying to a phd. After some conversations, I decided to do my phd, but in what?

While trying to figure this out, I met a guy who had the idea of creating a discounts app in Monterrey. This was something I wanted to do back in college (Remember the recommendations system, well it was in restaurants and places to go out to, very original right?) so I decided to join. This way I could have a job while learning more about prescriptive systems specifically decision making. (I needed to eat! and it also felt that I was completing something I really wanted to finish.)

So what could I do? I tried utility functions linked to an action space that is created beforehand (with genAI or manually) and we just developed these decision makers for every situation? Or we can use Bayes factor so that is generated by a system and that is used to determine uncertainty and later we add a feedback based on success? Should this be at inference time or at training time? (I decided to just operate on inference time for all my decisions based on Andrew Ng comments on working on that layer is more needed) these and many more questions there in my notebook made me realize that essentially there were way more questions than answers BUT my brain was working in engineering/developer mode.

I finished the mobile app. It was so hard to find time to work on the phd prep. I liked to work in these B2C problems. I got the chance to establish metrics, do analysis with these, and figure out if they were good to explain user phenomena. Also developing the systems and the new spec first coding with AI was fun. So I did the three jobs I was not deciding on years ago at the same time. So when I finished the time I gave myself, some questions started popping.. Do I want to do a phd? Why a phd?

First what I realized is that the question was wrongly asked since the beginning... It is not whether you want to do a phd or not. It is about what are you trying to answer, what questions do you have? Have they been answered? Were they answered rightly based on your thinking? I think those things are more important. One thing I do like about telling myself I wanted to do a phd. It was because of that stubbornness where I was telling myself that I wanted to do a phd so that I tried to do research on my own with the help of people from UW, and also why I continued testing NYT connections with LLMs and friends.

I talked again with dean and advised me to work on my research questions. When lining up the questions, one term I saw two years before popped again. Cognitive computing. When talking with professors (and also obviously talking with ChatGPT and Claude) told me say the word cognition on my research or applications, because I could not claim it. So if many times I was talking about it, this cognition term appeared, maybe the question should be instead: what do I need to talk about cognition in my work.. Here is where the machines and human cognition lab appeared, also brains and machines and computation minds and machines lab, all those labs that are very aligned with what I want to continue working. Finding this area and looking at the alignment after finding this, felt like the last backpropagation step, when the error finally decreases enough for all the weights to align and the network is ready to produce something meaningful.

Then I read a bunch of papers from different people in neuroscience, psychology and computer science and I felt so stupid. I asked myself many times if I'm truly capable of doing my phd.

So I think this is what a phd is and will be. You are going to have ups and downs, you are going to see that someone is doing something you don't understand and you will have to understand it and step back to reason from another perspective so that you can think of every single detail.. I read this advice from a person that I want to work with: https://co2.ini.uzh.ch/Openings/warning.html. he goes through the reality check from entering a phd. And it's honest, hard, but also refreshing.

This last text made me realize that I don't want to do a Phd, I want to work in cognitive computing for decision making under uncertainty and the Phd is the first step that I want to take. I know that being with people working on the same area, spending quality time with my advisor how much or little time is, learning from the courses related to my path and working on projects that might not be the same but having some parameters of what I need; will be a reinforcement loop that I'm so eager to use it.