Treinamento da Softmax

A página anterior explicou como incorporar uma camada softmax em uma rede neural profunda para um sistema de recomendação. Veja nesta página uma análise mais detalhada dos dados de treinamento do sistema.

Dados de treinamento

Os dados de treinamento de softmax consistem nos recursos de consulta \(x\) e um vetor de itens com que o usuário interagiu (representados como uma distribuição de probabilidade \(p\)). Eles estão marcados em azul na figura a seguir. As variáveis do modelo são os pesos em diferentes camadas. Elas estão marcadas em laranja na figura a seguir. O modelo normalmente é treinado usando qualquer variante de gradiente descendente estocástico.

Imagem destacando o treinamento de uma rede neural profunda softmax

Amostragem negativa

Como a função de perda compara dois vetores de probabilidade\(p, \hat p(x) \in \mathbb R^n\) (a verdade empírica e a saída do modelo, respectivamente), calcular o gradiente da perda (para uma única consulta \(x\)) pode ser muito caro se o tamanho do corpus \(n\) for muito grande.

É possível configurar um sistema para calcular gradientes apenas nos itens positivos, ou seja, itens ativos no vetor de informações empíricas. No entanto, se o sistema só treinar somente em pares positivos, o modelo poderá sofrer dobras, conforme explicado abaixo.

Dobragem
Imagem de um plano que foi dobrado pela metade mostrando três grupos diferentes de quadrados que representam consultas e círculos que representam itens. Cada grupo tem uma cor diferente, e as consultas interagem apenas com itens do mesmo grupo. Na figura a seguir, suponha que cada cor represente uma categoria diferente de consultas e itens. Cada consulta (representada como um quadrado) interage principalmente com os itens (representados como um círculo) da mesma cor. Por exemplo, considere que cada categoria é um idioma diferente no YouTube. Um usuário típico interage principalmente com vídeos em um determinado idioma.

O modelo pode aprender a posicionar os embeddings de consultas/itens de uma determinada cor em relação uns aos outros (capturando com precisão a semelhança dentro dessa cor). No entanto, os embeddings de cores diferentes podem acabar na mesma região do espaço de embedding, por acaso. Esse fenômeno, conhecido como dobrar, pode levar a recomendações falsas: no momento da consulta, o modelo pode prever incorretamente uma pontuação alta para um item de um grupo diferente.

Exemplos negativos são itens rotulados como "quot;irrelevantes" para uma determinada consulta. Mostrar os exemplos negativos do modelo durante o treinamento ensina que os embeddings de grupos diferentes precisam ser afastados uns dos outros.

Em vez de usar todos os itens para calcular o gradiente (que pode ser muito caro) ou usar apenas itens positivos (o que torna o modelo propenso a dobrar), você pode usar amostragem negativa. Mais precisamente, você calcula um gradiente aproximado usando os seguintes itens:

  • Todos os itens positivos (aqueles que aparecem no rótulo de destino)
  • Uma amostra de itens negativos (\(j\) em \({1, …, n}\))

Há diferentes estratégias para amostragem negativa:

  • Você pode coletar amostras de maneira uniforme.
  • Você pode aumentar a probabilidade de itens j com maior pontuação \(\psi(x) . V_j\). Intuitivamente, esses são os exemplos que mais contribuíram para o gradiente. Esses exemplos costumam ser chamados de negativos negativos.

Fatoração de matriz x Softmax

Os modelos DNN resolvem muitas limitações da fatoração de matrizes, mas normalmente são mais caros de treinar e consultar. Veja na tabela abaixo algumas das diferenças importantes entre os dois modelos.

Fatoração de matrizes DNN do Softmax
Recursos de consulta Não é fácil de incluir. Pode ser incluído.
Inicialização a frio Não lida facilmente com consultas ou itens fora de vocabulário. Algumas heurísticas podem ser usadas. Por exemplo, para uma nova consulta, médias incorporadas de consultas semelhantes. Usa novas consultas com facilidade.
Dobragem O folding pode ser facilmente reduzido ajustando o peso não observado no WALS. Propenso a dobrar. Necessidade de usar técnicas como amostragem negativa ou gravidade.
Escalonabilidade de treinamento Escalonabilidade fácil para corpora muito grande (talvez centenas de milhões de itens ou mais), mas somente se a matriz de entrada for esparsa. Mais dificuldade para escalonar para corpora muito grande. É possível usar algumas técnicas, como hash, amostragem negativa etc.
Escalonabilidade de disponibilização Os embeddings U, V são estáticos, e um conjunto de candidatos pode ser pré-calculado e armazenado. Os embeddings de itens V são estáticos e podem ser armazenados.

A incorporação de consultas geralmente precisa ser calculada no momento da consulta, tornando o modelo mais caro para ser exibido.

Resumindo:

  • A fatoração de matriz é geralmente a melhor escolha para grandes corpora. Ele é mais fácil de escalonar, mais barato de consultar e menos propenso a dobrar.
  • Os modelos de DNN podem capturar melhor as preferências personalizadas, mas são mais difíceis de treinar e mais caros de consultar. Os modelos DNN são preferenciais para a fatoração de matriz para pontuação, porque os modelos DNN podem usar mais atributos para capturar melhor a relevância. Além disso, geralmente é aceitável que os modelos de DNN sejam dobrados, já que você se preocupa principalmente em classificar um conjunto pré-filtrado de candidatos considerados relevantes.