Psychometric Evaluation of Large Language Model Embeddings for Personality Trait Prediction

Evaluación y validez psicométrica2025JMIRRevisión editorial aprobada

Autores: Julina Maharjan, Ruoming Jin, Jianfeng Zhu, Deric Kenne

Palabras clave: Large Language Models, Embeddings, Personality prediction, Psychometric validation, Big Five, LIWC, Emotional markers

Fuente:Abrir fuente primaria (abre en una pestaña nueva)

4
Autores
14
Hallazgos
27
Limitaciones
14
Evidencias

Resumen editorial

Español

El artículo estudia si representaciones fijas de textos de Reddit obtenidas con BERT, RoBERTa y OpenAI text-embedding-3-small permiten predecir etiquetas Big Five humanas y si esas representaciones pueden considerarse psicométricamente fiables y válidas. Parte de PANDORA, conserva 1.568 usuarios y declara 935.102 publicaciones después de filtrar idioma, longitud y duplicados. Compara regresión frente a un trabajo anterior y GPT-4o zero-shot, y clasificación binaria con cinco algoritmos, variables lingüísticas y combinaciones de variables. Como contribución computacional, la comparación es amplia y el artículo publica tablas por rasgo, un anexo de configuraciones y un repositorio de código que permite auditar parte del flujo.

Los resultados predictivos descriptivos favorecen a las representaciones de OpenAI: MSE medio 526,90 frente a 531,11 del BERT previo, 618,44 de RoBERTa y 765,647 de GPT-4o zero-shot; en clasificación, el BiLSTM con embeddings de OpenAI alcanza AUROC 0,82–0,83, RoBERTa 0,80–0,82 y BERT 0,73–0,75. Las variables lingüísticas solas quedan en 0,63–0,66 y añadirlas a embeddings no mejora de forma estable. Sin embargo, la afirmación de «45% menos error» invierte el denominador: 526,90 supone aproximadamente un 31,2% menos MSE que 765,647; 45,3% es cuánto mayor resulta el zero-shot respecto al modelo con embeddings. La ventaja de OpenAI frente al BERT previo es de solo 4,21 puntos de MSE y no se acompaña de intervalos, repetición o contraste estadístico. Además, el prompt zero-shot produce puntuaciones 1–5 mientras las etiquetas se describen en escala 0–100, sin una transformación reproducible que haga comparable esa tabla.

La principal conclusión psicométrica no está respaldada por el artefacto público. La Tabla 4 atribuye a «LLM embeddings» alfas de Cronbach entre 0,574 y 0,664, pero el cuaderno publicado reproduce exactamente esos cinco valores ejecutando cronbach_alpha sobre 134 variables lingüísticas estandarizadas LIWC/NRC/VADER; la línea que calcularía alfa sobre embeddings está comentada. Otro cuaderno exploratorio obtiene alfa −0,1725 sobre dimensiones seleccionadas del embedding y tampoco aparece en el artículo. Incluso si se hubiera calculado sobre coordenadas del vector, tratar dimensiones arbitrarias o componentes PCA como ítems intercambiables de una escala no demostraría consistencia interna del Big Five. Las correlaciones entre variables LIWC seleccionadas y componentes PCA muestran que el embedding contiene información léxica, no validez convergente con una medida independiente del rasgo; y comparar la matriz de correlaciones entre etiquetas y predicciones no constituye por sí solo validez convergente o discriminante.

El problema predictivo también sufre fuga por identidad y pseudorreplicación. Las etiquetas son de usuario, pero cada publicación se trata como muestra independiente; el código elimina el identificador de autor y realiza particiones aleatorias por fila, por lo que textos del mismo usuario pueden estar simultáneamente en entrenamiento, validación y prueba. El rendimiento puede reflejar estilo o identidad conocida y no generalización a personas nuevas. Aunque el artículo afirma validación de cinco pliegues, la ruta principal del código pasa kFold=False y el checkpoint incluido no documenta esa validación. El repositorio no incluye los datos, embeddings, entorno, licencia ni resultados suficientes para reconstruir las tablas; contiene además rutas absolutas y configuraciones inconsistentes con el manuscrito. En consecuencia, el trabajo aporta evidencia descriptiva de que embeddings de texto codifican señales útiles para predecir etiquetas PANDORA bajo este protocolo, pero no establece validez psicométrica, generalización a nuevos usuarios, utilidad clínica ni una medición fiable de personalidad.

English

The article examines whether fixed representations of Reddit text produced by BERT, RoBERTa, and OpenAI text-embedding-3-small can predict human Big Five labels and whether those representations can be considered psychometrically reliable and valid. It starts from PANDORA, retains 1,568 users, and reports 935,102 posts after language, length, and duplicate filtering. It compares regression with prior work and GPT-4o zero-shot, and binary classification with five algorithms, linguistic variables, and feature combinations. As a computational contribution, the comparison is broad, and the paper supplies trait-level tables, a settings appendix, and a code repository that permits a partial audit of the workflow.

Descriptive predictive results favor OpenAI representations: mean MSE is 526.90 versus 531.11 for the prior BERT result, 618.44 for RoBERTa, and 765.647 for GPT-4o zero-shot; in classification, the BiLSTM using OpenAI embeddings reaches AUROC 0.82–0.83, RoBERTa 0.80–0.82, and BERT 0.73–0.75. Linguistic variables alone reach 0.63–0.66, and adding them to embeddings does not improve results consistently. However, the claim of “45% lower error” reverses the denominator: 526.90 is approximately 31.2% lower than 765.647; 45.3% is how much larger the zero-shot value is relative to the embedding model. OpenAI improves on the prior BERT result by only 4.21 MSE points, with no interval, repetition, or statistical test. The zero-shot prompt also outputs scores on a 1–5 scale while labels are described on a 0–100 scale, without a reproducible transformation making the published comparison commensurate.

The central psychometric conclusion is not supported by the public artifact. Table 4 attributes Cronbach alpha values of 0.574–0.664 to “LLM embeddings,” but the released notebook reproduces those exact five values by running cronbach_alpha on 134 standardized LIWC/NRC/VADER linguistic variables; the line that would calculate alpha on embeddings is commented out. A different exploratory notebook reports alpha −0.1725 on selected embedding dimensions and is not discussed in the paper. Even if alpha had been calculated on vector coordinates, treating arbitrary embedding dimensions or PCA components as interchangeable scale items would not establish Big Five internal consistency. Correlations between selected LIWC variables and PCA components show that embeddings contain lexical information, not convergence with an independent validated trait measure; comparing the intertrait correlation matrices of labels and predictions is likewise insufficient evidence of convergent or discriminant validity.

The predictive design also has identity leakage and pseudoreplication. Labels belong to users, but every post is treated as an independent sample; the code drops the author identifier and randomly splits rows, allowing posts from the same person to occur in training, validation, and test sets. Performance can therefore reflect a known writer’s style or identity rather than generalization to unseen people. Although the paper says that five-fold validation was used, the main code path explicitly passes kFold=False, and the included checkpoint does not document such validation. The repository lacks the data, embeddings, environment, license, and sufficient saved results to reconstruct the paper’s tables and includes absolute paths and settings inconsistent with the manuscript. The defensible result is therefore that text embeddings carry signals useful for predicting PANDORA labels under this protocol; the study does not establish psychometric validity, unseen-user generalization, clinical utility, or reliable personality measurement.

Pregunta de investigación

¿Hasta qué punto embeddings contextuales de BERT, RoBERTa y OpenAI permiten predecir etiquetas Big Five en publicaciones de Reddit, superan variables psicolingüísticas o GPT-4o zero-shot y conservan propiedades que los autores interpretan como fiabilidad, validez convergente y validez divergente?

Método

Estudio retrospectivo de predicción sobre PANDORA. Filtra el corpus a usuarios con Big Five, publicaciones inglesas de al menos 30 palabras y textos no duplicados. Genera embeddings de 768 dimensiones con bert-base-uncased y roberta-base y de 1536 dimensiones reales con text-embedding-3-small, aunque dos tablas del manuscrito dicen 1568. Para regresión entrena un perceptrón multicapa y compara MSE con un BERT publicado y un prompt GPT-4o zero-shot. Para clasificación normaliza y dicotomiza cada rasgo por la mediana y compara regresión logística, XGBoost, random forest, MLP y BiLSTM con atención usando variables LIWC/NRC/VADER, embeddings o combinaciones. La revisión editorial leyó las 21 páginas, renderizó y comprobó las cinco páginas del anexo, recalculó comparaciones aritméticas y auditó el repositorio PersonaClassifier en el commit 3dcd3bebe0d61142b49b20c54d4dca5b6006a8f3, incluidos splits, modelos, notebooks psicométricos y artefactos guardados.

Muestra: La unidad psicológica original es el usuario, pero la unidad que se introduce en los modelos es cada publicación. El artículo conserva 1.568 usuarios y declara 935.102 posts finales, con una media de 90 palabras. Los tres recuentos por tipo de etiqueta suman 934.102, exactamente mil menos que el total declarado. Las etiquetas 0–100 se asignan al usuario y se repiten en sus posts. El código elimina #AUTHID antes de separar filas, de modo que no puede garantizar que un usuario aparezca en un único split. El anexo de selección de variables muestra además 908.432 filas sin reconciliar esa cifra con los 935.102 casos publicados. No hay muestra clínica, evaluación humana nueva, dataset externo ni prueba documentada sobre usuarios nunca vistos.

Hallazgos

  • OpenAI text-embedding-3-small obtiene MSE medio 526,90, frente a 531,11 del BERT previo, 618,44 de RoBERTa y 765,647 de GPT-4o zero-shot.
  • La reducción correcta de MSE frente a zero-shot es aproximadamente 31,2%; el 45,3% corresponde a cuánto mayor es 765,647 respecto a 526,90, no a cuánto menor es el segundo respecto al primero.
  • La mejora de OpenAI sobre el resultado BERT citado como estado del arte es de 4,21 puntos de MSE, menos de 0,8%, sin contraste estadístico o incertidumbre.
  • En el anexo, el BiLSTM con embeddings OpenAI alcanza AUROC 0,82 en apertura, consciencia y neuroticismo y 0,83 en extraversión y agradabilidad.
  • RoBERTa alcanza AUROC 0,80–0,82 y BERT 0,73–0,75; no se publican intervalos ni pruebas de diferencia entre modelos.
  • Las variables lingüísticas solas producen AUROC 0,63–0,66. Combinar todas con embeddings baja el BiLSTM a 0,62–0,66, mientras seleccionar variables recupera 0,81–0,82 sin superar de forma consistente los embeddings solos.
  • El artículo informa alfas entre 0,574 y 0,664 y los interpreta como fiabilidad moderada de embeddings.
  • El notebook público reproduce exactamente esos alfas sobre una matriz estandarizada de 134 variables LIWC/NRC/VADER, no sobre los embeddings; la llamada sobre embeddings está comentada.
  • Un notebook exploratorio de CFA calcula alfa −0,1725, IC [−0,318, −0,036], sobre dimensiones seleccionadas del embedding; ese resultado no se discute en el artículo.
  • Las correlaciones reportadas entre variables LIWC seleccionadas y componentes PCA llegan a 0,63 en algunas celdas, pero proceden de selección guiada por datos y múltiples comparaciones sin validación independiente.
  • La matriz de correlaciones entre predicciones conserva direcciones similares a la de etiquetas en varias parejas de rasgos, con una diferencia consciencia–neuroticismo de −0,02 frente a 0,003.
  • El manuscrito declara embeddings OpenAI de 1568 dimensiones en las páginas 4–5, pero la página 17 y el modelo real usan 1536.
  • El artículo declara entrenamiento 80:10:10 y validación de cinco pliegues; el código disponible usa splits aleatorios por fila y la ruta principal de run.py fuerza kFold=False.
  • La arquitectura denominada BiLSTM con atención recibe cada vector agrupado como una secuencia de longitud uno; la atención opera antes del LSTM sobre ese único paso, por lo que no selecciona entre varios tokens o segmentos.

Limitaciones

  • Las etiquetas son de usuario y las observaciones son posts, pero no existe partición por autor. Esto introduce dependencia, fuga de identidad y pseudorreplicación entre entrenamiento, validación y prueba.
  • Tratar 935.102 posts como muestras independientes exagera el tamaño efectivo: proceden de solo 1.568 usuarios y repiten sus mismas cinco etiquetas.
  • No hay evaluación user-held-out, dataset externo, validación temporal, réplica o comparación en otra plataforma.
  • Los recuentos por tipo de etiqueta suman 934.102 y no 935.102; el anexo usa 908.432 filas para selección de variables sin explicar la diferencia.
  • Scores, percentiles y descripciones se normalizan y dicotomizan por separado antes de concatenarse, pero no se valida que esos tipos de etiqueta sean equivalentes.
  • Dichotomizar por la mediana elimina información continua y crea clases relativas al corpus, no umbrales clínicos ni categorías psicológicas validadas.
  • La tabla de regresión compara un modelo entrenado con un prompt zero-shot en escalas aparentemente distintas; el repositorio contiene experimentos incompatibles de estandarización, 0–5, MSE y RMSE, sin reconstrucción inequívoca de la tabla publicada.
  • La afirmación de 45% menos error usa una comparación porcentual incorrecta y la ventaja frente al BERT citado es pequeña y no inferencial.
  • La fórmula publicada de TPR es TP/(TP+TN), cuando debe ser TP/(TP+FN). El código usa utilidades de sklearn para las curvas, por lo que parece un error del manuscrito, pero debilita la descripción reproducible de la métrica.
  • No se publican intervalos, semillas, variabilidad entre ejecuciones, pruebas estadísticas, análisis de sensibilidad o corrección por comparaciones múltiples para las métricas predictivas.
  • La afirmación de cinco pliegues contradice la ruta principal del código, que pasa kFold=False; las ramas opcionales o comentadas no prueban qué produjo las tablas.
  • La Tabla 4 no documenta alfa de embeddings: los valores publicados corresponden exactamente a variables lingüísticas en el notebook auditado.
  • Las dimensiones de un embedding no son ítems paralelos redactados para medir un constructo. Aplicar alfa a coordenadas o componentes no establece fiabilidad de una escala de personalidad.
  • El alfa cambia el número de filas por rasgo, 3.635, 1.961, 2.363, 2.024 y 555 en el notebook, sin que el artículo explique esa muestra reducida frente al corpus de cientos de miles de posts.
  • La supuesta validez convergente correlaciona variables lingüísticas seleccionadas con componentes PCA de los mismos textos, no predicciones con un instrumento independiente validado.
  • La selección por Lasso, PCA y búsqueda de celdas altas se realiza sobre los mismos datos, con muchas correlaciones y sin holdout, intervalos o corrección, de modo que los máximos son exploratorios.
  • Comparar matrices de correlación de etiquetas y predicciones no prueba validez discriminante, estructura factorial, invariancia ni equivalencia de medida.
  • La arquitectura BiLSTM trata un embedding agregado como un solo paso temporal; la atención previa al LSTM es trivial para secuencia de longitud uno y la justificación secuencial no coincide con el tensor real.
  • El texto principal dice 512 unidades ocultas, el anexo selecciona 128 o 256 por rasgo y run.py fija 512; no queda claro qué configuración generó cada resultado.
  • El anexo lista dropout [0.2, 0.3, 10.5] pero selecciona 0.5 para apertura, valor ausente del espacio literal; probablemente es una errata, aunque impide reproducir la búsqueda tal como se publica.
  • El manuscrito atribuye 355 millones de parámetros a text-embedding-3-small sin fuente verificable y llama LLM a BERT/RoBERTa y al modelo de embeddings, mezclando categorías de modelo.
  • El coste cero de BERT/RoBERTa omite GPU, electricidad y almacenamiento, mientras OpenAI incluye precio de API; la comparación económica no usa una contabilidad homogénea.
  • El repositorio no contiene datos, embeddings OpenAI, checkpoints completos, dependencias fijadas, entorno reproducible o licencia; el README es mínimo y numerosos notebooks tienen rutas absolutas del equipo autor.
  • Data Availability afirma que datos y código están públicamente disponibles, pero .gitignore excluye CSV, embeddings, resultados procesados, checkpoints y toda la carpeta de análisis; el acceso a PANDORA se agradece directamente a uno de sus autores.
  • El texto se describe como anonimizado, pero datos públicos pseudónimos pueden permitir reidentificación. No se audita privacidad, memorization, fairness, error demográfico o invariancia cultural.
  • La declaración de que no se intenta inferir información sensible entra en tensión con el objetivo explícito de inferir personalidad de autores a partir de sus textos.
  • No existe validación clínica, laboral, diagnóstica, humana, de calibración, outcomes o daños, pese a que el artículo discute aplicaciones de alto impacto.

Qué no demuestra

  • No demuestra que los embeddings midan constructos Big Five con fiabilidad o validez psicométrica.
  • No demuestra generalización a usuarios nuevos, porque el protocolo no mantiene autores separados entre splits.
  • No demuestra que 935.102 posts equivalgan a 935.102 observaciones psicológicas independientes.
  • No demuestra que OpenAI supere significativamente al BERT previo; la diferencia publicada es pequeña y carece de incertidumbre.
  • No demuestra una reducción de error del 45% frente a GPT-4o zero-shot; con el denominador convencional es aproximadamente 31,2%.
  • No demuestra que zero-shot y regresión se comparen en la misma escala de outcome.
  • No demuestra fiabilidad interna de los embeddings: los alfas publicados proceden de variables lingüísticas según el código disponible.
  • No demuestra validez convergente mediante correlaciones LIWC–PCA, porque no hay criterio psicométrico independiente ni análisis confirmatorio.
  • No demuestra validez discriminante mediante similitud entre matrices de correlación de etiquetas y predicciones.
  • No demuestra que un BiLSTM aporte modelado secuencial cuando la entrada es un único vector de embedding.
  • No demuestra utilidad para diagnóstico, tratamiento, selección laboral, educación u otras decisiones de alto impacto.
  • No permite generalizar a otras plataformas, idiomas, culturas, poblaciones, instrumentos de personalidad o versiones futuras de los modelos.
  • No proporciona una reproducción completa de las tablas a partir del repositorio público.
  • No estudia personalidad de los LLM como sujetos; estudia el uso de representaciones generadas por modelos para predecir etiquetas de personalidad humana.

Trazabilidad

Alcance: Texto completo

Versión: J Med Internet Res 2025;27:e75347, DOI 10.2196/75347; 21-page article, official 5-page Multimedia Appendix 1, and GitHub commit 3dcd3bebe0d61142b49b20c54d4dca5b6006a8f3 audited

Fuente consultada: https://www.jmir.org/2025/1/e75347/PDF

Revisión: Codex editorial review and methods/artifact audit, 2026-07-15

Aprobación: Codex fidelity pass, 2026-07-15

Modelos evaluados

  • OpenAI text-embedding-3-small
  • OpenAI GPT-4o zero-shot
  • Hugging Face bert-base-uncased
  • Hugging Face roberta-base
  • Bidirectional LSTM with dot-product attention
  • Multilayer perceptron
  • Logistic regression
  • XGBoost
  • Random forest

Instrumentos y métricas

  • PANDORA user-level Big Five labels
  • Mean squared error (MSE)
  • Area under the receiver operating characteristic curve (AUROC)
  • Median binary split after min-max normalization
  • Cronbach alpha
  • Principal component analysis
  • LIWC-22 linguistic features
  • NRC emotion lexicon
  • NRC valence, arousal and dominance features
  • VADER sentiment
  • Lasso and mutual-information feature selection

Datos utilizados

  • PANDORA: approximately 17 million Reddit posts from 10,000 users in the source corpus
  • Big Five subset: 1,568 users and approximately 3 million posts before language and length filtering
  • English subset: 2,830,311 posts
  • Posts with at least 30 words: 1,008,627
  • Declared final set after deduplication: 935,102 posts
  • Declared label-method counts: 520,065 scores, 268,189 percentiles and 145,848 descriptions, totaling 934,102 rather than 935,102
  • Multimedia Appendix 1: hyperparameter search and six classification settings
  • PersonaClassifier public GitHub repository at commit 3dcd3bebe0d61142b49b20c54d4dca5b6006a8f3

Evidencia y localización

  • Corpus PANDORA, 1.568 usuarios, filtrado y posts tratados como muestras independientes: JMIR e75347, Methods, Data Collection and Preprocessing, p. 4
  • Recuentos por tipo de etiqueta y dimensiones declaradas de embeddings: JMIR e75347, Methods, pp. 4–5, Figure 1 and Table 1
  • BiLSTM, unidades ocultas, split 80:10:10, grid search y prompt zero-shot: JMIR e75347, Persona Classifier and Training, pp. 5–6, Textbox 3
  • Clasificación, dicotomización por mediana, afirmación de cinco pliegues y fórmula errónea de TPR: JMIR e75347, RQ3 Training and Evaluation Metric, pp. 7–8
  • MSE, comparación zero-shot, afirmación de 45% y alfas publicados: JMIR e75347, Results RQ1–RQ2, Tables 3–4, p. 9
  • Correlaciones interpretadas como convergencia y divergencia: JMIR e75347, Results RQ2, Figure 2 and Figures 3–8, pp. 9–16
  • AUROC por configuración y por familia de embeddings: JMIR e75347, Results RQ3–RQ4, Tables 5–6, pp. 16–17; Multimedia Appendix 1, pp. 3–5
  • Limitaciones, riesgos de alto impacto, conclusiones, IRB y disponibilidad declarada: JMIR e75347, Ethical Considerations p. 8; Discussion, Limitations and Data Availability, pp. 17–19
  • Hiperparámetros contradictorios, seis settings y 908.432 filas en selección de variables: Official Multimedia Appendix 1, Tables S1–S2 and experiment results, pp. 1–5
  • Splits aleatorios por fila, eliminación de identificador de autor y ruta principal sin k-fold: PersonaClassifier commit 3dcd3bebe0d61142b49b20c54d4dca5b6006a8f3, run.py; PersonaClassifier.py; utils/DataProcessor.py
  • Los alfas de la Tabla 4 se calculan sobre variables lingüísticas y el alfa de embeddings está comentado: PersonaClassifier commit 3dcd3bebe0d61142b49b20c54d4dca5b6006a8f3, EMB_analysis/liwc_analysis.ipynb
  • Alfa exploratorio negativo sobre dimensiones seleccionadas del embedding: PersonaClassifier commit 3dcd3bebe0d61142b49b20c54d4dca5b6006a8f3, EMB_analysis/7_CFA.ipynb
  • Entrada BiLSTM de un solo paso y atención trivial previa al LSTM: PersonaClassifier commit 3dcd3bebe0d61142b49b20c54d4dca5b6006a8f3, utils/Models.py and run.py
  • Ausencia de datos, entorno, licencia y artefactos completos: PersonaClassifier repository tree, README.md and .gitignore at commit 3dcd3bebe0d61142b49b20c54d4dca5b6006a8f3, audited 15 Jul 2026