Não sou especialista em word2vec, mas ao ler Rong, X. (2014). Aprendizado de parâmetros do word2vec Explicado e, a partir de minha própria experiência com NN, simplificaria o raciocínio para isso:
- O softmax hierárquico proporciona uma melhoria na eficiência do treinamento, uma vez que o vetor de saída é determinado por uma passagem em árvore das camadas da rede; uma determinada amostra de treinamento precisa apenas avaliar / atualizarO ( l o g( N) )) unidades de rede, não O ( N). Isso basicamente expande os pesos para suportar um vocabulário amplo - uma determinada palavra está relacionada a menos neurônios e vice-versa.
- A amostragem negativa é uma maneira de amostrar os dados de treinamento, semelhante à descida do gradiente estocástico, mas a chave é procurar exemplos de treinamento negativos. Intuitivamente, ele treina com base em locais de amostragem que poderia esperar uma palavra, mas não encontrou uma, que é mais rápida do que treinar um corpus inteiro a cada iteração e faz sentido para palavras comuns.
Os dois métodos não parecem ser exclusivos, teoricamente, mas, de qualquer maneira, parece que é por isso que eles seriam melhores para palavras frequentes e pouco frequentes.