{"id":32571,"date":"2025-04-22T09:55:31","date_gmt":"2025-04-22T12:55:31","guid":{"rendered":"https:\/\/building.nubank.com\/?p=32571"},"modified":"2025-05-14T12:15:16","modified_gmt":"2025-05-14T15:15:16","slug":"definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais","status":"publish","type":"post","link":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/","title":{"rendered":"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><em>Author:&nbsp;<a href=\"https:\/\/www.linkedin.com\/in\/daniel-braithwaite-phd-78ab58105\/\" target=\"_blank\" rel=\"noreferrer noopener\">Daniel Braithwaite<\/a>&nbsp;and&nbsp;<a href=\"https:\/\/www.linkedin.com\/in\/hiroto-udagawa\" target=\"_blank\" rel=\"noreferrer noopener\">Hiroto Udagawa<\/a><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>O trabalho descrito aqui \u00e9 um esfor\u00e7o colaborativo de v\u00e1rios engenheiros do Nubank (em ordem alfab\u00e9tica): Abhishek Shivanna, Arissa Yoshida, Austin McEver, Brian Zanfelice, Cristiano Breuel, Evan Wingert, Fabio Souza, Felipe Meneses, Helder Dias, Henrique Fernandes, Liam O\u2019Neill, Marcelo Buga, Matheus Ramos, and Misael Cavalcanti. We also thank Rohan Ramanath, Daniel Silva, and Guilherme Tanure pelo apoio.<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Este \u00e9 o segundo post de uma s\u00e9rie sobre como modelamos as finan\u00e7as dos nossos clientes usando modelos fundacionais. Para uma introdu\u00e7\u00e3o ao problema, confira o <\/em><a href=\"https:\/\/building.nubank.com.br\/pt-br\/entendendo-as-financas-dos-nossos-clientes-por-meio-de-modelos-fundacionais\/\"><em>primeiro post da s\u00e9rie<\/em><\/a><em>.&nbsp;<\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No post anterior, \u201c<a href=\"https:\/\/building.nubank.com.br\/pt-br\/entendendo-as-financas-dos-nossos-clientes-por-meio-de-modelos-fundacionais\/\">Entendendo as finan\u00e7as dos nossos clientes por meio de modelos fundacionais<\/a>\u201d, mostramos como o Nubank usa modelos fundacionais para construir representa\u00e7\u00f5es de usu\u00e1rios a partir de dados de transa\u00e7\u00f5es. Apresentamos como esses modelos, treinados com grandes volumes de dados n\u00e3o rotulados por meio de aprendizado auto supervisionado, conseguem descobrir caracter\u00edsticas gerais e gerar embeddings informativos sobre o comportamento financeiro dos clientes. Essa abordagem vai al\u00e9m da forma tradicional de extrair e transformar atributos tabulares a partir de dados de transa\u00e7\u00e3o, com o objetivo de aprimorar nossa compreens\u00e3o das necessidades dos nossos usu\u00e1rios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Utilizamos transformers [1] como nossa arquitetura base, j\u00e1 que atualmente eles s\u00e3o a principal escolha para solucionar problemas que envolvem dados sequenciais. Al\u00e9m disso, s\u00e3o especialmente eficazes em capturar rela\u00e7\u00f5es de longo prazo dentro da sequ\u00eancia de entrada (em compara\u00e7\u00e3o com RNNs [2, 3]). Isso \u00e9 particularmente \u00fatil no caso de dados de transa\u00e7\u00f5es, considerando varia\u00e7\u00f5es sazonais e c\u00edclicas nos h\u00e1bitos de consumo (por exemplo, as pessoas costumam gastar mais durante o fim de ano).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Transformers operam sobre sequ\u00eancias de embeddings. Por isso, precisamos definir um processo que converta as transa\u00e7\u00f5es de um usu\u00e1rio em embeddings que o transformer consiga processar. Aqui, apresentamos uma forma de criar essa interface que, essencialmente, transforma nosso problema de modelagem de transa\u00e7\u00f5es em algo que pode ser resolvido com t\u00e9cnicas padr\u00e3o de linguagem natural.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"562\" height=\"382\" data-attachment-id=\"32639\" data-permalink=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/screenshot-2025-04-22-at-10-01-00\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.01.00-2.png?fit=562%2C382&amp;ssl=1\" data-orig-size=\"562,382\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot 2025-04-22 at 10.01.00\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.01.00-2.png?fit=562%2C382&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.01.00-2.png?resize=562%2C382&#038;ssl=1\" alt=\"\" class=\"wp-image-32639\" srcset=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.01.00-2.png?w=562&amp;ssl=1 562w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.01.00-2.png?resize=300%2C204&amp;ssl=1 300w\" sizes=\"auto, (max-width: 562px) 100vw, 562px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Para este post, vamos assumir que uma transa\u00e7\u00e3o \u00e9 composta por tr\u00eas atributos: o seu valor representado como um n\u00famero decimal (float), a data representada como um timestamp, e a descri\u00e7\u00e3o representada como uma string. Embora esse formato seja simplificado, na pr\u00e1tica podemos construir representa\u00e7\u00f5es e codificadores para os muitos atributos \u00fanicos das transa\u00e7\u00f5es, como ID do comerciante, localiza\u00e7\u00e3o, categoria, motivo de recusa da transa\u00e7\u00e3o etc.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"848\" height=\"168\" data-attachment-id=\"32642\" data-permalink=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/screenshot-2025-04-22-at-10-02-14\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.02.14-2.png?fit=848%2C168&amp;ssl=1\" data-orig-size=\"848,168\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot 2025-04-22 at 10.02.14\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.02.14-2.png?fit=848%2C168&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.02.14-2.png?resize=848%2C168&#038;ssl=1\" alt=\"\" class=\"wp-image-32642\" srcset=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.02.14-2.png?w=848&amp;ssl=1 848w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.02.14-2.png?resize=300%2C59&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.02.14-2.png?resize=768%2C152&amp;ssl=1 768w\" sizes=\"auto, (max-width: 848px) 100vw, 848px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Uma op\u00e7\u00e3o direta para construir essa interface \u00e9 atribuir um ID para cada transa\u00e7\u00e3o \u00fanica, de forma semelhante ao que \u00e9 feito na literatura de recomenda\u00e7\u00e3o sequencial, como o SASRec [4]. Por exemplo, podemos mapear cada combina\u00e7\u00e3o \u00fanica de descri\u00e7\u00e3o, data e valor para um ID diferente, e ent\u00e3o converter esses IDs em embeddings usando uma tabela de lookup aprendida junto com o transformador. No entanto, essa abordagem tem duas desvantagens principais. Primeiro, o n\u00famero de poss\u00edveis combina\u00e7\u00f5es de transa\u00e7\u00f5es \u00e9 muito alto, o que exigiria um espa\u00e7o de IDs enorme. \u00c9 poss\u00edvel reduzir esse espa\u00e7o usando, por exemplo, o ID do comerciante no lugar da descri\u00e7\u00e3o, mas isso pode remover informa\u00e7\u00f5es importantes e introduzir depend\u00eancias de pr\u00e9-processamento adicionais, tornando os modelos mais fr\u00e1geis. Segundo, essa abordagem tamb\u00e9m sofre com o problema de cold start \u2014 ou seja, o modelo n\u00e3o consegue lidar com transa\u00e7\u00f5es que nunca viu durante o treinamento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Outra poss\u00edvel interface entre transa\u00e7\u00f5es e transformers \u00e9 seguir a abordagem \u201ctext-is-all-you-need\u201d [5], que no contexto de recomenda\u00e7\u00e3o de produtos constroi strings de itens concatenando o nome dos atributos (como descri\u00e7\u00e3o, valor, data) com seus respectivos valores (por exemplo, \u201cNETFLIX.com\u201d, R$32,40, 12\/05\/2023). Essa t\u00e9cnica pode ser aplicada tamb\u00e9m aos dados de transa\u00e7\u00f5es usando o mesmo processo. As strings resultantes podem ser tratadas como linguagem natural e convertidas em embeddings com tokenizadores e tabelas de embeddings. Isso permite que o modelo generalize para transa\u00e7\u00f5es nunca vistas e at\u00e9 aproveite modelos de linguagem j\u00e1 existentes, sem necessidade de modifica\u00e7\u00e3o. Por\u00e9m, esse m\u00e9todo faz com que uma \u00fanica transa\u00e7\u00e3o seja representada por muitos tokens, o que \u00e9 um problema, j\u00e1 que o custo computacional do mecanismo de aten\u00e7\u00e3o cresce quadraticamente com o comprimento do contexto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"292\" data-attachment-id=\"32718\" data-permalink=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/blog-post-1-transaction-embedding-strategies\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?fit=3744%2C1068&amp;ssl=1\" data-orig-size=\"3744,1068\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Blog Post #1 &amp;#8211; Transaction Embedding Strategies\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?fit=1024%2C292&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?resize=1024%2C292&#038;ssl=1\" alt=\"\" class=\"wp-image-32718\" srcset=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?resize=1024%2C292&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?resize=300%2C86&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?resize=768%2C219&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?resize=1536%2C438&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?resize=2048%2C584&amp;ssl=1 2048w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?resize=1200%2C342&amp;ssl=1 1200w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Embedding-Strategies-2.jpg?w=3000&amp;ssl=1 3000w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A figura abaixo mostra um exemplo das duas interfaces entre transa\u00e7\u00f5es e embeddings mencionadas acima. No entanto, para os nossos modelos fundacionais, escolhemos uma vers\u00e3o modificada da abordagem \u201ctext-is-all-you-need\u201d, representando atributos num\u00e9ricos e categ\u00f3ricos com tokens especiais (os atributos num\u00e9ricos s\u00e3o quantizados em intervalos antes de se tornarem categ\u00f3ricos). Para os experimentos apresentados neste post, representamos uma transa\u00e7\u00e3o com os seguintes componentes:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Sinal do valor: um token que representa se o valor da transa\u00e7\u00e3o \u00e9 positivo ou negativo.<\/li>\n\n\n\n<li>Faixa de valor (bucket): os valores absolutos s\u00e3o agrupados em intervalos, e cada um recebe um token diferente.<\/li>\n\n\n\n<li>M\u00eas, dia e dia da semana: cada um \u00e9 representado com tokens pr\u00f3prios.<\/li>\n\n\n\n<li>Descri\u00e7\u00e3o: o texto \u00e9 tokenizado como linguagem natural usando um tokenizador padr\u00e3o (como BPE).<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Essa representa\u00e7\u00e3o tamb\u00e9m facilita a inclus\u00e3o de outros atributos categ\u00f3ricos e num\u00e9ricos. Al\u00e9m disso, o uso de tokens especiais reduz o n\u00famero de tokens em compara\u00e7\u00e3o \u00e0 abordagem puramente textual. Abaixo, mostramos um exemplo completo dessa representa\u00e7\u00e3o:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"398\" data-attachment-id=\"32738\" data-permalink=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/blog-post-1-transaction-tokenization-process-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?fit=3209%2C1246&amp;ssl=1\" data-orig-size=\"3209,1246\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Blog Post #1 &amp;#8211; Transaction Tokenization Process\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?fit=1024%2C398&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?resize=1024%2C398&#038;ssl=1\" alt=\"\" class=\"wp-image-32738\" srcset=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?resize=1024%2C398&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?resize=300%2C116&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?resize=768%2C298&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?resize=1536%2C596&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?resize=2048%2C795&amp;ssl=1 2048w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-Transaction-Tokenization-Process-3.jpg?w=3000&amp;ssl=1 3000w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Agora que temos uma forma de representar uma transa\u00e7\u00e3o como uma string e tokeniz\u00e1-la, podemos aplicar isso ao hist\u00f3rico de um cliente simplesmente concatenando as strings das transa\u00e7\u00f5es com tokens separadores entre elas. Essa string concatenada \u00e9 cortada ao atingir um limite pr\u00e9-definido de tamanho de contexto.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"681\" data-attachment-id=\"32729\" data-permalink=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/blog-post-1-user-tokenization-process\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?fit=2451%2C1631&amp;ssl=1\" data-orig-size=\"2451,1631\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Blog Post #1 &amp;#8211; User Tokenization Process\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?fit=1024%2C681&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?resize=1024%2C681&#038;ssl=1\" alt=\"\" class=\"wp-image-32729\" srcset=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?resize=1024%2C681&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?resize=300%2C200&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?resize=768%2C511&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?resize=1536%2C1022&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?resize=2048%2C1363&amp;ssl=1 2048w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Tokenization-Process-2.jpg?resize=1200%2C799&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Por fim, pr\u00e9-treinamos os transformers usando tarefas padr\u00e3o de modelagem de linguagem. Assim como nos modelos de linguagem natural, os tokens de transa\u00e7\u00f5es s\u00e3o convertidos em embeddings por meio de uma tabela de lookup, e o treinamento \u00e9 feito com tarefas auto-supervisionadas como predi\u00e7\u00e3o do pr\u00f3ximo token (NTP) ou modelagem de linguagem mascarada (MLM).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"806\" data-attachment-id=\"32726\" data-permalink=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/blog-post-1-user-modeling-approach\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?fit=2254%2C1774&amp;ssl=1\" data-orig-size=\"2254,1774\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Blog Post #1 &amp;#8211; User Modeling Approach\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?fit=1024%2C806&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?resize=1024%2C806&#038;ssl=1\" alt=\"\" class=\"wp-image-32726\" srcset=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?resize=1024%2C806&amp;ssl=1 1024w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?resize=300%2C236&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?resize=768%2C604&amp;ssl=1 768w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?resize=1536%2C1209&amp;ssl=1 1536w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?resize=2048%2C1612&amp;ssl=1 2048w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Blog-Post-1-User-Modeling-Approach-2.jpg?resize=1200%2C944&amp;ssl=1 1200w\" sizes=\"auto, (max-width: 1000px) 100vw, 1000px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Claro que a classe de modelos baseada em transformers \u00e9 bastante ampla, o que demanda bastante experimenta\u00e7\u00e3o. A figura abaixo mostra o desempenho m\u00e9dio dos embeddings n\u00e3o supervisionados (ou seja, extra\u00eddos diretamente do modelo pr\u00e9-treinado) em quatro benchmarks de sistemas de recomenda\u00e7\u00e3o, conforme ajustamos a configura\u00e7\u00e3o do modelo. Para acelerar os experimentos (e respeitar os limites de hardware), utilizamos um contexto curto de 1024 tokens, que chamamos de CL.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Modelo 1 (Baseline): aten\u00e7\u00e3o bidirecional com a tarefa de MLM.<\/li>\n\n\n\n<li>Modelo 1 em blocos (Chunked): aumenta artificialmente o contexto ao rodar o mesmo modelo em m\u00faltiplos blocos independentes e fazer a m\u00e9dia dos embeddings (blocos de 8 \u00d7 CL tokens). Isso gera uma melhora de 1,64 ponto sobre o baseline.<\/li>\n\n\n\n<li>Modelo 2: usa aten\u00e7\u00e3o esparsa para aumentar o contexto para 2 \u00d7 CL sem estourar a mem\u00f3ria. Melhora de 1,8 ponto sobre o baseline.<\/li>\n\n\n\n<li>Modelo 2 em blocos: melhora relativa de 2,78 pontos sobre o baseline.<\/li>\n\n\n\n<li>Modelo 3 SM: troca para aten\u00e7\u00e3o causal e adiciona NoPE [6] (ou seja, remove embeddings posicionais, pois modelos causais aprendem sua pr\u00f3pria no\u00e7\u00e3o de posi\u00e7\u00e3o) e FlashAttention [7] (uma implementa\u00e7\u00e3o mais eficiente da aten\u00e7\u00e3o, com melhor escalabilidade), permitindo contexto de at\u00e9 8 \u00d7 CL. Gera um ganho de 3,93 pontos.<\/li>\n\n\n\n<li>Modelo 3 LG: aumenta o n\u00famero de par\u00e2metros em 4 vezes e gera um ganho de 7,2 pontos sobre o baseline.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Por fim, o <em>Fine-tuned LG <\/em>aplica um ajuste fino adicional no <em>Modelo 3 LG<\/em>, treinando o transformador para prever diretamente o r\u00f3tulo. Esse modelo ajustado traz uma melhora de 9 pontos em rela\u00e7\u00e3o ao baseline.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"918\" height=\"527\" data-attachment-id=\"32658\" data-permalink=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/screenshot-2025-04-22-at-10-05-25\/\" data-orig-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.05.25-2.png?fit=918%2C527&amp;ssl=1\" data-orig-size=\"918,527\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Screenshot 2025-04-22 at 10.05.25\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.05.25-2.png?fit=918%2C527&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.05.25-2.png?resize=918%2C527&#038;ssl=1\" alt=\"\" class=\"wp-image-32658\" srcset=\"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.05.25-2.png?w=918&amp;ssl=1 918w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.05.25-2.png?resize=300%2C172&amp;ssl=1 300w, https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-22-at-10.05.25-2.png?resize=768%2C441&amp;ssl=1 768w\" sizes=\"auto, (max-width: 918px) 100vw, 918px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Para contextualizar: um ganho relativo de apenas 1 ~ 1,25 ponto nessas tarefas j\u00e1 \u00e9 significativo o suficiente para justificar o lan\u00e7amento de um novo modelo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Neste post, mostramos como conseguimos transformar o problema de modelar sequ\u00eancias de transa\u00e7\u00f5es em um problema de linguagem natural padr\u00e3o. Apesar da simplicidade, essa abordagem gera embeddings informativos que agregam valor a diversas tarefas dentro do Nubank. Tamb\u00e9m vimos uma pr\u00e9via das vantagens do fine-tuning.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este \u00e9 o segundo post da nossa s\u00e9rie sobre o uso de modelos fundamentais aplicados a dados de transa\u00e7\u00f5es. Esses modelos nos ajudam a entender melhor as finan\u00e7as dos nossos clientes e a atend\u00ea-los no momento certo. No pr\u00f3ximo post, vamos discutir nossa abordagem de joint fusion, que nos permite ajustar esses modelos fundamentais para tarefas espec\u00edficas e incorporar solu\u00e7\u00f5es baseadas em atributos tabulares. Tamb\u00e9m planejamos explorar outros aspectos do nosso setup de modelos fundacionais em posts futuros.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resumo da s\u00e9rie<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Se voc\u00ea chegou at\u00e9 aqui, aproveite para acessar os demais posts da s\u00e9rie e entender com mais profundidade o contexto e os detalhes t\u00e9cnicos dessa abordagem.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/building.nubank.com\/pt-br\/entendendo-as-financas-dos-nossos-clientes-por-meio-de-modelos-fundacionais\/\">No primeiro blog post<\/a><\/strong>, avaliamos o potencial dos <em>foundation models<\/em> aplicados a dados de transa\u00e7\u00f5es, mostrando como o aprendizado auto-supervisionado pode gerar embeddings gerais que capturam o comportamento do cliente sem depender de dados rotulados.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/\">No segundo blog post<\/a><\/strong>, aprofundamos na formula\u00e7\u00e3o t\u00e9cnica dos nossos <em>foundation models<\/em>, detalhando a arquitetura baseada em transformadores causais e como esses embeddings podem ser aplicados a diferentes tarefas.<\/li>\n\n\n\n<li><a href=\"https:\/\/building.nubank.com\/pt-br\/ajuste-fino-de-modelos-de-usuarios-de-transacoes\/\"><strong>No terceiro blog post<\/strong>,<\/a> exploramos como melhorar o desempenho em tarefas espec\u00edficas com o <em>supervised fine-tuning<\/em> e introduzimos o conceito de <em>joint fusion<\/em> \u2014 uma abordagem que combina dados sequenciais e tabulares em um \u00fanico processo de treinamento fim a fim.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Refer\u00eancias<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">[1] Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., &#8230; &amp; Polosukhin, I. (2017). Attention is all you need. Advances in neural information processing systems, 30.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[2] Rumelhart, David E; Hinton, Geoffrey E, and Williams, Ronald J (Sept. 1985). Learning internal representations by error propagation. Tech. rep. ICS 8504. San Diego, California: Institute for Cognitive Science, University of California.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[3] Jordan, Michael I. (May 1986). Serial order: a parallel distributed processing approach. Tech. rep. ICS 8604. San Diego, California: Institute for Cognitive Science, University of California.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[4] Kang, W. C., &amp; McAuley, J. (2018, November). Self-attentive sequential recommendation. In 2018 IEEE international conference on data mining (ICDM) (pp. 197-206). IEEE.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[5] Li, J., Wang, M., Li, J., Fu, J., Shen, X., Shang, J., &amp; McAuley, J. (2023, August). Text is all you need: Learning language representations for sequential recommendation. In Proceedings of the 29th ACM SIGKDD Conference on Knowledge Discovery and Data Mining (pp. 1258-1267).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[6] Kazemnejad, A., Padhi, I., Natesan Ramamurthy, K., Das, P., &amp; Reddy, S. (2023). The impact of positional encoding on length generalization in transformers. Advances in Neural Information Processing Systems, 36, 24892-24928.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">[7] Dao, T., Fu, D., Ermon, S., Rudra, A., &amp; R\u00e9, C. (2022). Flashattention: Fast and memory-efficient exact attention with io-awareness. Advances in neural information processing systems, 35, 16344-16359.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Exploramos como modelos fundacionais baseados em transformers no Nubank transformam transa\u00e7\u00f5es em embeddings usando t\u00e9cnicas de NLP. Isso permite entender melhor o comportamento dos clientes e personalizar experi\u00eancias nos nossos produtos.<\/p>\n","protected":false},"author":178110103,"featured_media":32566,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[778793307,2612,2525,2502,2524],"tags":[778793462,778793456,778793461,778793463,778793464,778793460,778793457,778793465,778793458,778793459],"class_list":["post-32571","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai-research-pt-br","category-awards-pt-br","category-culture-values-pt-br","category-data-science-machine-learning-pt-br","category-life-at-nu-pt-br","tag-financial-transaction-embeddings-2","tag-foundation-models-in-finance-2","tag-interface-between-structured-data-and-language-models-2","tag-nlp-applications-in-finance-2","tag-recommender-systems-in-fintech-2","tag-self-supervised-learning-for-financial-data-2","tag-transaction-data-modeling-2","tag-transformer-pretraining-and-fine-tuning-2","tag-transformers-in-fintech-2","tag-user-representation-with-ai-2"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais - Building Nubank<\/title>\n<meta name=\"description\" content=\"Exploramos como modelos fundacionais baseados em transformers no Nubank transformam transa\u00e7\u00f5es em embeddings usando t\u00e9cnicas de NLP. Isso permite entender melhor o comportamento dos clientes e personalizar experi\u00eancias nos nossos produtos.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais - Building Nubank\" \/>\n<meta property=\"og:description\" content=\"Exploramos como modelos fundacionais baseados em transformers no Nubank transformam transa\u00e7\u00f5es em embeddings usando t\u00e9cnicas de NLP. Isso permite entender melhor o comportamento dos clientes e personalizar experi\u00eancias nos nossos produtos.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/\" \/>\n<meta property=\"og:site_name\" content=\"Building Nubank\" \/>\n<meta property=\"article:published_time\" content=\"2025-04-22T12:55:31+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-14T15:15:16+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-17-at-11.52.19.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1180\" \/>\n\t<meta property=\"og:image:height\" content=\"780\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Nubank Editorial\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nubank Editorial\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/\"},\"author\":{\"name\":\"Nubank Editorial\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"headline\":\"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais\",\"datePublished\":\"2025-04-22T12:55:31+00:00\",\"dateModified\":\"2025-05-14T15:15:16+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/\"},\"wordCount\":1791,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1\",\"keywords\":[\"Financial Transaction Embeddings\",\"Foundation Models in Finance\",\"Interface Between Structured Data and Language Models\",\"NLP Applications in Finance\",\"Recommender Systems in Fintech\",\"Self-Supervised Learning for Financial Data\",\"Transaction Data Modeling\",\"Transformer Pretraining and Fine-Tuning\",\"Transformers in Fintech\",\"User Representation with AI\"],\"articleSection\":[\"AI Research\",\"Awards\",\"Culture &amp; Values\",\"Data science &amp; Machine Learning\",\"Life at Nu\"],\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/\",\"name\":\"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais - Building Nubank\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1\",\"datePublished\":\"2025-04-22T12:55:31+00:00\",\"dateModified\":\"2025-05-14T15:15:16+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\"},\"description\":\"Exploramos como modelos fundacionais baseados em transformers no Nubank transformam transa\u00e7\u00f5es em embeddings usando t\u00e9cnicas de NLP. Isso permite entender melhor o comportamento dos clientes e personalizar experi\u00eancias nos nossos produtos.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/building.nubank.com\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1\",\"width\":1180,\"height\":780,\"caption\":\"Person working at Nu Office\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#website\",\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/\",\"name\":\"Building Nubank\",\"description\":\"We make the extraordinary happen\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/#\\\/schema\\\/person\\\/462f4f5a8d4ec3ccbc3d661dde00f0a4\",\"name\":\"Nubank Editorial\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g\",\"caption\":\"Nubank Editorial\"},\"url\":\"https:\\\/\\\/building.nubank.com\\\/pt-br\\\/author\\\/editorial\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais - Building Nubank","description":"Exploramos como modelos fundacionais baseados em transformers no Nubank transformam transa\u00e7\u00f5es em embeddings usando t\u00e9cnicas de NLP. Isso permite entender melhor o comportamento dos clientes e personalizar experi\u00eancias nos nossos produtos.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/","og_locale":"pt_BR","og_type":"article","og_title":"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais - Building Nubank","og_description":"Exploramos como modelos fundacionais baseados em transformers no Nubank transformam transa\u00e7\u00f5es em embeddings usando t\u00e9cnicas de NLP. Isso permite entender melhor o comportamento dos clientes e personalizar experi\u00eancias nos nossos produtos.","og_url":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/","og_site_name":"Building Nubank","article_published_time":"2025-04-22T12:55:31+00:00","article_modified_time":"2025-05-14T15:15:16+00:00","og_image":[{"width":1180,"height":780,"url":"https:\/\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-17-at-11.52.19.png","type":"image\/png"}],"author":"Nubank Editorial","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Nubank Editorial","Est. tempo de leitura":"9 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/#article","isPartOf":{"@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/"},"author":{"name":"Nubank Editorial","@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"headline":"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais","datePublished":"2025-04-22T12:55:31+00:00","dateModified":"2025-05-14T15:15:16+00:00","mainEntityOfPage":{"@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/"},"wordCount":1791,"commentCount":0,"image":{"@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1","keywords":["Financial Transaction Embeddings","Foundation Models in Finance","Interface Between Structured Data and Language Models","NLP Applications in Finance","Recommender Systems in Fintech","Self-Supervised Learning for Financial Data","Transaction Data Modeling","Transformer Pretraining and Fine-Tuning","Transformers in Fintech","User Representation with AI"],"articleSection":["AI Research","Awards","Culture &amp; Values","Data science &amp; Machine Learning","Life at Nu"],"inLanguage":"pt-BR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/","url":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/","name":"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais - Building Nubank","isPartOf":{"@id":"https:\/\/building.nubank.com\/pt-br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/#primaryimage"},"image":{"@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1","datePublished":"2025-04-22T12:55:31+00:00","dateModified":"2025-05-14T15:15:16+00:00","author":{"@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4"},"description":"Exploramos como modelos fundacionais baseados em transformers no Nubank transformam transa\u00e7\u00f5es em embeddings usando t\u00e9cnicas de NLP. Isso permite entender melhor o comportamento dos clientes e personalizar experi\u00eancias nos nossos produtos.","breadcrumb":{"@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/#primaryimage","url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1","contentUrl":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1","width":1180,"height":780,"caption":"Person working at Nu Office"},{"@type":"BreadcrumbList","@id":"https:\/\/building.nubank.com\/pt-br\/definindo-uma-interface-entre-dados-de-transacoes-e-modelos-fundacionais\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/building.nubank.com\/pt-br\/"},{"@type":"ListItem","position":2,"name":"Definindo uma interface entre dados de transa\u00e7\u00f5es e modelos fundacionais"}]},{"@type":"WebSite","@id":"https:\/\/building.nubank.com\/pt-br\/#website","url":"https:\/\/building.nubank.com\/pt-br\/","name":"Building Nubank","description":"We make the extraordinary happen","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/building.nubank.com\/pt-br\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/building.nubank.com\/pt-br\/#\/schema\/person\/462f4f5a8d4ec3ccbc3d661dde00f0a4","name":"Nubank Editorial","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8c056170dc75ffd365b306a0ac7bea4e51d1cdab52a0c84e6ba0a42f7e2f4633?s=96&d=identicon&r=g","caption":"Nubank Editorial"},"url":"https:\/\/building.nubank.com\/pt-br\/author\/editorial\/"}]}},"jetpack_shortlink":"https:\/\/wp.me\/pbKBB5-8tl","jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/building.nubank.com\/wp-content\/uploads\/2025\/04\/Screenshot-2025-04-17-at-11.52.19.png?fit=1180%2C780&ssl=1","_links":{"self":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/32571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/users\/178110103"}],"replies":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/comments?post=32571"}],"version-history":[{"count":13,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/32571\/revisions"}],"predecessor-version":[{"id":33038,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/posts\/32571\/revisions\/33038"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/media\/32566"}],"wp:attachment":[{"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/media?parent=32571"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/categories?post=32571"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/building.nubank.com\/pt-br\/wp-json\/wp\/v2\/tags?post=32571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}