antonio leandro

ia generativa

Efficient Estimation of Word Representations in Vector Space

paper · núcleo · Mikolov, Tomas, Chen, Kai, Corrado, Greg, Dean, Jeffrey · · ~29 min de leitura do original

a tese

o gargalo era a camada escondida: sem ela o modelo prevê pior e treina em bilhões de palavras — e o espaço que sobra é linear o bastante para rei − homem + mulher cair em rainha

o que fica

  1. O custo de um modelo de linguagem neural vive no produto N×D×H entre projeção e camada escondida; tirar essa camada troca o gargalo por D×log2(V) e muda a escala do que dá para treinar.
  2. CBOW e skip-gram se dividem o mérito: com os mesmos dados e 640 dimensões, o skip-gram acerta 55% das perguntas semânticas contra 24% do CBOW, e o CBOW acerta 64% das sintáticas contra 59%.
  3. Aumentar só a dimensão do vetor ou só o volume de dados dá retorno decrescente rápido; os dois precisam subir juntos, e dobrar cada um custa aproximadamente o mesmo.
  4. Uma única época sobre o dobro dos dados dá resultado igual ou melhor que três épocas sobre os mesmos dados, e ainda termina antes.
  5. O modelo não recebe nenhuma informação sobre morfologia da palavra, então 100% no teste é impossível por construção e sinônimos são contados como erro.
  6. O skip-gram sozinho tira 48,0% no Sentence Completion da Microsoft, abaixo da similaridade por LSA; só combinado com RNNLMs chega a 58,9%. Vetor bom não é modelo de linguagem bom.

o problema

Em 2013 a NLP de produção tratava palavra como índice em vocabulário: átomo sem interior, sem noção de que “cachorro” e “gato” têm algo em comum. Isso não era burrice, era engenharia. N-gram é simples, robusto e treina em trilhões de palavras, e modelo simples com muito dado costumava ganhar de modelo complexo com pouco. O problema é que em várias tarefas o dado acaba. Reconhecimento de fala depende de transcrição de qualidade, que existe na casa dos milhões de palavras. Tradução automática, para a maioria dos idiomas, tem alguns bilhões e ponto final. Onde não dá para escalar o dado, sobra escalar o método.

O método melhor já existia: representações distribuídas aprendidas por rede neural, que batiam N-gram. Só que ninguém tinha conseguido treinar nenhuma das arquiteturas propostas em mais que algumas centenas de milhões de palavras, com vetores de 50 a 100 dimensões. O modelo neural de linguagem feedforward gastava a maior parte do compute na camada escondida não-linear entre a projeção e a saída — e essa camada é justamente a parte que não interessa a quem só quer os vetores. Estava se pagando o preço de um modelo de linguagem inteiro para levar embora o subproduto.

a ideia

Se o objetivo é o vetor e não a previsão, corte tudo que serve só à previsão. Os autores tiram a camada não-linear e ficam com um classificador log-linear sobre a camada de projeção. O modelo resultante prevê pior — e treina em ordens de grandeza mais dado, o que compensa com folga.

O que sustenta a aposta é uma observação anterior: a similaridade entre esses vetores não é escalar, é direcional. Existe uma direção que significa plural, outra que significa capital-de-país, outra que significa feminino. Daí a aritmética: vector(“biggest”) − vector(“big”) + vector(“small”) cai perto de “smallest”. O paper trata isso como métrica, não como curiosidade, e monta um teste com 8.869 perguntas semânticas e 10.675 sintáticas onde a resposta só conta se for o vizinho mais próximo exato.

como funciona

São duas arquiteturas. No CBOW, quatro palavras antes e quatro depois entram, seus vetores são somados na mesma posição de projeção — a ordem se perde, daí “bag of words” — e o modelo classifica qual é a palavra do meio. Custo por exemplo: N×D + D×log2(V). No skip-gram, o caminho inverte: a palavra atual entra e o modelo prevê as vizinhas. Com janela máxima C, sorteia-se R entre 1 e C por palavra e fazem-se 2R classificações; palavras distantes são amostradas menos, porque importam menos. Custo: C×(D + D×log2(V)). Nos experimentos, C = 10.

O log2(V) vem da hierarchical softmax com árvore de Huffman sobre o vocabulário: palavra frequente ganha código binário curto, e com vocabulário de um milhão isso dobra a velocidade de avaliação frente a uma árvore balanceada. Numa rede com camada escondida esse ganho seria marginal; sem ela, a normalização da saída vira o custo dominante e o detalhe passa a valer.

O treino é SGD com backpropagation, learning rate inicial de 0,025 caindo linearmente até zero. O corpus é o Google News, cerca de 6 bilhões de tokens, vocabulário cortado no milhão de palavras mais frequentes. No DistBelief, com 50 a 100 réplicas e Adagrad, o skip-gram de 1.000 dimensões sobre os 6 bilhões chega a 65,6% de acerto total em 2,5 dias × 125 cores; o NNLM de 100 dimensões chega a 50,8% em 14 × 180.

o que isso custou

O modelo não sabe nada sobre a forma da palavra. Os próprios autores dizem que 100% é inatingível: sem morfologia, boa parte das perguntas sintáticas depende de o vetor ter memorizado cada flexão como item separado. Sinônimo conta como erro, e entidades de mais de um token — “New York” — ficaram de fora do teste.

Cada arquitetura falha onde a outra vence, e não há uma que domine: skip-gram para semântica, CBOW para sintaxe e para velocidade (um dia contra três, numa CPU). E os vetores não substituem um modelo de linguagem: no Sentence Completion da Microsoft, o skip-gram sozinho fica em 48,0%, abaixo da LSA. Só a combinação com RNNLMs chega a 58,9%. O que se ganhou foi um bom espaço de representação, não um bom preditor.

onde isso aparece hoje

A limitação de morfologia foi endereçada de frente por Neural Machine Translation of Rare Words with Subword Units, que quebra a palavra em pedaços em vez de tratá-la como átomo — hoje todo tokenizer de LLM é descendente dessa linha. A camada de embedding que abre qualquer transformer é a mesma ideia, agora treinada junto com o resto em vez de antes. E a noção de que texto vira ponto num espaço onde proximidade significa sentido é o pressuposto de Sentence-BERT, de Dense Passage Retrieval e de toda a infraestrutura de busca vetorial que veio depois, como o HNSW.

lido na íntegra por pipeline de llm, revisado por antonio leandro antes de publicar ·