Como medir a semelhança de embeddings

Agora você tem embeddings para qualquer par de exemplos. Uma similaridade supervisionada A medição usa esses embeddings e retorna um número que mede a semelhança entre eles. Lembre-se de que embeddings são vetores de números. Para encontrar a semelhança entre dois vetores \(A = [a_1,a_2,...,a_n]\) e \(B = [b_1,b_2,...,b_n]\), escolher uma destas três medidas de similaridade:

MedirSignificadoFórmula À medida que a semelhança aumenta, essa medida...
Distância euclidianaDistância entre as extremidades de vetores \(\sqrt{(a_1-b_1)^2+(a_2-b_2)^2+...+(a_N-b_N)^2}\) Diminui
CossenoCoseno do ângulo \(\theta\) entre os vetores \(\frac{a^T b}{|a| \cdot |b|}\) Aumentos
Produto escalarCoseno multiplicado pelo comprimento de ambos os vetores \(a_1b_1+a_2b_2+...+a_nb_n\) \(=|a||b|cos(\theta)\) Aumentos. Também aumenta com o comprimento dos vetores.

Como escolher uma medida de similaridade

Em contraste com o cosseno, o produto escalar é proporcional ao comprimento do vetor. Isso é importante porque os exemplos que aparecem com muita frequência no treinamento (por exemplo, vídeos populares do YouTube) tendem a ter vetores de embedding com comprimentos grandes. Se você quer a popularidade, depois escolhe 'produto escalar'. No entanto, o risco é que os exemplos mais comuns podem distorcer a métrica de similaridade. Para equilibrar esse desvio, é possível aumentar o comprimento a um expoente \(\alpha\ < 1\) para calcular o produto escalar como \(|a|^{\alpha}|b|^{\alpha}\cos(\theta)\).

Para entender melhor como o comprimento do vetor muda a medida de similaridade, normalize os comprimentos dos vetores até 1 e percebe que as três medidas se tornam proporcionais e se relacionam entre si.

Prova: proporção das medidas de similaridade
Depois de normalizar a e b de modo que \(||a||=1\) e \(||b||=1\), essas três medidas estão relacionadas como:
  • Distância euclidiana = \(||a-b|| = \sqrt{||a||^2 + ||b||^2 - 2a^{T}b} = \sqrt{2-2\cos(\theta_{ab})}\).
  • Produto escalar = \( |a||b| \cos(\theta_{ab}) = 1\cdot1\cdot \cos(\theta_{ab}) = cos(\theta_{ab})\).
  • Coseno = \(\cos(\theta_{ab})\).
. Assim, todas as três medidas de similaridade são equivalentes proporcional a \(cos(\theta_{ab})\).

Revisão das medidas de similaridade

Uma medida de similaridade quantifica a semelhança entre um par de de exemplo, em relação a outros pares de exemplos. Os dois tipos, manual e supervisionadas, são comparadas abaixo:

TipoComo criarIdeal paraImplicações
ManualCombinar dados do recurso manualmente. Conjuntos de dados pequenos com atributos que são fáceis de combinar. Fornece informações sobre os resultados de cálculos de similaridade. Recurso "if" alterações de dados, será necessário atualizar manualmente a medida de similaridade.
SupervisionadoMedir a distância entre embeddings gerados por um modelo DNN supervisionado. Grandes conjuntos de dados com atributos difíceis de combinar. Não fornece insights sobre os resultados. No entanto, uma DNN pode se adaptar automaticamente a alteração de dados de atributos.