I'm currently a PhD candidate and graduate research assistant at the University of Michigan. I'm working with Prof. Rada Mihalcea and the LIT lab. I am planning on defending my thesis this fall (2020) and currently seeking a postdoctoral research position.
Recently, I have been working on predicting conversational behavior (mainly what people will say) in longitudinal dialog using insights from psycholinguistic, stylometric, and pragmatic analysis of conversations. I am more broadly interested in dialog systems and personalization. I have been looking into ways to create personalized language models when different volumes of data and different types of metadata are available. In the past, I have worked on language modeling, parsing, and sentiment analysis. Recently, I've been looking for ways to apply natural language processing to help reduce anxiety surrounding COVID-19 and to educational games.
I've always loved teaching. I was a graduate student instructor for discrete mathematics (EECS 203 at Michigan) and a lecturer for information retrieval (EECS 486 at Michigan). I have been tutoring students age 14-35 in mathematics and computer science since 2008 and have been fortunate to collaborate with a number of masters and PhD students at the University of Michigan. My goal is to find a position where I can continue my teaching and research interests.
Charlie Welch, Jonathan K. Kummerfeld, Verónica Pérez-Rosas, & Rada Mihalcea (2020). Exploring the Value of Personalized Word Embeddings. In 28th International Conference on Computational Linguistics (COLING). Source Coming Soon
Charlie Welch, & Rada Mihalcea (2016). Targeted Sentiment to Understand Student Comments. In 26th International Conference on Computational Linguistics (COLING). Source CodeBot Design - A website aimed at people who are just starting to understand computer programming. It introduces users to a scripting language that allows them to create a chat bot that they can talk to. This has been used at Girls Encoded, Xplore Engineering, Girl Day, CS Kickstart and other events aimed primarily at high school students.
Bee Focused - Versatile personal task management software that is simple to use. It currently includes functionality for creating hierarchies of tasks, viewing and sorting completed tasks, and adding notes, which are searchable. Searchable notes make it an effective research or personal notebook.
Expressive Interviewing - The ongoing COVID-19 pandemic has raised concerns for many regarding personal and public health implications, financial security and economic stability. Alongside many other unprecedented challenges, there are increasing concerns over social isolation and mental health. This tool is a conversational system that draws on ideas from motivational interviewing and expressive writing. I have a number of ideas I want to implement as features in this site. I am working on expanding the number of topics that users can discuss, including a general conversation feature and a diary feature. I want users to be able to track mood or other indicators on a daily basis and to see how these correlate with summaries of their writing. I also would like to implement different speaking styles and personalities for the interviewer with the goal of building rapport with the user.
Educational Games - Recently, I've been thinking about how to teach through educational games. I have a number of ideas for games including a card game with a philisophical theme and a goal of teaching players more about different points of view, and a board game more specifically about issues surrounding climate change. One game though, that I particularly enjoyed growing up was Fire Emblem. Thanks to a number of resources online, mostly through the fan community FEUniverse, I was able to reimplement many aspects of the engine using C# and Microsoft's XNA framework in ways that are easily extensible for plugging in AI-generated components (the GIF is of my engine, but it looks a lot like the real game).
For those that aren't familiar with Fire Emblem series, each game takes place in a fictional world where there exists conflict between several geopolitical entities. The games are heavily based on story that develops between "chapters" and tends to revolve around a few central characters. These conflicts eventually result in battle and the player must strategically move ally characters around a map to meet a certain objective which ends the chapter (e.g. 'sieze the throne', 'protect the gate for X turns', 'find and talk to Y'). Your group grows as you progress through the story based on decisions you make and each character has unique abilities, ways of moving, and potential interactions with other characters.
Using a character portrait maker I found online, I can piece together characters from a hairstyle, face, body. The tool allows the user to manually align these parts and adjust colors to create portraits that don't exist in the games.
By modifying the JAR file, I made the program output the alignments entered so that these can be used to automatically generate new faces. Having done this for a handful of the available faces, hairstyles, and bodies, and with a few other small changes (e.g. eye color was dependent on hair color), we can generate a range of characters as shown below.
The same generated color palette can be used to recolor other images in the game. The next step I want to work on is extracting information from books about characters, from which an image of the character can be generated, possibly using recent tools for NLP with books. Other descriptions, like terrain, and dialog could be similarly extracted. Aside from the opportunities to generate characters and stories I think Fire Emblem is a game that potentially has room for interesting reinforcement learning (RL) problems. The commercial releases of the game have enemy armies that follow simple rules but RL could be used to learn better policies for moving an army around a map as modeled as a partially observable Markov decision process. On top of that, higher level information about the personalities of individuals or the strategies of politicians and militaries extracted from external texts could constrain or modify how the policy is learned and thus change the behavior of the computer generated characters.
I think this could be a really enjoyable and exciting way to interact with fiction or to learn history. Language models trained on speeches, transcripts, or extracted dialog could be used to generate new fiction following the same personas and speaking style of individuals. It would be particularly interesting to see how the biases and other differences in history textbooks lead to different types of stories (and then different games).
While thinking about all of this, a friend sent me a blog post about an indie board game that teaches Afghani history. The post focused on a game called Pax Pamir, which is about Afghanistan in the early 19th century at the fall of the Durrani empire. Players control the actions of Afghan leaders in attempt to build a new state. This game looks like a fascinating way to get a new perspective on the events and decisions that happened at that time.
Not only did I learn about Pax Pamir in this post, but also about the history of Monopoly. The game was patented by Lizzie Magie in 1903 and originally had two sets of rules. One set is the monopolist rules, those that we know today, but the other set of rules were anti-monopolist rules. The game could be played two ways and the goal was to educate players on the dangers of monopolies.
Educational games clearly have a long history and today there are an increasing number of academic venues for language related work, including Games and NLP at LREC and Wordplay: When Language Meets Games at NeurIPS. These venues include a related line of work on games with a purpose, or GWAPs. These games generally have a method by which they gather data from players or the objective of the game involves solving part of a problem for the game designer. The earliest of these types of games that I played was Foldit, a protein-folding game released in 2008. The game allows players to move around the parts of proteins responsible for numerous diseases and rewards players for more probable structures. I did not feel like the game taught me much, but I think knowing more about biochemistry would have helped me. For me, playing the game was more about the potential for the designers to learn something.
GWAPs seem like a great way to gather data as a researcher if you can get people to play your game. It has been insightful to me to look at these games as well to get a range of views on how people translate an objective into an entertaining game, how AI can be used, who is supposed to learn something from the game (the researchers or the players), and how they learn it (how am I supposed to know how to fold proteins?). Ideally, I'd like to make a game that teaches people history, is self-contained so as to not require other resources, and is beneficial to the players and to the designer (perhaps through more of an HCI perspective). As I explore this, it is a side project for me, but if a more concrete research question comes out of these explorations I will be excited to pursue it. If you have any interest in collaborating on this let me know!