벡터를 사용한 의미 검색
게시 됨: 2022-11-01검색에서 최신 뉴스를 팔로우했다면 벡터 검색에 대해 들어봤을 것입니다.
그리고 당신은 그것에 대해 더 많이 배우기 위해 주제를 파헤치기 시작했을 수도 있습니다. 당신은 대학에서 수학을 다시 떠나지 않았습니까?
벡터 검색을 구축하는 것은 어렵습니다. 이해하지 않아도 됩니다.
그리고 벡터 검색이 미래가 아니라는 점을 이해하고 하이브리드 검색도 마찬가지로 중요합니다.
벡터란 무엇입니까?
기계 학습의 맥락에서 벡터에 대해 이야기할 때 의미하는 바는 다음과 같습니다. 벡터는 무언가를 나타내는 숫자의 그룹입니다.
그 것은 이미지, 단어 또는 거의 모든 것이 될 수 있습니다.
물론 질문은 이러한 벡터가 유용한 이유와 생성 방법입니다.
먼저 이러한 벡터가 어디에서 왔는지 살펴보겠습니다. 짧은 대답: 기계 학습.
Jay Alammar는 벡터가 무엇인지 에 대한 최고의 블로그 게시물을 작성했습니다 .
요약하자면 머신 러닝 모델은 입력 항목(여기서부터는 단어만 가정해 보겠습니다)을 사용하고 다른 것을 예측하기 위한 최상의 공식을 알아내려고 합니다.
예를 들어 "bee"라는 단어를 사용하는 모델이 있을 수 있으며 "bee"가 "insects" 및 "wasps"와 유사한 컨텍스트에서 표시됨을 정확하게 예측할 수 있는 최상의 공식을 파악하려고 합니다.
해당 모델이 최적의 공식을 갖게 되면 "벌"이라는 단어를 "곤충" 및 "말벌"에 대한 숫자 그룹과 유사한 숫자 그룹으로 변환할 수 있습니다.
벡터가 강력한 이유
벡터는 다음과 같은 이유로 매우 강력합니다. GPT-3(Generative Pre-trained Transformer 3) 또는 Google의 것과 같은 큰 언어 모델은 수십억 개의 단어와 문장을 고려하므로 이러한 연결을 시작하고 실제로 지능화될 수 있습니다.
사람들이 그 인텔리전스를 검색에 적용하는 데 열광하는 이유를 쉽게 이해할 수 있습니다.
어떤 사람들은 벡터 검색이 우리가 수십 년 동안 알고 사랑해 온 키워드 검색을 대체할 것이라고 말하기까지 합니다.
그러나 문제는 벡터 검색이 키워드 검색 전체를 대체하지 않는다는 것입니다. 키워드 검색이 엄청난 가치를 유지하지 않을 것이라고 생각하는 것은 새롭고 빛나는 것에 너무 많은 낙관론을 둡니다.
벡터 검색과 키워드 검색은 각각 장단점이 있으며 함께 작업할 때 가장 잘 작동합니다.
롱테일 쿼리에 대한 벡터 검색
검색 분야에서 일하는 경우 긴 꼬리 쿼리에 대해 잘 알고 있을 것입니다.
Chris Anderson이 디지털 콘텐츠를 설명하기 위해 대중화한 이 개념 은 다른 모든 것보다 훨씬 더 인기 있는 일부 항목(검색 쿼리용)이 있지만 여전히 누군가가 원하는 개별 항목이 많이 있다고 말합니다.
검색도 마찬가지입니다.
몇 가지 쿼리("헤드" 쿼리라고도 함)는 각각 많이 검색되지만 대부분의 쿼리는 거의 검색되지 않습니다. 아마도 한 번일 수도 있습니다.
숫자는 사이트마다 다르지만 평균적인 사이트에서 전체 검색의 약 1/3은 수십 개의 검색어에서 비롯되는 반면 검색량의 거의 절반은 가장 인기 있는 1,000개 외의 검색어에서 발생합니다.
롱테일 쿼리는 더 긴 경향이 있으며 자연어 쿼리일 수도 있습니다.
내 회사 Algolia의 연구에 따르면 쿼리의 75%는 두 단어 이하입니다. 쿼리의 90%는 4단어 이하입니다. 그런 다음 쿼리의 99%에 도달하려면 13개의 단어가 필요합니다!
그러나 항상 길지는 않으며 모호할 수 있습니다. 여성 패션 웹사이트의 경우 사람들이 자주 그 색상을 요구하지 않기 때문에 "자주색 드레스"는 롱테일 쿼리가 될 수 있습니다. "Wristlet"은 웹사이트에 판매용 팔찌가 있더라도 거의 볼 수 없는 검색어일 수 있습니다.
벡터 검색은 일반적으로 롱테일 쿼리에 적합합니다. 팔찌는 팔찌와 유사하며 동의어 설정이 없어도 팔찌를 표면에 표시한다는 것을 이해할 수 있습니다. 누군가가 자주색으로 무언가를 검색할 때 분홍색 또는 보라색 드레스를 표시할 수 있습니다.
벡터 검색은 길거나 자연어 쿼리에 대해서도 잘 작동할 수 있습니다. "내 음료를 차갑게 유지하는 것"은 잘 조정된 벡터 검색에서 냉장고를 불러오는 반면, 키워드 검색을 사용하면 텍스트가 제품 설명의 어딘가에 있기를 바라는 것이 좋습니다.
즉, 벡터 검색은 검색 결과의 회상률 또는 검색된 결과의 수를 증가시킵니다.
벡터 검색 작동 방식
벡터 검색은 위에서 설명한 숫자 그룹을 선택하고 벡터 검색 엔진이 "이 숫자 그룹을 선으로 그래프로 나타내면 어느 것이 가장 가깝습니까?"라고 묻도록 하여 이를 수행합니다.
이것을 개념화하는 쉬운 방법은 두 개의 숫자만 있는 그룹을 생각하는 것입니다. [1,2] 그룹은 [2,500] 그룹보다 그룹 [2,2]에 더 가깝습니다.
(물론 벡터에는 그 안에 수십 개의 숫자가 있기 때문에 수십 개의 차원으로 "그래프로 표시"되어 시각화하기 쉽지 않습니다.)
유사성을 결정하는 이 접근 방식은 "의사" 및 "의사"와 같은 단어를 나타내는 벡터가 "의사" 및 "바위"라는 단어보다 훨씬 더 유사하게 "그래프로 표시"될 것이기 때문에 강력합니다.
벡터 검색의 단점
그러나 벡터 검색에는 단점이 있습니다.
먼저 비용입니다. 위에서 논의한 모든 기계 학습? 비용이 있습니다.
벡터를 저장하는 것은 키워드 기반 검색 인덱스를 저장하는 것보다 비용이 많이 듭니다. 이러한 벡터에 대한 검색은 대부분의 경우 키워드 검색보다 느립니다.

이제 해싱은 이러한 두 가지 문제를 모두 완화할 수 있습니다.
예, 우리는 더 많은 기술 개념을 도입하고 있지만 이것은 기본을 이해하기에 상당히 간단한 또 다른 개념입니다.
해싱은 일련의 단계를 수행하여 일부 정보(예: 문자열 또는 숫자)를 원래 정보보다 적은 메모리를 차지하는 숫자로 변환합니다.
해싱을 사용 하여 벡터의 크기를 줄이는 동시에 벡터를 유용하게 만드는 요소인 개념적으로 유사한 항목을 일치시키는 기능을 유지할 수도 있습니다.
해싱을 사용하여 벡터 검색을 훨씬 더 빠르게 만들고 벡터가 전체적으로 공간을 덜 사용하도록 할 수 있습니다.
세부 사항은 고도로 기술적인 것이지만 중요한 것은 그것이 가능하다는 것을 이해하는 것입니다.
키워드 검색의 지속적인 유용성
이것은 키워드 검색이 여전히 유용하지 않다는 것을 의미하지는 않습니다! 키워드 검색은 일반적으로 벡터 검색보다 빠릅니다.
또한 결과의 순위가 지정된 이유를 이해하는 것이 더 쉽습니다.
검색어 "texas" 및 "tejano" 및 "state"를 잠재적인 단어 일치로 간주합니다. 순수한 키워드 검색의 관점에서 비교를 보면 분명히 "tejano"가 더 가깝습니다. 그러나 벡터 검색 접근 방식에 더 가깝다고 말하기는 쉽지 않습니다.
키워드 기반 검색은 레코드 찾기에 텍스트 기반 접근 방식을 사용하기 때문에 "텍사스"를 "테자노"와 더 유사한 것으로 이해합니다.
레코드에 쿼리에 있는 것과 정확히 동일한 단어가 포함된 경우(또는 오타를 설명하기 위해 특정 수준의 차이 내) 레코드가 관련성이 있는 것으로 간주되어 결과 집합에 다시 표시됩니다.
다시 말해, 키워드 검색은 검색 결과의 정확성에 초점을 맞추거나, 반환되는 레코드가 적더라도 관련성이 있는지 확인합니다.
헤드 쿼리에 유용한 키워드 검색
이러한 이유로 키워드 검색은 헤드 쿼리, 즉 가장 인기 있는 쿼리에 대해 매우 잘 수행됩니다.
헤드 쿼리는 더 짧은 경향이 있으며 최적화하기도 더 쉽습니다. 즉, 이유가 무엇이든 키워드가 레코드 내의 올바른 텍스트와 일치하지 않으면 분석을 통해 종종 포착 되며 동의어를 추가할 수 있습니다 .
키워드 검색은 헤드 쿼리에 가장 잘 작동하고 벡터 검색은 롱테일 쿼리에 가장 잘 작동하기 때문에 두 가지가 함께 가장 잘 작동합니다.
이것을 하이브리드 검색이라고 합니다.
하이브리드 검색은 검색 엔진이 단일 쿼리에 대해 키워드 및 벡터 검색을 모두 사용하고 검색 접근 방식에 관계없이 레코드의 순위를 올바르게 지정하는 경우입니다.
검색 소스 전체에서 기록 순위 지정
서로 다른 두 소스에서 나온 순위 기록은 쉽지 않습니다.
두 가지 접근 방식은 본질적으로 서로 다른 기록 채점 방식을 가지고 있습니다.
벡터 검색은 점수를 반환하지만 일부 키워드 기반 엔진은 그렇지 않습니다. 키워드 기반 엔진이 점수를 반환하더라도 두 점수가 동일하다는 보장은 없습니다.
점수가 동일하지 않다면 키워드 엔진의 0.8점과 벡터 엔진의 0.79점보다 관련성이 더 높다고 말할 수 없습니다.
또 다른 대안은 벡터 엔진이나 키워드 엔진의 점수 매기기를 통해 모든 결과를 실행하는 것입니다.
이것은 벡터 엔진에서 추가 회수를 얻는 이점이 있지만 몇 가지 단점도 있습니다. 벡터 엔진에서 추가로 회수된 결과는 키워드 점수에서 관련성이 있는 것으로 평가되지 않습니다. 그렇지 않으면 이미 결과 세트에 나타났을 것입니다.
대안적으로 모든 결과(키워드 또는 기타)를 벡터 점수를 통해 실행할 수 있지만 이는 느리고 비용이 많이 듭니다.
폴백으로 벡터 검색
그렇기 때문에 일부 검색 엔진은 두 가지를 혼합하지 않고 항상 키워드 결과를 먼저 표시한 다음 벡터 결과를 두 번째로 표시합니다.
여기서 생각하는 것은 검색이 0개 또는 적은 수의 결과를 반환하는 경우 벡터 결과로 대체할 수 있다는 것입니다.
벡터 검색은 회상을 향상시키거나 더 많은 결과를 찾는 데 초점을 맞추고 있으므로 키워드 검색에서는 찾지 못한 관련 결과를 찾을 수 있습니다.
이것은 적절한 임시방편이지만 진정한 하이브리드 검색의 미래는 아닙니다.
진정한 하이브리드 검색은 여러 소스에서 비교할 수 있는 점수를 만들어 동일한 결과 집합에서 여러 다른 검색 소스의 순위를 지정합니다.
오늘날 이 접근 방식에 대한 많은 연구가 있지만 제대로 수행하고 엔진을 공개적으로 제공하는 사람은 거의 없습니다.
이것이 당신에게 무엇을 의미합니까?
지금 당장 당신이 할 수 있는 최선의 방법은 아마도 가만히 앉아서 업계에서 일어나는 일을 최신 상태로 유지하는 것입니다.
벡터 및 키워드 기반 하이브리드 검색은 향후 몇 년 동안 제공될 예정이며 데이터 과학 팀이 없는 사람들도 사용할 수 있습니다.
그동안 키워드 검색은 여전히 가치가 있으며 나중에 벡터 검색이 도입될 때만 개선될 것입니다.
추가 리소스:
- 의미 검색: 작동 방식 및 대상
- NLP 및 NLU가 시맨틱 검색을 위해 작동하는 방식
- 검색 엔진 작동 방식
주요 이미지: pluie_r/Shutterstock
