Eu estava lendo o modelo word2vec padrão / famoso e de acordo com as notas do standord para cs224n, a função objetivo muda de:
para:
ou
Fiquei me perguntando, de onde vem a segunda função objetiva? De onde vem a amostragem negativa? Não preciso de uma prova / derivação rigorosa, mas qualquer tipo de justificativa seria bom. Uau, o segundo está se aproximando do primeiro? Em algum sentido? Áspero, aproximação, intuitivo, há algo para justificar isso?
Note que entendo que há um ganho de velocidade. Estou mais interessado em entender o que pode ter sido o processo de pensamento para derivar o que foi dito acima, enquanto ainda quero otimizar a função original ou ter boas combinações de palavras.
Meus próprios pensamentos:
Seja a probabilidade de que um determinado par palavra e contexto venha dos dados do corpus. Considere (ou seja, vamos ver as coisas como maximizando probabilidades). Parece que maximizar o primeiro termo gera corretamente dois vetores de palavras que são correlacionados, pois para tornar grande um pode tornar o primeiro termo grande tornando o primeiro termo próximo de 1, o que pode ser alcançado com o produto interno de os vetores grandes.
No entanto, parece-me que o segundo termo está realmente nos motivando a recuperar representações de palavras ruins . Vamos analisar qual é o segundo termo:
podemos aumentar o termo acima aumentando grande, o que significa que pequeno (próximo a zero "probabilidade"). Isso significa que queremos um argumento muito negativo para o sigmóide. O que significa que obtemos vetores com um grande produto interno negativo. Isso me parece meio errado, porque se o produto interno fosse zero, ou seja, as palavras fossem perpendiculares, seria um objetivo melhor. Por que eles escolheram o outro? Palavras perpendiculares não seriam melhores? isto é, se as palavras não são semelhantes e, portanto, não estão correlacionadas, elas não têm nada a ver uma com a outra e, portanto, têm zero produto interno.
Essencialmente, por que o produto interno negativo é um melhor senso de similaridade de palavras do que o produto interno que é zero?
Respostas:
A resposta à pergunta referenciada por @amoebasaysReinstateMonica no comentário da sua pergunta responde muito bem, mas eu gostaria de fazer dois pontos.
Primeiro, para expandir um ponto nessa resposta, o objetivo que está sendo minimizado não é o log negativo da função softmax. Pelo contrário, é definida como uma variante da estimativa contrastiva de ruído (NCE), que se resume a um conjunto de regressões logísticas. Um é usado para a amostra positiva (isto é, a palavra de contexto verdadeira dada a palavra central) e o restante é usado para as amostras negativas (isto é, a palavra de contexto falsa / falsa dada a palavra central).K K−1
Segundo, a razão pela qual você desejaria um grande produto interno negativo entre as palavras de contexto falsas e a palavra central é porque isso implica que as palavras são maximamente diferentes. Para ver isso, considere a fórmula da semelhança de cosseno entre dois vetores e : Isso atinge um mínimo de -1 quando e estão orientados em direções opostas e é igual a 0 quando ex y scos(x,y)=xTy||x||2||y||2 x y x y são perpendiculares. Se são perpendiculares, não contêm a mesma informação e, se orientadas de maneira oposta, contêm informações opostas. Se você imagina vetores de palavras em 2D, é como dizer que a palavra "brilhante" tem a incorporação [1 0], "escuro" tem a incorporação [-1 0] e "delicioso" tem a incorporação [0 1]. Em nosso exemplo simples, "claro" e "escuro" são opostos. Prever que algo está "escuro" quando está "claro" seria maximamente incorreto, pois transmitiria exatamente o oposto da informação pretendida. Por outro lado, a palavra "delicioso" não traz informações sobre se algo é "brilhante" ou "escuro"; portanto, é orientado perpendicularmente a ambos.
Esse também é um motivo pelo qual os embeddings aprendidos com o word2vec têm bom desempenho no raciocínio analógico, que envolve somas e diferenças de vetores de palavras. Você pode ler mais sobre a tarefa no documento word2vec.
fonte
Os vetores que estão sendo multiplicados não estão incorporando vetores das palavras. Eles são Os produtos internos são um conjunto de vetores de incorporação de palavras e a matriz de peso / vetores da camada de saída. Portanto, o objetivo é minimizar a perda de entropia cruzada. Se os produtos inet são negativos ou zero, isso não indica nada sobre similaridade de palavras. Esta é a minha opinião.
fonte