Machine Learning and Personality Type
Here are some thoughts on statistical approaches for pinpointing personality types. Text analysis and crowdsourcing FTW!
I recently discovered Typealyzer, a service that analyzes a web page and tries to determine the author’s personality type, in terms of Myers-Briggs Type Indicators. I’m not sure what kind of classifier it uses, but it’s apparently built on uClassify‘s API and trained using psychocographic text data gathered by Mattias Östmar. It determines each of the four dimensions independently, presumably using a “bag of words” document model.
In both formal and informal tests, I have always scored INTP (introverted, intuitive, thinking, perceiver) since high school. So I was curious what Typealizer would make of my writing. I have web presence in multiple public places, so I decided to try a few of them. Here are the results:
- INTJ (2): this blog, as well as my academic page
- INTP (1): my (sparse) personal website
- ESTP (1): my Twitter feed
- ESFP (1): my “year-of-games” microblog
So one might conclude that I’m either an INTJ (“Mastermind”) with 2/5 = 40% probability, or marginalize over the four dimensions independently and say that I am in fact an INTP (“Architect”) with 17.3% probability (INTJ comes in second at 11.5%). A Bayesian might put stronger priors on my personal and academic pages, or priors based on population distribution, or use model confidences (which Typealizer didn’t provide). At any rate, I’m either an INTJ or INTP, and probably the latter.
(Update: I checked Typealizer immediately after posting this, and it revised its prediction for this blog to INTP.)
All that reminded me of a little “breakfast experiment” I did a while ago to help me determine my Enneagram type. The Enneagram is not nearly as popular as Myers-Briggs, but I find it more useful for being self-aware about bad habits or unhealthy tendencies. Without going into too much detail, there are nine basic types:
Each type also has two adjacent wings, and people have one of three instinctual variants, which allows for a total of 9×2×3 = 54 personality types! But I’m only concerned about two of the nine basic types shown above: Five (“Investigator”) and Nine (“Peacemaker”).
I’ve always tested as a Five, but with Nine in second place, which is kind of weird since they are share very little in common according to the theory. I always assumed I really was a Five since I feel more like an investigator than a peacemaker, plus type Five is correlated with both INTP and INTJ in Myers-Briggs-land (c.f., this study). But a little over a year ago I was going through a period of major personal stress, and my friend Charles (who introduced me to the Enneagram) suggested that I might be a Nine instead of a Five based on how I was responding to the situation(s). He said that he had recently revised his own type, and pointed me to an article by the Enneagram Institute arguing that educated male Nines tend to think they are Fives:
Despite their similarities, the main point of confusion for Nines arises around the notion of “thinking.” Nines think they are Fives because they think they have profound ideas: therefore, they must be Fives.
Part of the problem stems from the fact that individuals of both types can be highly intelligent…. Although intelligence can be manifested in different ways, being intelligent does not make Nines intellectuals, just as thinking does not make them thinkers.
They also claim that the Nine-to-Five (teehee!) misclassification is the most common… although it rarely happens the other way around. So I read up on both types, but they both felt like they described me in different ways. I re-took some tests, and Five still came out on top with Nine close behind.
A Crowdsourcing Experiment
So (of course) I decided to build a classifier. First, I collected 40 first-person statements that supposedly characterize either Fives or Nines, lightly edited them for stylistic consistency, shuffled the order (to reduce presentation bias), and emailed the list to 28 close friends and family. I asked them to reply with all the statements they thought describe me, and delete the ones that do not. In a sense, “crowdsourcing” my personality description.
Then I built a multinomial naïve Bayes classifier that computes the probability of an Enneagram type given a set of these statements :
Here, is the number of people who responded saying that statement describes me. Estimating the probabilities for this model was tricky with no actual data, but it is called naïve Bayes, so I took it to the extreme and only used priors. For type priors , I used probabilities of 44.1% for Five and 55.9% for Nine (which came from this study of the general population). For statement probabilities, I adapted an approach I have used before — for classifying text using labeled words in addition to or instead of labeled documents — and used a simple informative Dirichlet prior of 2 “pseudocounts” if statement describes type (e.g., “I stand back and try to view life objectively” describes type Five), and 1 otherwise. These get normalized to form the conditional multinomials .
Over about two weeks, 12 people replied (42.9% response rate), which was a pretty good cross-section of family and friends from high school, college, grad school, and my more recent Pittsburgh days. I generally agreed with the responses, although I was surprised how many people thought I would say “Tell me when you like how I look” or “Hug me and show physical affection.” I don’t think I give off those vibes. Do I? Anyway, here are the four statements all 12 respondents unanimously agreed on:
- “I need time alone to process my feelings and thoughts.”
- “I like to have a thorough understanding; perceiving causes and effects.”
- “My sense of integrity: doing what I think is right and not being influenced by social pressure.”
- “I know that most people enjoy my company, I’m easy to be around!”
The first three describe a Five, and the last one describes a Nine (although, let’s face it… that’s just flattery). The model predicts with 95.9% confidence (about 23-to-1 odds) that I am indeed a Five, a prediction that isn’t very sensitive to fiddling with the Dirichlet priors at all (although it is naïve Bayes, and the statements are probably not conditionally independent). Furthermore, I suppose that the very act of conducting an experiment like this, however silly, is a very Five kind of thing to do. So… uhmm… case closed?
After living with the idea for a year or so now, I think I actually disagree with that analysis. Insofar as we have discrete personality types (which is a little dubious to begin with), I think I am in fact a Nine… just a very curious and analytical Nine. Here is why, according to the theory (which relates to the arrows in the diagram above):
- The Five’s investigative nature supposedly stems from a fear of not being able to understand “Truths” about the world. Stressed-out Fives can be hyperactive and paranoid, spread across a lot of projects (like some Sevens). Healthy Fives, however, become confident leaders and decisive “benevolent dictators” (like some Eights).
- In contrast, Nines want peace of mind. In the face of stress, they can become anxious worrywarts (like some Sixes), but healthy Nines pick up energy and become focused on self-improvement (like some Threes).
The latter feels more like me. I am an investigator not because of some deep need to get to the bottom of things (Five), but because it’s a hell of a lot of fun, and it forces me to learn things and develop new skills in the process (healthy-Nine/Three). And while it’s true that I try to “do what I think is right and not be influenced by social pressure” (Five), I still worry a awful lot about what other people think of my decisions (unhealthy-Nine/Six). I suspect that academia is overrun with Fives, and thus I have either taken on some Five-like traits or they are projected onto me by the friends & family who replied to my survey. Nuances this fine might be too subtle to pull out of a questionnaire-based personality test.
Anyway, fun stuff… although the Nine-to-Five misclassification got me thinking about an “active” personality test that, instead of asking a rote set of questions, could adapt and try to tease these subtleties out (like a good game of 20 Questions). Personal writing samples — which the Typealizer folks are starting to get at — could be a good source of data for such a test. It would be cool to gather Enneagram types for a bunch of bloggers, and use NLP techniques to try to understand how language is used by the different types. A test could tailor follow-up questions based on preliminary guesses from the text. As always, though, training data is a big bottleneck…