Como medir a semelhança de embeddings

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

MedirSignificadoFórmula À medida que a similaridade aumenta, essa métrica...
Distância euclidianaDistância entre as extremidades dos vetores \(\sqrt{(a_1-b_1)^2+(a_2-b_2)^2+...+(a_N-b_N)^2}\) Diminuição
CossenoCosseno do ângulo \(\theta\) entre vetores \(\frac{a^T b}{|a| \cdot |b|}\) Aumentos
Produto escalarCoseno multiplicado pelas extensões dos dois vetores \(a_1b_1+a_2b_2+...+a_nb_n\) \(=|a||b|cos(\theta)\) Aumenta. Também aumenta com o comprimento dos vetores.

Como escolher uma medida de similaridade

Ao contrário do cosseno, o produto escalar é proporcional ao comprimento do vetor. Isso é importante porque exemplos que aparecem com muita frequência no conjunto de treinamento (por exemplo, vídeos populares do YouTube) tendem a ter vetores de incorporação com comprimentos grandes. Se você quiser capturar a popularidade, escolha o produto de ponto. No entanto, o risco é que exemplos populares possam distorcer a métrica de similaridade. Para equilibrar essa distorção, você pode elevar 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 para 1 e observe que as três medidas se tornam proporcionais uma à outra.

Prova: proporcionalidade das medidas de similaridade
Depois de normalizar a e b de modo que \(||a||=1\) e \(||b||=1\), estas três medidas estão relacionadas da seguinte forma:
  • 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, as três medidas de similaridade são equivalentes porque são proporcionais a \(cos(\theta_{ab})\).

Revisão das medidas de similaridade

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

TipoComo criarIdeal paraImplicações
ManualCombine manualmente os dados de elementos. Conjuntos de dados pequenos com recursos fáceis de combinar. Fornece insights sobre os resultados dos cálculos de similaridade. Se os dados de recursos mudarem, será necessário atualizar manualmente a medida de similaridade.
SupervisionadoMedir a distância entre as embeddings geradas por um DNN supervisionado. Conjuntos de dados grandes com recursos difíceis de combinar. Não fornece insights sobre os resultados. No entanto, um DNN pode se adaptar automaticamente a mudanças nos dados de recursos.