∑
Projeto Axioma
llms.newortho.com.br
Capa do módulo M2
M2 · 5 semanas

Álgebra linear

Significado é geometria.
Assistir ao filmeAbrir no EstúdioPraticar com o tutorVer em markdown

Vetores, produto escalar, matrizes e transformações. O módulo em que fica claro por que dois textos com sentido parecido ficam próximos no espaço de embeddings e o que uma multiplicação de matrizes realmente faz com a informação.

Um LLM é, do começo ao fim, uma sequência de multiplicações de matrizes intercaladas com não linearidades. Se você entende multiplicação de matrizes e produto escalar, entende a maquinaria inteira. Tudo o mais é detalhe de arranjo.

1. Vetor: uma lista e uma seta

Um vetor é uma lista ordenada de números. O vetor (3; 4) tem duas componentes. Um embedding de um token em um modelo moderno é um vetor com centenas ou milhares de componentes, algo como ℝ⁴⁰⁹⁶.

A segunda leitura, geométrica, é a que dá intuição: o mesmo vetor (3; 4) é uma seta que sai da origem e chega ao ponto três à direita e quatro acima. Direção e comprimento passam a significar alguma coisa.

Nos embeddings, essa geometria é literal. A direção do vetor carrega o significado, e a proximidade angular entre dois vetores é o que o modelo usa como medida de semelhança semântica. Não é metáfora, é a operação que roda.

2. Norma: o comprimento do vetor

A norma de um vetor, escrita entre barras duplas, é o seu comprimento. Em duas dimensões é o velho teorema de Pitágoras: raiz da soma dos quadrados das componentes. Em qualquer dimensão a fórmula é idêntica, só com mais termos.

Normalizar um vetor é dividi-lo pela própria norma, obtendo um vetor de comprimento um que aponta na mesma direção. Isso separa direção de magnitude, e é exatamente o que a normalização de camada faz dentro de um Transformer para manter as ativações em uma escala estável.

A norma de v é a raiz quadrada da soma dos quadrados de todas as componentes de v.
Cálculo à mão

Para v igual a (3; 4): a norma é a raiz de nove mais dezesseis, ou seja raiz de vinte e cinco, igual a cinco. O vetor normalizado é (0,6; 0,8), que ainda aponta na mesma direção mas tem comprimento um.

3. Produto escalar: a medida de concordância

O produto escalar de dois vetores multiplica componente por componente e soma tudo. O resultado é um único número, não um vetor, e por isso o nome escalar.

O que esse número significa: ele é positivo e grande quando os dois vetores apontam na mesma direção, próximo de zero quando são perpendiculares, e negativo quando apontam em direções opostas. É uma medida de concordância entre direções, ponderada pelos comprimentos.

Esta é a operação central da atenção. Quando um token pergunta quais posições anteriores importam para mim, o cálculo é literalmente o produto escalar entre a consulta desse token e as chaves de todas as outras posições. Concordância alta significa atenção alta.

O produto escalar de a com b é a soma dos produtos das componentes correspondentes, e equivale ao produto dos comprimentos vezes o cosseno do ângulo entre eles.
Três casos em números

Sejam a igual a (1; 0). Com b igual a (1; 0), o produto escalar é um, concordância máxima. Com b igual a (0; 1), é zero, perpendiculares, nenhuma relação. Com b igual a (−1; 0), é menos um, oposição. Três contas de dez segundos que fixam a intuição para sempre.

4. Similaridade do cosseno e o espaço de embeddings

O produto escalar cru mistura duas informações: o ângulo e os comprimentos. Para comparar significado, geralmente queremos só o ângulo, e por isso se divide pelo produto das normas. O resultado é o cosseno do ângulo, um número entre menos um e um.

Um cosseno perto de um significa direções quase idênticas, ou seja significados próximos. Perto de zero significa sem relação. Perto de menos um significa oposição. É essa a métrica usada em busca vetorial, em bancos como pgvector e em qualquer sistema de recuperação semântica.

Vale registrar o limite honesto da intuição famosa dos vetores de palavras: a ideia de que rei menos homem mais mulher dá rainha funciona em modelos clássicos de embedding e ajuda a construir a imagem mental, mas em modelos de linguagem grandes contemporâneos os embeddings são contextuais, mudam conforme a frase, e as relações não são tão limpas. Use a analogia para entender a geometria, não como descrição exata do que acontece dentro de um LLM.

A similaridade do cosseno entre a e b é o produto escalar dividido pelo produto das normas.

5. Matrizes e multiplicação

Uma matriz é uma tabela retangular de números, com linhas e colunas. A notação padrão diz que uma matriz é m por n quando tem m linhas e n colunas.

Multiplicar duas matrizes significa preencher cada célula do resultado com um produto escalar: a célula da linha i e coluna j do produto é o produto escalar entre a linha i da primeira matriz e a coluna j da segunda. Toda multiplicação de matrizes é, portanto, uma coleção organizada de produtos escalares.

Isso muda a percepção do que uma camada de rede neural faz. Quando você lê que uma camada multiplica a entrada por W, leia como: cada neurônio da camada calcula o produto escalar entre a entrada e a própria linha de pesos, medindo quanto a entrada concorda com o padrão que aquele neurônio aprendeu a procurar.

Multiplicação 2 por 2 completa

Sejam A com linhas (1, 2) e (3, 4), e B com linhas (5, 6) e (7, 8). A célula superior esquerda do produto é o produto escalar de (1, 2) com a coluna (5, 7), ou seja 1 vezes 5 mais 2 vezes 7, igual a 19. Seguindo o mesmo procedimento, o produto completo tem linhas (19, 22) e (43, 50). Faça esta conta à mão pelo menos três vezes ao longo do módulo.

6. Shapes: a álgebra das dimensões

Multiplicação de matrizes só é definida quando o número de colunas da primeira é igual ao número de linhas da segunda. Uma matriz m por n vezes uma n por p resulta em uma m por p. As dimensões internas precisam bater e desaparecem; as externas sobrevivem.

Esta regra é a ferramenta de depuração mais útil que existe para ler arquiteturas. Quando um paper diz que a entrada é de shape lote por sequência por dimensão do modelo, e que a projeção de consulta tem shape dimensão do modelo por dimensão da chave, você já sabe, sem ler mais nada, que a saída será lote por sequência por dimensão da chave.

Treine o hábito: ao encontrar qualquer multiplicação em um paper, escreva os shapes à margem antes de tentar entender o significado. Metade da compreensão vem daí.

Uma matriz m por n multiplicada por uma n por p resulta em uma matriz m por p. O n interno precisa coincidir e é consumido.

7. Transformação linear: o que a matriz faz com o espaço

A leitura mais profunda de uma matriz não é tabela de números, é função que transforma o espaço inteiro. Multiplicar todos os pontos de um quadrado por uma matriz produz um paralelogramo: o espaço foi esticado, girado ou espelhado, mas linhas retas continuam retas e a origem fica no lugar.

Uma camada de rede neural é exatamente isso, uma transformação do espaço, seguida de uma função não linear que dobra o espaço de um jeito que a matriz sozinha não conseguiria. Empilhar camadas é empilhar transformações, e é dessa composição que sai a capacidade de representar relações complicadas.

A animação do laboratório deste módulo mostra a transformação acontecendo. Mexa nos coeficientes e observe o que cada um faz ao quadrado unitário; é a forma mais rápida de transformar a definição em intuição.

Exercícios

Tente responder antes de abrir.

1. Calcule o produto escalar de (2; −1; 3) com (0; 4; 1).
Dois vezes zero é zero, menos um vezes quatro é menos quatro, três vezes um é três. Soma: menos um.
2. Qual a norma de (0; 3; 4)?
Raiz de zero mais nove mais dezesseis, igual a raiz de vinte e cinco, igual a cinco.
3. Se a similaridade do cosseno entre dois embeddings é 0,02, o que isso diz?
Que os vetores são praticamente perpendiculares, ou seja não há relação semântica detectável entre eles nesse espaço.
4. Uma matriz 4 por 8 multiplica uma 8 por 2. Qual o shape do resultado, e o que aconteceria com uma 2 por 8?
O resultado é 4 por 2. Com uma 2 por 8 a operação é indefinida, porque oito colunas não casam com duas linhas.
5. Multiplique à mão A com linhas (2, 0) e (1, 3) por B com linhas (1, 4) e (2, 5).
Linha um: 2 vezes 1 mais 0 vezes 2 é 2; 2 vezes 4 mais 0 vezes 5 é 8. Linha dois: 1 vezes 1 mais 3 vezes 2 é 7; 1 vezes 4 mais 3 vezes 5 é 19. Resultado: linhas (2, 8) e (7, 19).

Trilhos do tutor

Dúvidas frequentes

Qual é a diferença real entre produto escalar e similaridade do cosseno?
O produto escalar mistura duas informações em um número só: o ângulo entre os vetores e o comprimento de cada um. A similaridade do cosseno é esse mesmo produto escalar dividido pelo produto das normas, o que elimina os comprimentos e deixa apenas o ângulo. Na prática, o produto escalar cresce se você simplesmente alongar um dos vetores, enquanto o cosseno não muda. Por isso o cosseno é a métrica usada quando se quer comparar significado, e o produto escalar cru é o que aparece dentro da atenção, onde a magnitude também carrega informação.
Por que o produto escalar devolve um número só, e não um vetor?
Porque a última operação da fórmula é uma soma. Você multiplica componente por componente, o que ainda produz uma lista, mas em seguida soma todos esses produtos, e uma soma de números é um número. O nome escalar vem exatamente daí: o resultado é uma grandeza sem direção, apenas magnitude e sinal. É por isso que uma célula de uma matriz produto guarda um único valor, mesmo tendo nascido de dois vetores inteiros.
A norma de um vetor pode dar negativa?
Não. Cada componente entra elevada ao quadrado, e quadrado nunca é negativo, então a soma dentro da raiz é sempre maior ou igual a zero. A raiz quadrada dessa soma também é tomada como positiva. O único vetor com norma zero é o vetor de todas as componentes zero. Se você chegou a um número negativo, quase sempre foi por ter somado as componentes cruas em vez de somar os quadrados delas.
Preciso decorar a fórmula da norma para vetores de milhares de dimensões?
A fórmula é a mesma, só com mais termos. Em duas dimensões você soma dois quadrados, em quatro mil e noventa e seis você soma quatro mil e noventa e seis quadrados, e o resto do procedimento não muda em nada. O que vale decorar é a estrutura, quadrados primeiro, soma depois, raiz por último. A conta em si nunca será feita à mão em dimensão alta, mas a leitura da notação sim, e é ela que este módulo cobra.
Se a similaridade do cosseno entre dois embeddings deu 0,02, isso é bom ou ruim?
Não é bom nem ruim, é uma informação: significa que os vetores estão praticamente perpendiculares. Em um espaço de embeddings, isso quer dizer que não há relação semântica detectável entre os dois itens naquele espaço. Se você esperava que fossem parecidos, o valor indica que o modelo não enxerga essa semelhança. Para comparação, proximidade real costuma aparecer como cosseno claramente acima de zero, tendendo a um, e oposição aparece como valor negativo tendendo a menos um.
Por que a multiplicação de matrizes não é comutativa?
Porque a definição não é simétrica: da matriz da esquerda se leem linhas e da matriz da direita se leem colunas. Ao trocar a ordem, você troca quem entra como linha e quem entra como coluna, e os produtos escalares passam a ser entre vetores diferentes. Com A de linhas (2, 0) e (1, 3) e B de linhas (1, 4) e (2, 5), a célula superior esquerda vale dois em uma ordem e seis na outra. Em muitos casos a inversão nem é definida, porque as dimensões internas deixam de bater.
Como eu sei rapidamente se uma multiplicação de matrizes é possível?
Escreva os dois shapes lado a lado, na ordem em que aparecem, e olhe apenas para os dois números do meio. Se eles forem iguais, a operação existe e o resultado tem como shape os dois números das pontas. Se forem diferentes, a operação é indefinida e não há o que calcular. Uma matriz 4 por 8 vezes uma 8 por 2 funciona e devolve 4 por 2, enquanto a mesma 4 por 8 vezes uma 2 por 8 não funciona, porque oito não casa com dois.
O que quer dizer, na prática, um shape lote por sequência por dimensão do modelo?
É a mesma regra de shapes com um eixo a mais na frente. O eixo de lote conta quantos exemplos estão sendo processados juntos, o de sequência conta quantos tokens tem cada exemplo, e o de dimensão do modelo conta quantos números descrevem cada token. Nas multiplicações, o eixo de lote costuma ficar parado enquanto os dois últimos seguem a regra usual, com a dimensão interna sendo consumida. Por isso multiplicar por uma projeção de dimensão do modelo por dimensão da chave produz lote por sequência por dimensão da chave.
Aquela história de rei menos homem mais mulher dar rainha é verdade?
Funciona em modelos clássicos de embedding de palavras e serve muito bem para construir a imagem mental de que direções carregam significado. Em modelos de linguagem grandes contemporâneos, porém, os embeddings são contextuais, ou seja, mudam conforme a frase em que a palavra aparece, e essas relações deixam de ser tão limpas. Use a analogia para entender a geometria e desconfie dela como descrição literal do que acontece dentro de um modelo atual.
Por que normalizar os vetores antes de compará-los?
Porque comprimento e direção carregam informações diferentes, e para comparar significado geralmente interessa só a direção. Um vetor pode ser longo apenas porque o texto era maior ou porque as ativações tinham escala alta, sem que isso diga nada sobre o conteúdo. Ao normalizar, todos os vetores passam a ter comprimento um e a comparação fica sendo puramente angular. Comparar vetores já normalizados por produto escalar é, aliás, exatamente a mesma coisa que calcular a similaridade do cosseno.
O que é uma transformação linear, em uma frase?
É uma função que transforma o espaço inteiro esticando, girando ou espelhando, de modo que retas continuam retas e a origem permanece no lugar. Toda matriz representa uma dessas funções, e aplicar a matriz a um vetor é justamente perguntar para onde aquele ponto foi. A imagem canônica é o quadrado unitário virando um paralelogramo. Se você quiser um teste rápido, verifique se a origem ficou parada: se saiu do lugar, a transformação não é linear.
Se a matriz já transforma o espaço, para que serve a função não linear?
Porque compor transformações lineares devolve outra transformação linear. Sem algo entre elas, empilhar oitenta camadas teria exatamente o mesmo poder de representação de uma única camada, o que tornaria a profundidade inútil. A função não linear dobra o espaço de um jeito que nenhuma matriz consegue sozinha, e é a alternância entre esticar e dobrar que permite representar relações complicadas. É por isso que toda arquitetura intercala multiplicação de matrizes com não linearidade.
Embedding e vetor são a mesma coisa?
Todo embedding é um vetor, mas nem todo vetor é um embedding. Vetor é o objeto matemático, uma lista ordenada de números que também pode ser lida como uma seta. Embedding é o nome que se dá ao vetor quando ele foi produzido para representar alguma coisa, um token, uma frase, uma imagem, de modo que a posição no espaço carregue significado. A matemática é idêntica nos dois casos, o que muda é a interpretação.
Onde exatamente o produto escalar aparece dentro da atenção?
No cálculo dos escores. Quando um token pergunta quais posições anteriores importam para ele, o modelo faz o produto escalar entre a consulta desse token e as chaves de todas as outras posições. Concordância alta entre consulta e chave produz escore alto, que depois vira atenção alta. Como isso é feito para todos os pares de posições de uma vez, o cálculo inteiro é escrito como uma multiplicação de matrizes, que nada mais é do que uma coleção organizada desses produtos escalares.
Como visualizar um vetor de quatro mil e noventa e seis dimensões?
Não tente. Ninguém visualiza mais do que três dimensões, e a boa notícia é que não é preciso. Pense em duas ou três dimensões para construir a intuição de direção, comprimento e ângulo, e confie que todas as fórmulas continuam valendo com mais termos. O que muda em dimensão alta é apenas o número de parcelas nas somas, nunca a lógica da operação. A geometria mental de duas dimensões é uma bengala legítima, desde que você saiba que é uma bengala.

Checkpoint

Oitenta por cento de acerto libera o módulo seguinte.

1. O que o produto escalar mede, em uma frase?
O quanto dois vetores apontam na mesma direção, ponderado pelos seus comprimentos.
2. Por que se divide pelo produto das normas na similaridade do cosseno?
Para isolar o ângulo e eliminar a influência do comprimento dos vetores.
3. Explique a multiplicação de matrizes em termos de produtos escalares.
Cada célula do resultado é o produto escalar entre uma linha da primeira matriz e uma coluna da segunda.
4. Qual regra de shapes governa a multiplicação?
As dimensões internas precisam ser iguais e somem; as externas formam o shape do resultado.
5. O que uma matriz faz geometricamente com um quadrado unitário?
Transforma o quadrado em um paralelogramo, esticando, girando ou espelhando o espaço, mantendo retas retas e a origem fixa.

Bibliografia

Introduction to Linear AlgebraGilbert Strang, 6ª edição, Wellesley-Cambridge Press, 2023Capítulos 1 a 3O livro-texto de referência mundial em álgebra linear, e a base do curso 18.06 do MIT. A abordagem por colunas de Strang é exatamente a intuição que serve para entender embeddings.
Álgebra Linear e suas AplicaçõesDavid C. Lay, Steven Lay e Judi McDonald, edição brasileira, LTCCapítulos de sistemas lineares, transformações lineares e ortogonalidadeAlternativa em português, com exercícios graduados. Bom complemento ao Strang para quem quer treinar cálculo manual.
Mathematics for Machine LearningDeisenroth, Faisal e Ong, Cambridge University Press, 2020, livro abertoCapítulos 2 e 3Álgebra linear já escrita na direção de aprendizado de máquina, com produto interno e normas tratados como ferramentas de similaridade.

Vídeos curados

Essence of Linear Algebra, série completa3Blue1Brown

Assista os capítulos 1 a 4 e o 9. É o melhor material de intuição geométrica que existe e cabe no ritmo do módulo.

Álgebra linearKhan Academy Brasil

Alternativa em português com exercícios corrigidos, útil para a prática de recuperação.

Mathematics for Machine Learning, capítulo 2Deisenroth, Faisal e Ong

Referência de consulta. Leia as seções que você precisar, não o capítulo inteiro.