Por que precisamos de 2 matrizes para word2vec ou GloVe


10

Word2vec e GloVe são as duas palavras mais conhecidas que incorporam métodos. Muitos trabalhos apontaram que esses dois modelos são realmente muito próximos um do outro e que, sob algumas suposições, eles realizam uma fatoração matricial dos ppmi das co-ocorrências das palavras no corpus.

Ainda assim, não consigo entender por que realmente precisamos de duas matrizes (e não uma) para esses modelos. Não poderíamos usar o mesmo para U e V? Existe um problema com a descida do gradiente ou há outro motivo?

Alguém me disse que isso pode acontecer porque os agrupamentos u e v de uma palavra devem ser suficientemente distantes para representar o fato de que uma palavra raramente aparece em seu próprio contexto. Mas não está claro para mim.


Suas dimensões são diferentes; como você pode usar a mesma matriz? Mas eles vivem no mesmo espaço latente.
Emre

11
Eles têm as mesmas dimensões (número de palavras do vocabulário x incorporação dimensão)
Robin

Respostas:


6

Pode não ser a resposta que você está procurando, mas ainda vou tentar:

Primeiro, uma rápida revisão do word2Vec, suponha que estamos usando o recurso ignorar grama.

Um modelo típico para treinamento em Word2Vec consiste em 1 camada de entrada (por exemplo, 10.000 vetores quentes de um ano), uma camada oculta (por exemplo, 300 neurônios), uma saída (10.000 vetores quentes de um ano)

  • Entrada: 10 000
  • Oculto: 300
  • Saída: 10 000

Existe uma matriz E entre a entrada oculta e a descrição dos pesos para transformar o seu um quente em uma incorporação. A matriz é especial porque cada coluna (ou linhas, dependendo da notação preferida) representa pré-ativações nesses 300 neurônios - uma resposta a um vetor 1-hot correspondente.

Você não precisa executar nenhuma ativação nesses 300 neurônios e pode usar seus valores imediatamente como uma incorporação em qualquer tarefa futura.


No entanto, simplesmente apertar uma representação quente em uma representação tridimensional não é suficiente - deve ter um significado. E garantimos que esse significado esteja correto usando uma segunda matriz adicional - que conecta Oculto à Saída

Não queremos ativar uma camada oculta porque a função de ativação não será necessária durante o tempo de execução; no entanto, nesse caso, precisaremos de uma segunda matriz, passando de Oculto para Saída.

Essa segunda matriz criará uma totalmente diferente da sua incorporação. Essa palavra quente representará a palavra mais provável de estar próxima (contextualmente) da palavra quente original. Em outras palavras, essa saída não será a sua original.

É por isso que uma segunda matriz é necessária. Na saída, executamos um softmax, como em um problema de classificação.

Isso nos permite expressar uma relação "palavra" -> incorporação -> "contexto-vizinha-palavra"

Agora, a retropropagação pode ser feita para corrigir os pesos de entrada oculta (sua primeira matriz E) - esses são os pesos com os quais realmente nos importamos. Isso porque a Matriz E pode ser usada durante o Tempo de Execução (eu acho), talvez sendo conectada como uma primeira camada totalmente conectada a alguma Rede Neural Recorrente.

Nesse caso, você não usaria isso:

Você não precisa executar nenhuma ativação nesses 300 neurônios e pode usar seus valores imediatamente como uma incorporação em qualquer tarefa futura

mas, em vez disso, basta pegar a coluna (ou linha, dependendo da notação preferida) apropriada dessa matriz, durante o tempo de execução. O benefício é que, dessa maneira, você obtém uma camada totalmente conectada, pré-treinada e barata, projetada para funcionar com um ponto de acesso. Geralmente, as primeiras camadas seriam mais longas para treinar, devido ao problema do gradiente de fuga.


Por que uma segunda matriz é necessária durante o treinamento:

Mais uma vez, lembre-se, não há ativação na camada oculta.

Podemos ditar à rede o que "one-hot" deve ter sido criado em resposta à sua "entrada one-hot" original e podemos punir a rede se ela não conseguir gerar uma resposta correta.

Não podemos colocar o softmax diretamente após a camada oculta, porque estamos interessados ​​em convocar um mecanismo para converter em incorporação. Isso já é responsabilidade de uma primeira matriz E. Portanto, precisamos de uma etapa extra (uma matriz extra) que nos dê espaço suficiente para concluirmos agora na camada de saída sobre uma palavra vizinha diferente, mas semelhante (contextual)

Durante o tempo de execução, você joga fora a segunda matriz. Mas não exclua-o permanentemente, caso precise voltar e continuar treinando seu modelo.


Para o word2vec, na prática, realizamos uma descida de gradiente da camada de saída do contexto, passando pelos incorporados à camada da palavra de entrada. Mas nada impede que você tenha a mesma matriz para o que você chama de matriz extra. Além disso, ao calcular os casamentos, você pode realmente somar (ou concat) essas duas matrizes e alguns documentos relatam que você tem casamentos ainda melhores. Concordo que, se você considerar o modelo neural, tudo isso faz sentido, mas deve haver uma explicação para que precisamos que sejam duas entidades diferentes.
19618 Robin

Em outras palavras, você poderia buold você modelo como este: camada de entrada * incorporação de matriz => embeddings / embeddings * transposta de cama camada de matriz => saída
Robin

Nesse caso, eu estaria interessado nessa informação, se isso é realmente possível. Sugiro enviar um email para todos os cinco autores separadamente e, explicando o problema, um deles certamente responderá. Os autores daqui Por favor, diga o resultado se a abordagem é viável
Kari

Talvez esteja relacionado com o custo da computação matriz inversa (em cada iteração) - seria muito grande suponho
Kari

11
A transposição não é inversa. A única coisa não padronizada no que o debzsud propõe seria o compartilhamento de peso entre as camadas, para que você precise calcular a retropropagação com pesos compartilhados - o que deve ser possível. Suponho que a única questão é se duas vezes menos parâmetros são suficientes para resolver o mesmo problema. Não deve ser muito difícil de implementar e comparar a si mesmo.
Valentas

3

por que realmente precisamos de duas matrizes (e não uma) para esses modelos. Não poderíamos usar o mesmo para U e V?

Em princípio, você está certo, nós podemos. Mas não queremos, já que o aumento do número de parâmetros é benéfico na prática, mas e o significado dos vetores?

O que dizem os jornais?

Word2vec : existe apenas uma menção de vetores de entrada / saída apenas para introduzir as variáveis.

GloVe : "a distinção entre uma palavra e uma palavra de contexto é arbitrária e que somos livres para trocar os dois papéis".

Justificativa fraca:

Pares de vetores (palavra, contexto), também denominados (destino, origem) ou (saída, entrada), são usados ​​para refletir duas funções diferentes que uma única palavra desempenharia. No entanto, como uma palavra desempenha papéis de "alvo" e "contexto" na mesma frase, a justificativa é fraca. Por exemplo, na frase "eu amo aprendizado profundo", apósP(deep|eueumarnEung), deep é um alvo, mas o próximo P(eueumarnEung|deep), é um contexto, apesar do fato de que deeptem a mesma semântica em toda a frase. Podemos concluir que essa separação não é apoiada pelos dados.

Portanto, no caso da incorporação de palavras, essa separação é apenas uma história para o aumento de desempenho que obtemos ao aumentar o número de parâmetros, nada mais profundo.

Justificativa sólida:

No entanto, em uma tarefa como a incorporação de nó em redes direcionadas, a justificativa é sólida porque as funções são refletidas no nível dos dados . Por exemplo, para um link(uma,b), uma é a fonte que é semanticamente diferente de estar no final de recebimento do link b. Um nó de origem nunca desempenha a função "destino", a menos que seja um destino em outro link. Portanto, você pode esperar uma separação significativa da semântica usando representações de destino (origem) para os nós de destino (origem). Essa justificativa falha nos gráficos não direcionados da mesma forma que a incorporação de palavras.

Em alguns artigos, os autores até optam por quatro representações com base em funções adicionais que uma entidade desempenha no nível dos dados, o que é semanticamente justificável e aumenta ainda mais o desempenho.

Conclusão:

Toda a premissa é "se o aumento no número de parâmetros compensa, faça-o. Se for semanticamente justificável, melhor ainda".

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.