PersonaLedger: Generating Realistic Financial Transactions with Persona Conditioned LLMs and Rule Grounded Feedback

Aplicaciones, sesgos y seguridad2026arXivRevisión editorial aprobada

Autores: Dehao Yuan, Tyler Farnan, Stefan Tesliuc, Doron L. Bergman, Yulun Wu, Xiaoyu Liu, Minghui Liu, James Montgomery, Nam H Nguyen, C. Bayan Bruss, Furong Huang

Palabras clave: Synthetic financial transactions, Persona-conditioned generation, Rule-grounded simulation, Illiquidity classification, Identity theft segmentation

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

11
Autores
9
Hallazgos
14
Limitaciones
5
Evidencias

Resumen editorial

Español

PersonaLedger combina un LLM con reglas Python para producir historiales sintéticos de tarjetas condicionados por personas textuales. Parte de los veinte campos de Nemotron-Personas y usa Llama-3.3-70B-Instruct, con siete ejemplos en contexto, para inferir nivel de ingresos, límite de crédito, hábito de pago, suscripciones, facturas, coche y patrón de gasto. Después genera día a día un plan narrativo y transacciones. El programa corrige el signo y una pequeña parte del importe, inserta cargos recurrentes, pagos e intereses, ofrece contexto de calendario estadounidense, vigila compras de combustible y alimentación y actualiza saldos. Es una simulación condicionada por persona; los planes no son observaciones de razonamiento humano ni validan personalidad psicológica.

El paper declara unos 30 millones de eventos de 23.361 usuarios sintéticos: 22.018 normales y 1.343 ilíquidos. Tabla 1 desglosa 24,7 millones de transacciones diarias, 1,9 millones de pagos y 4,30 millones de cargos recurrentes, con 74.623 comercios, una media de 724,05 días y 1.242,10 eventos por usuario. A partir de esos historiales crea clasificación de iliquidez a nivel de usuario y segmentación de robo de identidad a nivel de evento para ventanas de uno y tres meses. Declara 150.000 secuencias de entrenamiento y 36.000 de test por tarea. En iliquidez, el mejor AUC es 0,828 a tres meses y 0,804 a un mes; el mejor F1 es 0,216 y 0,208. En robo de identidad, el Transformer alcanza los mejores F1, 0,262 y 0,476, y el mejor AUC de un mes, 0,870; TimesNet logra 0,790 a tres meses.

La evidencia no valida las palabras realistic y privacy-preserving en su sentido fuerte. El realismo se argumenta con ejemplos y estadísticas internas por edad, educación, coche, hábito de gasto, calendario, utilización de crédito y cobertura de comercios. No hay comparación con una población real reservada, distancia distribucional calibrada, transferencia a datos reales ni evaluación ciega por expertos. No usar ledgers privados reduce el riesgo de exponer registros de clientes, pero no constituye privacidad diferencial, prueba contra ataques ni garantía de representatividad. Las reglas codifican supuestos estrechos: festivos de EE. UU., dólares, cinco salarios fijos cada catorce días, saldo inicial de 5.000, interés del 5% y lenguaje de amenaza de procesamiento penal.

El código público contradice además una pieza central del método descrito. El paper dice que comprueba postcondiciones antes de aceptar, rechaza planes inválidos y devuelve una corrección dirigida al LLM. En el release, update_history solo reintenta por JSON inválido, depósitos o timestamps mal formados; luego ejecuta las reglas y añade todas las transacciones. No hay verificador general, rollback ni re-prompt específico. El crédito puede quedar por debajo de cero y se inserta un aviso para el día siguiente; la simulación termina al tercer aviso. La probabilidad pública de eventos aleatorios es 0,3, no el 0,1 del manuscrito. Tampoco hay semillas para fechas, eventos, importes o muestreo del LLM, por lo que no es posible la regeneración exacta prometida.

La evaluación publicada no es un test final independiente. Solo se liberan train y test. Para iliquidez, VALI y TEST cargan el mismo test_df, de modo que early stopping selecciona el checkpoint con test. Para robo de identidad se calcula test loss en cada época y se elige sobre las propias etiquetas de test el umbral con mejor F1. Además, la codificación categórica se calcula tras concatenar train y test, y las ventanas de test se muestrean aleatoriamente sin semilla. El generador de fraude reemplaza un día legítimo por transacciones de un usuario sintético ilíquido, no añade un día, lo que puede introducir atajos propios de ese pool. Los resultados son exploratorios y probablemente optimistas. El release es grande y útil, código, 100.000 personas de entrada y aumentadas, ejemplos, datos raw y ocho parquets de tareas, pero carece de validación separada, logs completos, snapshots de estado, checks por evento, resultados, tests y CI. Sigue siendo un preprint arXiv v2 enviado a ICLR 2026; el registro público no aparece como aceptado.

English

PersonaLedger combines an LLM with Python rules to produce synthetic card histories conditioned on textual personas. It starts from the twenty fields in Nemotron-Personas and uses Llama-3.3-70B-Instruct, with seven in-context examples, to infer income level, credit limit, payment habit, subscriptions, bills, car ownership, and spending pattern. It then generates a narrative plan and transactions day by day. The program fixes signs and slightly perturbs amounts, inserts recurring charges, payments, and interest, supplies U.S. calendar context, tracks fuel and grocery cadence, and updates balances. This is persona-conditioned simulation; the plans are not observations of human reasoning and do not validate psychological personality.

The paper reports about 30 million events from 23,361 synthetic users: 22,018 normal and 1,343 illiquid. Table 1 breaks these into 24.7 million daily transactions, 1.9 million payments, and 4.30 million recurring charges, with 74,623 merchants, a mean history of 724.05 days, and 1,242.10 events per user. The histories yield user-level illiquidity classification and event-level identity-theft segmentation for one- and three-month windows. The paper states 150,000 training and 36,000 test sequences per task. For illiquidity, the best AUC is 0.828 at three months and 0.804 at one month; the best F1 is 0.216 and 0.208. For identity theft, Transformer has the best F1, 0.262 and 0.476, and the best one-month AUC, 0.870; TimesNet reaches 0.790 at three months.

The evidence does not validate realistic or privacy-preserving in their strong senses. Realism is argued through examples and internal statistics by age, education, car ownership, spending habit, calendar, credit utilization, and merchant coverage. There is no held-out real-population comparison, calibrated distributional distance, transfer to real data, or blinded expert study. Avoiding private ledgers lowers direct customer-record disclosure risk, but it is not differential privacy, an attack-based privacy test, or a population-fidelity guarantee. The rules encode narrow assumptions: U.S. holidays, dollars, five fixed salary buckets every fourteen days, a 5,000 initial balance, 5% interest, and threats of prosecution.

The public code also contradicts a central part of the described method. The paper says that postconditions are checked before acceptance, invalid plans are rejected, and targeted corrections are returned to the LLM. In the release, update_history retries only for invalid JSON, deposits, or malformed timestamps; it then runs the rules and appends every transaction. There is no general verifier, rollback, or violation-specific re-prompt. Available credit may fall below zero and a warning is inserted for the following day; generation stops after the third warning. The public random-event probability is 0.3, not the manuscript's 0.1. There are no seeds for dates, events, amount noise, or LLM sampling, so the promised exact regeneration is not possible.

The reported evaluation is not an independent final test. Only train and test files are released. For illiquidity, VALI and TEST load the same test_df, so early stopping selects a checkpoint with test data. For identity theft, test loss is calculated every epoch and the threshold with the best F1 is selected against the test labels. Category encoding is also learned after concatenating train and test, and test windows are randomly sampled without a seed. The fraud generator replaces a legitimate day with transactions from an illiquid synthetic user rather than adding a day, creating a potential pool-specific shortcut. Results are exploratory and likely optimistic. The release is large and useful, code, 100,000 source and augmented personas, examples, raw data, and eight task parquets, but lacks a separate validation split, full logs, state snapshots, per-event checks, results, tests, and CI. It remains an arXiv v2 preprint submitted to ICLR 2026; the public record is not marked accepted.

Pregunta de investigación

¿Puede un LLM condicionado por personas, combinado con reglas programáticas de estado financiero, generar un corpus sintético amplio y útil para comparar modelos en predicción de iliquidez y segmentación de robo de identidad?

Método

El sistema toma personas Nemotron, infiere atributos financieros con Llama-3.3-70B-Instruct y simula planes y transacciones diarias con siete días de contexto. Reglas Python insertan eventos recurrentes, pagos e intereses y actualizan crédito, débito y señales de calendario/cadencia. El postprocesado etiqueta usuarios ilíquidos y deriva splits de uno y tres meses para clasificación y segmentación. Quince arquitecturas adaptadas de Time-Series-Library se entrenan con muestreo balanceado o BCE ponderada y se informan F1 y AUC; la implementación pública reutiliza test durante selección y umbralización.

Muestra: El paper declara 23.361 usuarios sintéticos: 22.018 normales (94,3%) y 1.343 ilíquidos (5,7%), con unos 30 millones de eventos, 74.623 comercios, media de 724,05 días y 1.242,10 transacciones por usuario. Para cada tarea declara 150.000 secuencias de entrenamiento y 36.000 de test; a tres meses, la tasa positiva es 3,43% en iliquidez y 1,13% en robo de identidad. El repositorio contiene 500 historiales de ejemplo y solo 100 logs de conversación, además de pequeños parquets; Hugging Face contiene el corpus raw y ocho parquets de tareas, pero el viewer los concatena erróneamente como un único dataset de 117.428.958 filas.

Hallazgos

  • PersonaLedger libera un corpus sintético grande y reglas modificables que relacionan personas textuales con secuencias financieras.
  • Pyraformer obtiene el mejor AUC de iliquidez: 0,828 a tres meses y 0,804 a un mes.
  • PatchTST logra el mejor F1 de iliquidez a tres meses, 0,216, y TimesNet a un mes, 0,208.
  • Transformer obtiene los mejores F1 de robo de identidad: 0,262 a tres meses y 0,476 a un mes, y el mejor AUC de un mes, 0,870.
  • TimesNet obtiene el mejor AUC de robo de identidad a tres meses, 0,790.
  • La evidencia de realismo es interna y descriptiva; no compara contra una distribución real reservada ni contra evaluadores expertos.
  • El código público no implementa el rechazo general y la corrección dirigida que describe el paper.
  • El benchmark usa test para early stopping y, en segmentación, para elegir el umbral F1, por lo que las cifras no son estimaciones finales independientes.
  • La liberación no permite regenerar exactamente el corpus ni reproducir las tablas desde cero.

Limitaciones

  • Las personas y trayectorias son sintéticas y no están validadas contra comportamiento individual humano.
  • No hay comparador de datos financieros reales, evaluación humana ciega ni métrica formal de fidelidad distribucional.
  • Privacy-preserving significa aquí no usar ledgers privados; no hay privacidad diferencial ni auditoría de ataques.
  • Las reglas contienen supuestos estadounidenses y valores fijos sin protocolo público de calibración experta.
  • El verificador, rollback y re-prompt por postcondición descritos no aparecen en el código liberado.
  • La probabilidad de evento aleatorio es 30% en código y 10% en el manuscrito.
  • Solo hay train/test; validación y test se solapan durante selección de checkpoint.
  • El F1 de identidad se maximiza sobre etiquetas de test y los encoders categóricos usan train+test.
  • Las ventanas de test, splits y generación son no deterministas por falta de semillas activas.
  • El fraude reemplaza un día y siempre toma donantes ilíquidos, creando riesgo de atajo.
  • Los nombres illiquid/insolvent e illiquidity/insolvency divergen entre código, datos y documentación.
  • No hay intervalos, repeticiones, significancia, calibración ni resultados por semilla.
  • Faltan logs y estados a escala del corpus, resultados, checkpoints, tests, CI y release inmutable.
  • El trabajo no figura como aceptado en ICLR ni como publicación revisada por pares.

Qué no demuestra

  • Que las transacciones reproduzcan el comportamiento de clientes reales o una población financiera real.
  • Que la persona textual equivalga a personalidad psicológica o a un gemelo digital.
  • Que el plan narrativo sea razonamiento humano observado.
  • Que tendencias agregadas plausibles demuestren realismo socioeconómico.
  • Que no usar datos privados constituya una garantía formal de privacidad.
  • Que todas las transacciones respeten las invariantes declaradas antes de ser aceptadas.
  • Que el release implemente un bucle general de rechazo y corrección.
  • Que el benchmark de robo de identidad modele fraude real sin atajos del simulador.
  • Que F1 se haya elegido en validación o medido en un test intacto.
  • Que AUC sea totalmente held-out cuando test decide el checkpoint y el espacio de features.
  • Que el repositorio regenere exactamente 30 millones de eventos o reproduzca las tablas.
  • Que 117 millones de filas del viewer sean transacciones únicas; son archivos de tareas concatenados.
  • Que el envío a ICLR 2026 equivalga a aceptación o revisión por pares.

Trazabilidad

Alcance: Texto completo

Versión: arXiv:2601.03149v2, 18 pages; OpenReview submission, GitHub commit 835e2d8 and Hugging Face dataset revision c90078a also audited

Fuente consultada: https://arxiv.org/abs/2601.03149

Revisión: Codex 18-page arXiv-v2 visual, OpenReview-publication, construct/realism/privacy, rule-engine, task-creation, benchmark-leakage, GitHub and Hugging Face artifact audit, 2026-07-16

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

Modelos evaluados

  • Llama-3.3-70B-Instruct persona augmentation and transaction generation
  • Transformer
  • TimesNet
  • PatchTST
  • Pyraformer
  • iTransformer
  • Autoformer
  • Informer
  • FEDformer
  • ETSformer
  • Crossformer
  • DLinear
  • FiLM
  • LightTS
  • MICN
  • Reformer

Instrumentos y métricas

  • Twenty-field Nemotron persona schema
  • Seven-example financial-profile prompt
  • Daily trajectory-plan and transaction prompt
  • Python state and rule engine
  • U.S. holiday and purchase-cadence prompts
  • Illiquidity user-level labels
  • Synthetic identity-theft event labels
  • F1, precision, recall and ROC AUC
  • One- and three-month context windows

Datos utilizados

  • NVIDIA Nemotron-Personas
  • PersonaLedger raw normal and illiquid synthetic ledgers
  • PersonaLedger illiquidity/insolvency prediction 1-month and 3-month tasks
  • PersonaLedger identity theft 1-month and 3-month tasks
  • Public GitHub sample with 100,000 source and 100,000 augmented persona records

Evidencia y localización

  • Método, corpus, estadísticas, benchmarks, resultados y afirmaciones de privacidad/reproducibilidad: arXiv:2601.03149v2, pages 1-18; all pages rendered and visually inspected
  • Estado de preprint y envío a ICLR 2026: arXiv submission history and OpenReview forum YPfSfqVedI checked 2026-07-16
  • Reglas, aceptación de transacciones, postprocesado, splits, leakage, semillas y alcance del release: CapitalOne-Research/PersonaLedger commit 835e2d866a89a1bfba65f6e452b7a00fef99b80b
  • Archivos, tamaños, licencia, revisión y concatenación incorrecta del viewer: Hugging Face capitalone/PersonaLedger revision c90078ae4ac47e582c9263579466a905fa4adfab
  • Validez de constructo, realismo, privacidad, motor de reglas, leakage del benchmark y reproducibilidad: reports/verification/article-267-personaledger-realism-privacy-rule-engine-benchmark-leakage-and-artifact-audit.json