TL;DR — Why a PhD?
My path through building information systems in different contexts (startups, classes and personal projects) kept bringing me back to the same question: how do reasoning systems recognize when what they currently have may be insufficient, and how does that recognition change what they do next? Building products (and failing too) helped me realize that I do not only want to apply existing models; I want to understand this first in humans, compare it with machines, model it computationally and eventually engineer better reasoning systems. Finding cognitive computing gave a name to the area I had been moving toward for 3 years, but now computational cognition and human and machine intelligence are closer to what I want to work on. Why a phd? I realized that wanting a PhD was the wrong way to frame it. The real question was what I wanted to understand badly enough to spend years working on it. I see the PhD as the environment where I can acquire the depth required to contribute meaningful work in intelligence. Regardless of how demanding I know it can get.
Read the full story — 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:
- Learn a little bit of some of academia's point of view on Large language models before them morphing into chat like systems.
- 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.
At that time I was trying to engineer uncertainty directly, through things like Bayes factor comparisons between hypotheses. I did not yet have the cognitive question I have now. I was still trying to score the possibilities and decide between them, instead of asking how those possibilities appeared or how a reasoner knew that what it had was not enough.
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.
Something changed later. Newer models could suddenly solve Connections much better. And this made me ask a different question: What changed in the reasoning? Not just why is the model more accurate, but is it generating better possibilities, evaluating them differently, or becoming better at recognizing when what it currently has is not enough? This was the bridge from the engineering experiments to the research question I have now.
This also made me realize that wanting a PhD was the wrong way to frame it. The real question was what I wanted to understand badly enough to spend years working on it.
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.
Cognitive computing is still important in this story because that was the term I found at the time. But now I think computational cognition, computational cognitive science and human and machine intelligence are closer to the work I am trying to do.
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.
Now I would say the question more specifically. I want to study how humans and machines monitor and control ongoing reasoning, particularly how they recognize when the possibilities they currently have may be insufficient before knowing what is missing. I want to be in an environment where I can observe something in humans, form a computational hypothesis about it, test whether machines show the same behavior, and then ask whether what we learn can be engineered into better reasoning systems. This is the research loop that I want the PhD to help me study properly.