Interview with Miaoqi Zhu, a Computer & Social Scientist working in Hollywood
How are psychology, computer science, and data analysis related? In the past ~40 years, since the early days in computing, there have been a number of attempts at bringing those fields together. The field of cognitive science and cognitive psychology is one example. But with advanced and versatile technologies, 100+ years of insights from psychology, and loads of data to advance the field of data analysis, we have a new wave of work uniting psychology, computer science and data analysis. Miaoqi Zhu is involved with this rising area. In this week’s interview, he tells us about his experience in Software Engineering, Computer Graphics, Psychology, Human-Computer Interaction, and Big Data, and how a new field is erupting combining these areas.
Hi, Miaoqi. How did you get involved with software engineering and developing computer graphics?
It is kind of “funny” that I finished my bachelors in a business related major and my masters program focused on Human-Computer Interaction Design. Even coming from this mixed background, I still wanted to pursue my PhD in Computer and Information Sciences. I was lucky to have some options, since I felt that the
type of research I wanted to pursue may be better done in an interdisciplinary program. I then spent the next five years in the College of Computing and Digital Media at DePaul University.
I got involved with Software Engineering because of my research agenda and my interest in Computer Graphics (CG) and Animation. To pick up and sharpen my skills in a short period of time, I took a class in game programming. It was hard as I had to write a game engine from scratch, but in the end I learned tons. I deeply realized that software engineering is just a tool to implement your solutions for a given problem. The key is how to construct the solution rather than the syntax of specific languages. The solution is encapsulated in your algorithm and the implementation requires a solid understanding of your operating system(s) as well as a proficiency in a programming language. Especially for game programming, it is pretty much a
CG and Animation is a field that sees a truly beautiful marriage of art and math. I love it not because of the joy of writing code but the process of deriving math functions based on physics. From ray-tracing to B-spline interpolation, you will be amazed about how math can help us simulate the world and create realistic artwork. In fact, CG and Animation can do more than just art. At DePaul, I used to be with an active group of researchers (http://asl.cs.depaul.edu/) dedicated to American Sign Languages research. Their work aims at using CG and Animation and Computational Linguistics to bridge the communication gap between the deaf and hearing worlds. It is just fantastic.
It appears to me that the industry will expect prospective employees to have some level of programming/scripting skills. With so many free tutorials online, you can certainly take advantage of them.
You have an interesting background having studied social media and modeling video game psychology. Can you tell us about that research and how it led to your current position?
My research in academia and professional work seems unrelated, but they are essentially about the same thing – data. Specifically, my research is to extract useful information from unstructured textual data from social media. The objective is to understand user behavioural and attitudinal patterns of consuming hedonic systems such as computer games. Now in Hollywood, I am very fortunate to work with color scientists to analyze and process imaging data. The goal is to standardize the production pipeline and ultimately give audiences the best cinematic experience.
Another interesting question is: why Psychology? It all comes down to two things: methodology and theory. Technology, from a certain perspective, is similar to a treatment in an “experiment”. A way to apply science to it is to see if it impacts our lives through some variables (e.g., personality, culture). If interested in this direction, you have to rely on the right methodology to produce a good theory. Especially for the social aspect of computing, you cannot really design or control the environment in which people interact with technologies, so you must be very careful in applying methodologies.
I still remember the first time when I went to a Psychology class. People there were confused about why a computer science student was in their class. I explained but most of them still did not quite understand it. I think now they would get it if they read my dissertation. 🙂
My dissertation on computer game playability is inspired by the lexical approach adopted by psychologists. The idea of using a lexical approach in order to obtain human personality traits (if you remember the “Big-Five”) stems from the lexical hypothesis in personality research. The lexical hypothesis states that people will want to talk about personality traits that they observe as having important consequences in their lives. As a result, people will inevitably invent words or phrases to describe those who exhibit high or low levels of these essential traits. Over a long period of time, these terms that describe important traits should become established in every language.
Likewise, if many game players use a relatively fixed group of terms to express a difference among games, and if this difference entails to the information on game design and associated play experience, these words are by nature the descriptors of games. Therefore, the traits of computer games can be treated as the differences among the experience of playing different games as different players perceive them at different times. Similar to the personality traits, they are distinctive and can be observed over time. As any computer games or other types of software system can thus be described by a finite set of traits, the lexical approach is a logical choice for studying associated user experience. Based on this concept and over millions of online game reviews, I established a glossary for game design and extracted 6 essential traits (i.e., playability, usability, creativity, sensation, competition, strategy) of computer games. Furthermore, a framework was proposed and a list of game design heuristics were developed by interpreting the terms in each trait.
My current work is pertaining to color imaging with a focus on applications for cinema. I developed a strong interest in colors when I was interning in a Visual Effects Studio a few years ago. From the early effort to develop CIE Color Matching functions to the recent trend of High Dynamic Range displays, I feel that the principles of color science can be explained through many disciplines, for example, Mathematics, Physics, Psychology, Biology, Chemistry, etc. Now, in the digital era, you need a Computer’s help to paint each pixel of the image. Fortunately, my interdisciplinary background helped me obtain an opportunity where I could continue interdisciplinary research in the heart of Hollywood.
What languages do you most often use and what do you use them for?
I guess they are C++, Perl and Python. In the film and/or game industry, C++ is a common choice due to high performance and precision. Also, it is likely you will work with various Unix and/or Unix-like systems, so you probably need to get used to coding in a plain text editor and preparing GNU Makefile or CMakeLists files.
I use Perl and Python mostly for data analysis. It is convenient and much faster to get the results. You know they are reliable and there are plenty of open source libraries online.
Can you tell us about some of your favorite packages (in any language), why you like those packages, and what you use them for?
There are many of them. For example: Imagemagick and Scikit-learn. With the former package, you can achieve what Photoshop does (some features) by a few commands. Of course, you gotta be sure about what you want the image to look like in the first place. When it comes to Scikit-learn, I think most data folks understand why I like it, so I am just gonna skip it for now.
What are you most excited about in the future? What do you think your field will look like ten years from now?
Understanding how our brain works and making computers function more like our brain. I also hope that significant progress can be made in the field of quantum computing, as it is really an enabler for many things that we cannot accomplish today. It sounds like a big topic, but it is going to happen. The research in Psychology is an important contributing component to this development as well.
Why are human beings more intelligent than computers (at least now)? Let us focus on just one thing – emotion. Can your computer show a smiley face immediately when reading a message from your Mom? Probably not. If someday computers are smart enough to engender emotions like us, I can imagine that they would quit repetitive tasks we assign to them, although they may “feel” proud because they “know” they can do it in a much faster rate.
If computers can run on the mechanism that the human brain operates on, they may help us make movies too. For instance, perhaps they can read and choose the best script by analyzing public tastes of a specific type of entertainment content; they may also learn from each actor’s profile and brainstorm a character based on how they see the story.
We end off each interview seeing how the insights and work from our interviewees can be applied to people’s lives and work. This interview seems very relevant to engineers working to design code on new topics. What are three key pieces of advice your have for new engineers in your field to keep in mind to improve their work?
- Be more creative. You can do more than writing code. You may be very good at UI design too, you won’t know until you give it a try.
- We all like “Stack Overflow”, but please don’t just copy the solution and move on. Take the time to learn from other people’s solutions!
- Take “baby” steps even if you are very sure about your code, especially for large-scale software.