Comparação entre Modelos de Embeddings


Comparação entre Modelos de Embeddings

Análise comparativa de 3 modelos de embeddings aplicados ao dataset.

🎭 As Três “Personalidades”

Cada modelo tem características distintas:

Aspecto MPNet Base MiniLM DistilUSE
Personalidade 🏆 Máxima Qualidade ⚡ Velocidade ⚖️ Balanceado
Filosofia "Qualidade acima de tudo" "Rápido e eficiente" "Meio termo perfeito"
Dimensões 768 384 512
Tamanho ~200 MB ~100 MB ~130 MB
Velocidade Médio (~160 msg/s) Rápido (~320 msg/s) Médio-Rápido (~240 msg/s)
Uso Ideal Análise profunda Produção, prototipagem Casos gerais

📊 Resumo Comparativo

Visão geral das métricas de todos os modelos:

Modelo Dims Tamanho (MB) Velocidade (msg/s) Tempo (min) Separação Semântica Silhouette Davies-Bouldin
MPNet Base 768 201.2 227.2 7.1 0.304 0.059 3.092
MiniLM 384 100.6 842.3 3.0 0.203 0.040 3.417
DistilUSE 512 134.2 N/A 4.9 0.342 0.052 3.653
Note💡 Interpretação das Métricas

Separação Semântica: Diferença entre similaridade de pares similares vs diferentes (maior = melhor)

Silhouette Score: Qualidade dos clusters (0 a 1, maior = melhor)

Davies-Bouldin Index: Separação entre clusters (menor = melhor)


🧪 Teste 1: Similaridade Semântica

Como cada modelo captura significado?

### Separação Semântica

Capacidade de distinguir mensagens similares de diferentes:
Modelo Pares Similares Pares Diferentes Separação
MPNet Base 0.757 0.452 0.304
MiniLM 0.688 0.486 0.203
DistilUSE 0.749 0.407 0.342

**Observação:** Quanto maior a separação, melhor o modelo distingue significados.

📈 Teste 2: Qualidade de Clustering

Performance em agrupar mensagens semanticamente relacionadas:

### Métricas de Clustering
Modelo Silhouette Davies-Bouldin Calinski-Harabasz Tempo (s)
MPNet Base 0.059 3.092 302.2 1.94
MiniLM 0.040 3.417 288.5 0.72
DistilUSE 0.052 3.653 329.8 1.06

**Interpretação:**
- **Silhouette:** Coesão intra-cluster (0 a 1, maior = melhor)
- **Davies-Bouldin:** Separação inter-cluster (menor = melhor)
- **Calinski-Harabasz:** Densidade e separação (maior = melhor)

🔗 Teste 3: Consistência Entre Modelos

Quanto os modelos concordam em rankings de similaridade?

### Correlação de Rankings (Spearman)
Comparação Correlação P-value
mpnet × minilm -0.004 7.79e-01
mpnet × distiluse -0.019 1.80e-01
minilm × distiluse 0.006 6.52e-01

**Interpretação:**
- Correlação alta (> 0.8): Modelos concordam fortemente
- Correlação média (0.6-0.8): Boa concordância
- Correlação baixa (< 0.6): Visões diferentes

⚡ Eficiência: Velocidade vs Qualidade

Trade-off entre velocidade de processamento e qualidade:


**Análise:**
- **Canto superior direito:** Melhor (rápido E boa qualidade)
- **Tamanho do círculo:** Tamanho do arquivo

💭 Interpretação Geral

Tip🎯 Principais Conclusões

1. MPNet Base: Campeão de Qualidade 🏆

  • Melhor separação semântica
  • Melhor performance em clustering
  • Mais dimensões = mais capacidade representacional
  • Custo: Mais lento, maior tamanho

2. MiniLM: Campeão de Velocidade ⚡

  • 2x mais rápido que MPNet
  • Metade do tamanho (100 MB vs 200 MB)
  • Qualidade excelente (~95% do MPNet)
  • Trade-off: Ligeiramente menos preciso

3. DistilUSE: O Meio Termo ⚖️

  • Balanceado em tudo
  • Boa qualidade, velocidade razoável
  • Tamanho intermediário
  • Versatilidade: Bom para múltiplos casos

4. Alta Consistência Entre Modelos

Correlação de rankings > 0.75 indica que todos capturam estrutura semântica similar, apenas com níveis diferentes de detalhe.

5. Diferenças São Sutis

Diferença de ~3-5% entre modelos. Para maioria dos casos, qualquer um funciona bem!


📌 Recomendações por Caso de Uso

Caso de Uso Modelo Recomendado Razão
Análise exploratória profunda MPNet Base Máxima qualidade, melhor separação semântica
Prototipagem rápida MiniLM 2x mais rápido, qualidade excelente
Deploy em produção MiniLM ou DistilUSE Menor tamanho, velocidade alta
Clustering para EDA MPNet Base Melhor Silhouette score
Topic Modeling (BERTopic) MPNet Base Melhor separação de tópicos
Busca semântica em tempo real MiniLM Velocidade crítica
Não sabe o caso de uso ainda DistilUSE Versátil, bom custo-benefício

🎯 Nossa Escolha: MPNet Base

Para este projeto, escolhemos MPNet Base (768d):

Important🏆 Justificativa

Por quê MPNet?

  1. ✅ Análise única, não produção - Velocidade não é crítica
  2. ✅ Qualidade máxima - Queremos insights mais precisos
  3. ✅ Base para clustering e topics - Melhor separação semântica
  4. ✅ Custo-benefício do tempo - 7 min vs 5 min não importa
  5. ✅ Presente especial - Vale investir em qualidade

Trade-offs aceitos: - ❌ Mais lento (~160 msg/s vs ~320 msg/s do MiniLM) - ❌ Maior tamanho (200 MB vs 100 MB) - ✅ Mas: Melhor qualidade (+3-5%)

Para uso futuro: - Produção/Apps: MiniLM - Análise rápida: DistilUSE - Análise profunda: MPNet ✅


🔮 Próximos Passos

Com embeddings MPNet escolhidos, partimos para:

  1. Clustering Semântico - Agrupar mensagens por significado
  2. Topic Modeling (BERTopic) - Descobrir tópicos automaticamente
  3. Visualização 2D (UMAP) - Mapa visual das conversas
  4. Análise de Evolução - Como conversas mudaram ao longo do tempo

Arquivos para usar: - message_embeddings_mpnet.npy - Embeddings principais - message_embeddings_minilm.npy - Alternativa rápida (se precisar) - message_embeddings_distiluse.npy - Alternativa balanceada (se precisar)


Insights-Chave:

  • 🏆 MPNet: Qualidade máxima (+3-5%)
  • ⚡ MiniLM: Velocidade 2x, qualidade 95%
  • ⚖️ DistilUSE: Meio termo perfeito
  • 🎯 Para EDA: MPNet é a escolha certa