Cruzamentos de atributos: não linearidade da codificação

Nas Figuras 1 e 2, imagine o seguinte:

  • Os pontos azuis representam árvores doentes.
  • Os pontos laranja representam árvores saudáveis.

Os pontos azuis ocupam o quadrante nordeste, e os laranjas ocupam o quadrante sudoeste.

Figura 1. Isso é um problema linear?

Vocês conseguem traçar uma linha que separa perfeitamente as árvores doentes das árvores saudáveis? Claro. Isso é um problema linear. A linha não será perfeita. Uma ou duas árvores doentes podem estar do lado "quo positivo", íntegro, mas sua linha será um bom preditor.

Veja a figura a seguir:

Os pontos azuis ocupam os quadrantes nordeste e sudoeste. Os pontos laranja ocupam os quadrantes noroeste e sudeste.

Figura 2. Isso é um problema linear?

Você consegue desenhar uma única linha reta que separa claramente as árvores doentes das árvores saudáveis? Não, isso não é possível. Esse problema não é linear. Qualquer linha desenhada será um preditor ruim da saúde da árvore.

Mesmo desenho que a Figura 2, exceto por uma linha horizontal que quebra o plano. Os pontos azuis e laranjas estão acima da linha; os pontos azuis e laranjas estão abaixo da linha.

Figura 3. Uma única linha não consegue separar as duas classes.

 

Para resolver o problema não linear mostrado na Figura 2, crie um cruzamento de atributos. Um cruzamento de atributos é um atributo sintético que codifica a não linearidade no espaço de atributos multiplicando dois ou mais atributos de entrada. O termo cruzado vem de produto cruzado. Vamos criar um cruzamento de atributos com o nome \(x_3\) cruzando \(x_1\) e \(x_2\):

$$x_3 = x_1x_2$$

Tratamos esse cruzamento de atributos \(x_3\) recém-formado como qualquer outro atributo. A fórmula linear fica assim:

$$y = b + w_1x_1 + w_2x_2 + w_3x_3$$

Um algoritmo linear pode aprender um peso para \(w_3\) da mesma forma que para \(w_1\) e \(w_2\). Em outras palavras, mesmo que \(w_3\) codifique informações não lineares, você não precisa mudar como o modelo linear é treinado para determinar o valor de \(w_3\).

Tipos de cruzamentos de atributos

Podemos criar muitos tipos diferentes de cruzamentos de atributos. Exemplo:

  • [A X B]: um cruzamento de atributos formado pela multiplicação de valores de dois atributos.
  • [A x B x C x D x E]: um cruzamento de atributos formado pela multiplicação de valores de cinco atributos.
  • [A x A]: um cruzamento de atributos formado pelo multiplicação do valor de um único atributo por si mesmo.

Graças ao gradiente estocástico, os modelos lineares podem ser treinados de forma eficiente. Consequentemente, complementar os modelos lineares escalonados com cruzamentos de atributos tem sido uma maneira eficiente de treinar em conjuntos de dados em grande escala.