Treinamento de softmax

A página anterior explicou como incorporar uma camada de softmax em um pipeline para um sistema de recomendação. Esta página traz mais detalhes sobre o dados de treinamento para esse sistema.

Dados de treinamento

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

Imagem destacando o treinamento de uma rede neural profunda de softmax

Amostragem negativa

Como a função de perda compara dois vetores de probabilidade \(p, \hat p(x) \in \mathbb R^n\) (informações empíricas e a saída do modelo, respectivamente), calculando gradiente de 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 (itens ativos no vetor de informações empíricas). No entanto, se o sistema que só treina em pares positivos, o modelo pode ficar dobrado, porque explicado abaixo.

Dobragem
Imagem de um plano que foi dobrado ao meio, mostrando três grupos diferentes de quadrados representando consultas e círculos representando 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 representa uma uma categoria de consultas e itens. Apenas cada consulta (representada como um quadrado) interage principalmente com itens (representados como um círculo) da mesma cor. Por exemplo, considere cada categoria como um idioma diferente no YouTube. Um usuário típico interage principalmente com vídeos em um determinado idioma.

O modelo pode aprender a colocar os embeddings de consulta/item de um determinado cor em relação umas às outras (capturando corretamente a similaridade dentro desse cor), mas embeddings de cores diferentes podem acabar na mesma região do espaço de embedding, por acaso. Esse fenômeno, conhecido como dobra, pode levar a recomendações falsas: no momento da consulta, o modelo pode prever incorretamente uma pontuação alta para um item de um um grupo diferente.

Exemplos negativos são itens marcados como "irrelevantes" a uma determinada consulta. Mostrar os exemplos negativos do modelo durante o treinamento ensina o modelo que embeddings de diferentes grupos devem 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 dobrável), use a amostragem negativa. Mais precisamente, você calcula o gradiente aproximado com 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 fazer a amostragem de negativos:

  • A amostragem pode ser feita de maneira uniforme.
  • Você pode dar uma probabilidade maior aos itens j com pontuação \(\psi(x) . V_j\). Intuitivamente, estes são exemplos que mais contribuem para o gradiente). esses exemplos geralmente são chamados de negativos rígidos.
.

Fatoração de matrizes versus softmax

Os modelos de DNN resolvem muitas limitações da fatoração de matrizes, mas são normalmente mais caros para treinar e consultar. A tabela abaixo resume alguns dos diferenças importantes entre os dois modelos.

Fatoração de matrizes DNN Softmax
Recursos de consulta Não é fácil de incluir. Pode ser incluído.
Inicialização a frio Dificuldade para lidar facilmente fora do vocabulário consultas ou itens. Algumas heurísticas podem ser usadas (por exemplo, para um nova consulta, média de embeddings de consultas semelhantes). Processa facilmente novas consultas.
Dobragem A dobra pode ser facilmente reduzida ajustando o peso não observado na WALS. Propenso a dobrar. Necessário usar como amostragem negativa ou gravidade.
Escalonabilidade do treinamento Facilmente escalonável para muito grandes corpora (talvez centenas de milhões de itens ou mais), mas somente se o matriz de entrada é esparsa. Mais difíceis de escalonar para muito grandes corpora. Algumas técnicas podem ser usadas, como hash, amostragem negativa etc.
Escalonabilidade de veiculação Os embeddings U e 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.

O embedding de consultas geralmente que precisa ser calculado no momento da consulta, tornando o modelo mais caro para atender.

Resumindo:

  • Normalmente, a fatoração de matrizes é a melhor escolha para corpora grandes. É mais fácil de dimensionar, mais barato de consultar e menos propenso a dobrar.
  • Os modelos de DNN capturam melhor as preferências personalizadas, mas mais difíceis de treinar e mais caras para consultar. Modelos de DNN são preferidos à fatoração de matrizes para pontuação porque os modelos DNN podem usar mais recursos para capturar melhor a relevância. Além disso, geralmente é aceitáveis para os modelos de DNN se dobrarem, porque o mais importante é classificação de um conjunto pré-filtrado de candidatos considerados relevantes.