Arquitetura real · Júnior
Chicisimo: ML vertical em moda
Arquitetura real em produção. Pontos centrais: data flywheel e ontologia de domínio.
Resposta curta
Arquitetura real em produção. Pontos centrais: data flywheel e ontologia de domínio. A Chicisimo é um app de moda cujo objetivo era oferecer aconselhamento automatizado de looks. Quando o artigo foi escrito, o app tinha mais de 4 milhões de mulheres, e o texto é o relato do autor, que se apresenta como CEO e cofundador, sobre como a abordagem…
01 · CONTEXTO E TESE
Aconselhar o que vestir, de forma automática
A Chicisimo é um app de moda cujo objetivo era oferecer aconselhamento automatizado de looks. Quando o artigo foi escrito, o app tinha mais de 4 milhões de mulheres, e o texto é o relato do autor, que se apresenta como CEO e cofundador, sobre como a abordagem de dados e de machine learning ajudou o crescimento.
A tese da equipe era que looks e armários são os melhores ativos para entender o gosto das pessoas e que entender gosto transformaria a moda online.
Para executar a tese, o autor descreve uma infraestrutura com estes elementos: um app de consumo que guarda as roupas do armário, com interface focada em capturar a entrada certa e entregar a saída certa; uma plataforma de dados que automatiza a interpretação do que chega; um dataset que reflete o que as pessoas vestem, o que têm no armário e como pensam sobre roupa; e um portfólio de propriedade intelectual.
02 · O APP COMO SENSOR
Aprender rápido com um produto pequeno
A equipe conta que lançou um alpha extremamente inicial, com uma funcionalidade-chave. Isso permitiu iterar com dados reais e obter muito retorno qualitativo.
Para achar as alavancas de retenção, o time usou coortes comportamentais e as rodou não só sobre as ações que as pessoas executavam, mas também sobre o valor que elas recebiam.
03 · PLATAFORMA DE DADOS
De dados caóticos a um grafo
Todo o conteúdo da Chicisimo é gerado pelos usuários, e isso impõe desafios: o sistema precisa classificar automaticamente tipos diferentes de conteúdo, criar os incentivos certos e entender como casar entrada e saída.
A equipe conta que o volume de dados, por ser caótico, não era acionável. A saída foi dar estrutura a partes dos dados, o que resultou no Social Fashion Graph, uma representação compacta de como necessidades, looks e pessoas se relacionam.
A equipe trata os looks como playlists: um look é uma combinação de itens que faz sentido consumir juntos. Com filtragem colaborativa, essas relações permitem recomendações em diferentes áreas do app.
O diagrama abaixo é uma ilustração didática dos papéis que o artigo descreve; a fila e o classificador são escolhas de desenho nossas, não detalhes da fonte.
Neste desenho, o app envia à API o que as pessoas criam e expressam: looks e necessidades.
A API publica o conteúdo novo numa fila para ser classificado depois.
O classificador consome a fila e consulta a ontologia para enquadrar o conteúdo.
O resultado vira relações no grafo entre necessidades, looks e pessoas.
O serviço de recomendação lê o grafo e devolve a resposta ao app pela API; o que a pessoa fizer a seguir realimenta o ciclo.
O artigo resume o efeito: a plataforma de dados cria um dataset de alta qualidade ligado ao app, que melhora a cada nova expressão de gosto. Ao mesmo tempo, enquanto as pessoas dão entrada e respondem à saída, a experiência as incentiva a dar mais entrada, o que alimenta a equipe com feedback e acumula dados. Esse laço entre produto e dados é o que se costuma chamar de data flywheel, termo que não é do artigo.
04 · ONTOLOGIA
Dar estrutura sem sufocar a expressão
O app foi feito para as pessoas expressarem uma necessidade de o-que-vestir. Havia ruído nos dados, e uma das maiores dificuldades era entender como as pessoas expressavam a mesma necessidade de moda de jeitos diferentes: quem precisa de ideias para ir à escola pode dizer isso de muitas maneiras diferentes. Para capturar e estruturar essa diversidade, a equipe construiu o que chama de ontologia de moda.
A ontologia é descrita como uma lista em vários níveis de todos os descritores necessários para definir um produto de moda ou um look, mais as relações entre eles. Segundo o texto, ela permite classificar conteúdo automaticamente por muitos fatores, casar catálogos diferentes com facilidade e dar à equipe uma linguagem comum.
Sobre a ontologia, o sistema converte produtos de moda em meta-produtos, abstrações de produtos específicos de qualquer catálogo ou armário. Um produto de moda é efêmero, mas seus descritores não são, então o sistema retém o valor. Uma das primeiras tarefas da infraestrutura é converter todo produto que chega em meta-produto.
Pessoas escrevem a mesma necessidade de formas diferentes; o normalizador recebe esse texto livre.
O normalizador consulta a ontologia para mapear as variações para uma mesma necessidade.
Do outro lado, itens de catálogos de lojas chegam ao conversor, que os descreve com os descritores da ontologia e produz meta-produtos.
Necessidades normalizadas e meta-produtos se encontram no grafo, que passa a usar um vocabulário só.
| Escolha | O que o artigo atribui a ela |
|---|---|
| Estruturar os dados | Deu controle. |
| Incentivar dados não estruturados | Deu conhecimento e flexibilidade. |
| Ter uma ontologia | Linguagem comum para a equipe e casamento entre catálogos. |
O texto conclui que um look, uma necessidade ou uma pessoa podem ter muitos dados compreensíveis associados, se o app deixa as pessoas se expressarem livremente e o sistema por trás é o certo.
05 · ALGORITMOS E LANÇAMENTO GRADUAL
Algoritmos sobre um dataset próprio
Segundo o autor, moda traz dificuldades próprias: não há um jeito fácil de casar um look a um produto comprável, e estilo é complexo de capturar e classificar por uma máquina.
Na versão publicada no HackerNoon, o autor afirma que ter o dataset certo permite focar nos casos de uso estreitos de recomendação de looks e entregar valor por meio dos algoritmos, em vez de gastar tempo coletando e limpando dados.
Nessa mesma versão, como já tinham um produto que as pessoas amavam, o time podia lançar resultados iniciais dos algoritmos parcialmente ocultos e aumentar sua presença conforme o feedback melhorasse os resultados.
O app pede recomendações à API.
Neste desenho, o caminho já estabelecido segue respondendo ao app.
O algoritmo novo roda ao lado, e sua saída aparece só em parte da experiência.
Os sinais de feedback orientam se a presença do algoritmo novo deve crescer.
Na versão publicada no HackerNoon, uma frente nova citada é adicionar ao grafo um quarto elemento, os produtos compráveis, com um sistema para casar looks e produtos automaticamente.
06 · LIÇÕES E LIMITES
O que levar para o seu desenho
Na versão do texto publicada no HackerNoon, o time era pequeno: oito pessoas, quatro em produto e quatro engenheiros. Já a versão atualizada do mesmo texto registra que a Chicisimo foi encerrada em outubro de 2020.
Lições para levar: trate o produto como sensor do dataset; dê estrutura de domínio aos dados; e lance modelos novos de forma gradual, guiada por feedback.
Perguntas frequentes
O que é Chicisimo: ML vertical em moda?
Arquitetura real em produção. Pontos centrais: data flywheel e ontologia de domínio.
O que o design de Chicisimo: ML vertical em moda cobre?
Ele está organizado nestas seções: Aconselhar o que vestir, de forma automática, Aprender rápido com um produto pequeno, De dados caóticos a um grafo, Dar estrutura sem sufocar a expressão, Algoritmos sobre um dataset próprio e O que levar para o seu desenho.
Quanto tempo leva Chicisimo: ML vertical em moda e qual é o nível?
Leva cerca de 12 minutos para ler e tem nível Júnior.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.