Papers
Topics
Authors
Recent
Search
2000 character limit reached

PtoP: Personality Inference from Social Media

Updated 9 July 2026
  • PostToPersonality (PtoP) is a framework that infers personality representations from users' social media posts using psycholinguistic scoring and large language models.
  • It employs diverse computational methods such as LIWC-based regression, dynamic graph convolution, and retrieval-augmented LLMs to predict traits like MBTI and Big Five percentiles.
  • PtoP has practical applications in impression management, personalized simulation, and interpretability through user-friendly visualizations and detailed trait analysis.

PostToPersonality (PtoP) denotes the transformation of a user’s social-media posts into inferred personality representations. In the literature, the term covers both a general post-to-personality mapping and a specific LLM-based framework for MBTI prediction from social media posts. The resulting representations range from Big Five percentiles and four MBTI binary labels to semi-structured personas that combine structured attributes with narrative summaries. Across these formulations, PtoP has been implemented through LIWC-based regression, dynamically learned post graphs, psycholinguistic tripartite graph networks, retrieval-augmented LLM inference, and prompt-based persona induction for downstream simulation (Xu et al., 2017, Yang et al., 2022, Yang et al., 2021, Ma et al., 28 Aug 2025, Li et al., 28 Mar 2026).

1. Conceptual scope and historical development

An early formulation of the problem appears in Xu et al.’s "Raising Awareness of Conveyed Personality in Social Media Traces" (Xu et al., 2017). There, users’ persistent social media contents like posts on Facebook Timeline are presented as an "exhibition" about the person to others, and the central task is not only prediction but impression management. The prototype PersonalityInsight employed computational psycho-linguistic analysis to help users visualize the way their past text posts might convey impressions of their personality and allowed users to modify their posts based on these visualizations.

Subsequent work reframed the same underlying transformation as a predictive modeling problem over a user’s set of posts. In "Psycholinguistic Tripartite Graph Network for Personality Detection," the objective is to learn a function fθ:{p1,…,pr}→Y^∈[0,1]Tf_\theta : \{p_1,\dots,p_r\} \to \hat Y \in [0,1]^T for T=4T=4 binary MBTI labels (Yang et al., 2021). In "Orders Are Unwanted: Dynamic Deep Graph Convolutional Network for Personality Detection," the key challenge is aggregating information from multiple posts without introducing unwarranted orders (Yang et al., 2022). In "From Post To Personality: Harnessing LLMs for MBTI Prediction in Social Media," PtoP is explicitly named as a novel LLM based framework for MBTI prediction from social media posts of individuals (Ma et al., 28 Aug 2025).

A related but broader extension appears in Li and Conrad’s SPIRIT framework, which is designed explicitly for simulation rather than prediction (Li et al., 28 Mar 2026). Instead of stopping at a personality label, SPIRIT infers psychologically grounded, semi-structured personas from public social media posts and uses those personas to prompt LLM-based agents to act as specific individuals when answering survey questions or responding to events. A plausible implication is that PtoP has evolved from a narrowly predictive task into a family of post-conditioned human modeling pipelines.

2. Psycholinguistic scoring and trait inference

The most explicit psycholinguistic PtoP pipeline in the cited material is LIWC-based. PersonalityInsight uses the LIWC dictionary, which groups words into ∼70\sim 70 psycholinguistic categories such as "Inclusive," "Cognitive Processes," and "Negative Emotion" (Xu et al., 2017). Xu et al. did not employ n-grams, POS tags, syntactic markers or embedding models; they relied on LIWC alone. Every word in a post that appears in LIWC is retained so the system can highlight individual tokens and show which categories those words triggered.

For a user with posts P1…PKP_1 \dots P_K, the system preprocesses each post into a bag-of-words and computes, for each LIWC category ii,

freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.

For each Big Five trait j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}, it then computes

TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,

where M≈70M \approx 70 and wijw_{ij} is the weight of LIWC category T=4T=40 for trait T=4T=41. The weights were derived from a large training corpus of social-media texts with T=4T=42 million users’ posts, using multiple linear regression or stepwise regression for each trait. To display results, each raw trait score is compared to the cumulative distribution over the T=4T=43 M-user pool to obtain a percentile.

This LIWC-regression pipeline is unusually transparent because it preserves a direct path from word counts to category frequencies to trait percentiles. The same general psycholinguistic emphasis reappears in later neural work, but there it is embedded inside graph architectures rather than expressed as explicit linear coefficients. This suggests a persistent research preference for retaining domain knowledge about language use and psychological traits even when architectures become substantially more complex.

3. Graph-based aggregation of unordered post collections

A major research problem in PtoP is how to aggregate multiple short posts into a user-level representation. D-DGCN argues that many previous solutions concatenate the posts into a long document and then encode the document by sequential or hierarchical models, thereby introducing unwarranted orders for the posts (Yang et al., 2022). Its architecture contains three jointly trained components: a Post Encoder, a Learn-to-Connect module, and a Dynamic Deep GCN. Each post is encoded independently by BERT after masked-language-model post-training on the Kaggle and Pandora corpora. A special user node is then initialized by simple averaging,

T=4T=44

The Learn-to-Connect module dynamically constructs a sparse, directed adjacency matrix T=4T=45 at each layer using query and key projections and a threshold T=4T=46. An T=4T=47-style sparsity regularizer encourages the model not to create spurious edges. The Dynamic Deep GCN then propagates information with

T=4T=48

decoupling transformation and propagation to avoid over-smoothing and to permit deep architectures. After collecting all intermediate node embeddings across layers, the model fuses depth-specific information and feeds the special user node’s final embedding into one binary classifier per personality dimension.

TrigNet addresses the same aggregation problem through a different graph prior (Yang et al., 2021). For each user, it constructs a heterogeneous tripartite graph T=4T=49 with three node types: post nodes ∼70\sim 700, psycholinguistic word nodes ∼70\sim 701, and selected LIWC category nodes ∼70\sim 702 consisting of 9 main and 6 personal-concern subcategories. Two binary adjacency matrices are used: ∼70\sim 703 for post-word incidence and ∼70\sim 704 for word-category incidence. There are no direct edges among posts themselves, nor among words themselves, nor among categories; they only connect as P–W and W–C.

TrigNet initializes posts with a layer-attention combination of the last three Transformer layers of BERT-BASE-UNCASED, initializes LIWC words from BERT’s input-embedding layer or averaged WordPieces, and initializes categories by overriding unused BERT tokens with category names. Its Flow-GAT defines two flows for updating post nodes: a direct ∼70\sim 705 flow, in which posts exchange information via shared words, and an indirect ∼70\sim 706 flow, in which posts exchange information via words in common categories. After one Flow-GAT layer, updated post embeddings are mean-pooled into a user vector, and each MBTI trait is predicted by a linear-softmax layer.

The two models therefore represent distinct graph-based answers to the same PtoP question. D-DGCN learns post connectivity dynamically from evolving node representations, while TrigNet hard-wires a psycholinguistically structured P–W–C graph and learns how information should flow within that structure. Both reject the assumption that post order should govern aggregation.

4. Retrieval-augmented LLM architecture for MBTI prediction

The 2025 PostToPersonality framework operationalizes PtoP as a three-stage LLM pipeline for MBTI prediction (Ma et al., 28 Aug 2025). The first stage is feature extraction by a fine-tuned local LLM. A user’s concatenated social-media posts ∼70\sim 707 are given to a local open-source LLM, such as DeepSeek-R1-8B, fine-tuned on the MBTI prediction task. The model produces a short, human-interpretable psychological assessment ∼70\sim 708.

The second stage is retrieval of demonstrations through Retrieval-Augmented Generation. An offline "post-personality" vector database ∼70\sim 709 is built by embedding original posts P1…PKP_1 \dots P_K0 via Sentence-BERT and local-LLM features P1…PKP_1 \dots P_K1 via the fine-tuned LLM, then average-pooling and concatenating them into a single vector P1…PKP_1 \dots P_K2. At test time, the query vector P1…PKP_1 \dots P_K3 is constructed analogously, and the system retrieves top-P1…PKP_1 \dots P_K4 nearest neighbors,

P1…PKP_1 \dots P_K5

where P1…PKP_1 \dots P_K6 is L2 distance or cosine distance. The retrieval engine is FAISS exact P1…PKP_1 \dots P_K7-NN with default P1…PKP_1 \dots P_K8 and L2 distance.

The third stage is in-context prediction by an online LLM. The prompt contains the test user’s posts P1…PKP_1 \dots P_K9, the local-LLM features ii0, and the ii1 retrieved post-label pairs as demonstrations. The online LLM then outputs the four MBTI letters. The framework’s stated motivation is twofold: Retrieval-Augmented Generation with in context learning is used to mitigate hallucination in LLMs, and synthetic minority oversampling is used to balance the naturally imbalanced distribution of MBTI types in the population.

Its oversampling procedure is SMOTE-style. For each training embedding ii2 of a minority class ii3, a random neighbor ii4 among the ii5 nearest training embeddings with the same ii6 is selected, and a synthetic embedding is generated as

ii7

The local LLM is fine-tuned with QA-LoRA, AdamW, learning rate ii8, batch size ii9, freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.0 epochs with early stopping, and dropout freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.1. The dataset is the PersonalityCafe forum MBTI dataset from Kaggle, with freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.2 users and up to freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.3 recent posts each, concatenated after lowercasing, word lemmatization, and removal of stopwords, URLs, special characters, and extra whitespace. The split is freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.4 train, freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.5 validation, and freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.6 test.

5. Visualization, interpretability, and impression management

PersonalityInsight demonstrates a distinct, human-facing interpretation of PtoP (Xu et al., 2017). Its interface has three levels. At the overall level, it shows a 5-axis radar chart for Big Five percentiles, with check-boxes for comparing "public," "friends," and "only me" subsets. At the post level, each post is accompanied by a horizontal bar chart of five bars, where green indicates a positive contribution and red indicates a negative contribution to a trait. At the word level, clicking a bar or "word insights" reveals a table of all LIWC-mapped words in that post, color-highlighted with the precise weight contribution and explanatory hover tool-tips listing which LIWC category each word triggered.

The system also includes sorting by "Top positive for trait freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.7" or "Top negative for trait freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.8," inline "Edit," "Hide," and "Delete" controls identical to Facebook Timeline, real-time feedback for post editing, and an audience selector per post to simulate how different privacy settings shift the overall profile. The study reports that consistent green/red color coding, drill-down from global to post to word, and sorting filters improved understanding by making the data-to-explanation link explicit and by reducing cognitive load when dealing with hundreds of posts.

The user study used freqi=# of words from category i in all Pjtotal word count in all Pj.\mathrm{freq}_i = \frac{\#\text{ of words from category }i\text{ in all }P_j}{\text{total word count in all }P_j}.9 active Facebook users with at least j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}0 words in Timeline, recruited from a large tech company, in a within-subjects, counterbalanced design comparing PersonalityInsights to a control interface. Awareness of conveyed personality, measured on a 1–5 scale, increased from pre-study mean j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}1 to post-"PersonalityInsights" j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}2, with repeated-measures ANOVA j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}3, j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}4. Concern about projected personality increased from pre j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}5 to post-"Insight" j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}6, with j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}7, j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}8. The content-management log showed that users edited on average j∈{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}j \in \{\text{Openness, Conscientiousness, Extraversion, Agreeableness, Neuroticism}\}9 posts, with TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,0, along with some hides and deletions but no large-scale pruning.

The qualitative findings complicate any simple equation of transparency with actionability. Participants valued the overall radar and post-level charts for "at a glance" understanding, but word-level explanations were initially confusing, especially when common tokens appeared to matter. Users asked for actionable editing suggestions, such as example rewrites, rather than raw LIWC cues. They also reported a preservation vs. pruning tension because many see Timeline as personal archive and do not want to erase old posts outright, and they expressed neutral ratings on accuracy that led some to dismiss or over-trust the system. Recommended improvements included in-context "suggest a rewrite" or "flagging problematic words," a "what-if" slider for real-time deletion or rewriting effects, and a longitudinal view of personality percentiles over weeks or years.

6. Evaluation regimes, adjacent persona simulation, and limitations

Evaluation in PtoP research depends strongly on the target representation. Some systems are assessed through user awareness and interface use, some through Macro-F1 on MBTI prediction, and some through the fidelity of persona-conditioned simulation (Xu et al., 2017, Yang et al., 2021, Yang et al., 2022, Ma et al., 28 Aug 2025, Li et al., 28 Mar 2026).

System Output/task Reported result
PersonalityInsight Big Five impression-management awareness awareness TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,1; edits avg TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,2 posts
TrigNet MBTI Macro-F1 and efficiency avg Macro-F1 TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,3 on Kaggle; TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,4 over SN+Attn
D-DGCN MBTI Macro-F1 TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,5 mean, TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,6 best on Kaggle with TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,7 regularization
PtoP MBTI F1 by dimension TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,8, TraitScorej=∑i=1Mwij×freqi,\mathrm{TraitScore}_j = \sum_{i=1}^{M} w_{ij} \times \mathrm{freq}_i,9, M≈70M \approx 700, M≈70M \approx 701
SPIRIT Persona-conditioned survey simulation exact match from M≈70M \approx 702 to M≈70M \approx 703; off-by-one M≈70M \approx 704–M≈70M \approx 705

Beyond the table, TrigNet reports that its Flow-GAT reduces the FLOPS and Memory measures by M≈70M \approx 706 and M≈70M \approx 707, respectively, compared with the original GAT in its setting, and that removing the category-mediated flow M≈70M \approx 708 costs M≈70M \approx 709 F1. D-DGCN reports that randomizing post order improves order-sensitive baselines, supporting the claim that the original order is spurious. The LLM-based PtoP framework reports, on average, wijw_{ij}0 absolute accuracy gain, wijw_{ij}1 absolute F1 gain, and wijw_{ij}2 absolute AUC gain over the best of wijw_{ij}3 ML and DL baselines, while ablations show that removing RAG, removing SMOTE, or skipping PEFT degrades performance.

SPIRIT extends the PtoP idea from classification to persona induction and simulation (Li et al., 28 Mar 2026). It starts from all publicly accessible posts for a valid Reddit or Twitter/X handle, concatenates them in timestamp order into a single long text sequence, and applies no additional automatic cleaning. A prompt-based LLM procedure called Painter then produces a JSON-structured persona with Big-Five personality traits, primal world beliefs, salient values and identities, high-level life experiences and turning points, domain attitudes, interaction style, and a meta field for overall uncertainty and notable absences. Each persona field contains a value, a confidence level, and a one-sentence rationale grounded in the user’s posts. Formally, the persona is represented as

wijw_{ij}4

where wijw_{ij}5 is structured JSON with wijw_{ij}6 fields and confidence scores and wijw_{ij}7 is a free-text narrative summary.

SPIRIT does not train a separate classifier or probabilistic graphical model, does not disclose regression weights or likelihood functions, and does not compute a single dense persona vector. The Reasoner prompt instead serializes the persona JSON literally and combines it with a narrative summary, optional demographic attributes, and the downstream question text and response options. On held-out survey items, SPIRIT personas outperform demographic personas by wijw_{ij}8–wijw_{ij}9 percentage points in exact match, the position-weighted composite T=4T=400 closely matches the empirical human distribution, and a weighted Twitter-based SPIRIT bank tracks contemporaneous polls within a few percentage points, including T=4T=401 pp deviations across abortion and immigration items. At the same time, event-sensitive simulations deviate on certain factual or multi-step-reasoning questions, an observed "deliberation bias."

The principal limitations reported across the literature are heterogeneous but convergent. For the LLM-based PtoP framework, generalization to new platforms or languages may require re-fine-tuning the local LLM or re-constructing the vector database; residual bias remains even with SMOTE; and fine-tuning, FAISS indexing, and multiple LLM calls incur nontrivial GPU or API expenses and latency (Ma et al., 28 Aug 2025). PersonalityInsight emphasizes that impression management is one of many values people have about their digital past rather than the sole organizing principle (Xu et al., 2017). A plausible implication is that PtoP should be treated less as a single benchmark task than as a design space in which target representation, aggregation strategy, interpretability requirements, and human use case jointly determine what counts as success.

Topic to Video (Beta)

No one has generated a video about this topic yet.

Whiteboard

No one has generated a whiteboard explanation for this topic yet.

Follow Topic

Get notified by email when new papers are published related to PostToPersonality (PtoP).