▲GN⁺ 2025-01-16 | parent | ★ favorite | on: 코사인 유사도(Cosine Similarity)를 함부로 사용하지 말 것(p.migdal.pl)Hacker News 의견 코사인 유사성을 사용하는 RAG 애플리케이션에서는 "semantic re-ranker"나 "L2 re-ranking model"을 사용하여 결과를 재정렬하는 것이 좋음 pgvector-python의 예시에서는 cross-encoder 모델을 사용하여 재정렬을 수행함 언어 모델을 사용하여 재정렬할 수도 있지만, 재정렬에 특화된 모델보다는 성능이 떨어질 수 있음 Azure RAG 접근법에서는 Bing이 검색 결과를 재정렬하는 데 사용하는 AI Search semantic ranker를 사용함 단어 벡터는 두 단어가 같은 문맥에 나타나지 않더라도 강하게 연관될 수 있는 문제를 해결함 "Python"과 "Ruby"는 같은 문맥에 나타나지 않을 수 있지만, "scripting"은 둘 다의 문맥에서 발견될 수 있음 그러나 차원의 저주 때문에 잘 작동하지 않는 경우가 많음 단어 임베딩을 벡터 대신 정점으로 표현할 수 있을지에 대한 아이디어 제시 미국에서는 word2vec이 espresso와 cappuccino를 거의 동일하다고 판단할 수 있지만, 이탈리아에서는 그렇지 않음 LLM 쿼리를 직접 사용하여 두 항목을 비교하는 것이 가장 좋은 접근법임 LLM은 "지갑을 어디에 두었지?"와 "열쇠를 어디에 두었지?"를 매우 유사하다고 판단할 수 있음 코사인 유사성은 대부분의 딥러닝 기반 시맨틱 검색에서 사용됨 SentenceTransformers와 같은 모델은 코사인 유사성을 사용하도록 훈련됨 이미지의 벡터 표현을 위해 CLIP과 같은 모델도 코사인 유사성을 사용함 LLM 쿼리를 직접 사용하여 두 항목을 비교하는 것이 가장 강력한 접근법임 Cross encoder는 성능이 뛰어나고 빠른 솔루션임 HyDE는 질문에 대한 가상의 답변을 생성하고 유사성을 비교하는 방법임 청크의 형식을 표준화하고 동일한 형식으로 가상의 답변을 생성하는 것이 더 나은 방법임 코사인 유사성과 top-k RAG는 구식처럼 느껴짐 코사인 유사성은 데이터의 우연한 속성일 뿐임 새로운 임베딩 모델은 코사인 유사성을 유사성 측정으로 사용하도록 훈련됨 RAG 접근법을 시도한 후 실망감을 느꼈으며, 모델이 RAG를 훈련 중에 수행할 수 있도록 구조화해야 한다고 생각함 모델이 임베딩, 형식, 검색 프로세스를 정의하도록 하여 훈련 데이터 모델링을 개선할 수 있음 3D 그래픽과 물리학에서는 중요성과 정확성이 명확하지만, 머신러닝에서는 벡터 공간이 너무 많은 것을 나타내어 점곱 사용이 모호하게 느껴짐
Hacker News 의견
코사인 유사성을 사용하는 RAG 애플리케이션에서는 "semantic re-ranker"나 "L2 re-ranking model"을 사용하여 결과를 재정렬하는 것이 좋음
단어 벡터는 두 단어가 같은 문맥에 나타나지 않더라도 강하게 연관될 수 있는 문제를 해결함
미국에서는 word2vec이 espresso와 cappuccino를 거의 동일하다고 판단할 수 있지만, 이탈리아에서는 그렇지 않음
코사인 유사성은 대부분의 딥러닝 기반 시맨틱 검색에서 사용됨
LLM 쿼리를 직접 사용하여 두 항목을 비교하는 것이 가장 강력한 접근법임
HyDE는 질문에 대한 가상의 답변을 생성하고 유사성을 비교하는 방법임
코사인 유사성과 top-k RAG는 구식처럼 느껴짐
RAG 접근법을 시도한 후 실망감을 느꼈으며, 모델이 RAG를 훈련 중에 수행할 수 있도록 구조화해야 한다고 생각함
3D 그래픽과 물리학에서는 중요성과 정확성이 명확하지만, 머신러닝에서는 벡터 공간이 너무 많은 것을 나타내어 점곱 사용이 모호하게 느껴짐