벡터데이터베이스가 추천시스템에 필요한 이유
모바일, 웹 등 현대 애플리케이션에서 중요한 KPI 중 하나는 사용자들의 체류시간, 즉 리텐션을 늘리는 것입니다. 이러한 리텐션을 늘리기 위해 많은 서비스는 추천시스템을 적용하려 노력합니다. 특히 콘텐츠, 이커머스에서 추천시스템의 질은 매출과 직결되는 요소입니다. 사용자의 행동을 분석하여 관심사를 발견, 사용자가 검색하지 않더라도 관심을 가질만한 아이템들을 지속해서 보여주며 체류시간을 늘리고 구매를 유도 하는 것이죠. 실제로 아마존 매출의 35%, 넷플릭스 영상시청의 70% 이상이 추천으로 발생합니다.
하지만 추천시스템은 검색만큼 구현하기 어려운 기능입니다. 당연히 우수한 개발인력을 확보하고 수많은 솔루션을 쓰는 등 적지 않은 자본이 필요합니다. 그래서 수준 높은 추천시스템은 자본력이 뒷받침되는 기업들의 전유물로 여겨지고 있지요. 검색과 추천은 유사한 대상을 찾아내는 과정이라는 점에서 본질적으로 크게 다르진 않습니다. 검색은 검색어에 가장 부합하는 결과를 찾는 것이고, 추천은 사용자 정보에 기반하여 가장 적합한 결과를 찾아 제공한다는 점에서 두 기능은 서로 유사합니다.
그런데 추천시스템을 구현하기 위해서는 더 많은 정보가 필요합니다. 넷플릭스와 같은 OTT 서비스라면 시청기록, 취향이 유사한 고객이 선호한 콘텐츠, 선호배우, 장르 등의 데이터가 필요하고, 쿠팡과 같은 이커머스라면 상품구매정보, 조회정보, 검색키워드, 고객의 나이 및 성별, 구매주기와 같은 데이터가 필요합니다. 이런 데이터를 종합하여 유사성을 판단한 다음 고객이 관심 가질 만한 아이템을 추천하는 것이죠.
이렇게 수많은 정보를 하나의 차원에서 비교하여 유사성을 판단하기 위해, 다양한 형태의 데이터를 벡터임베딩으로 변환하여 임베딩간의 유사성을 파악하는 방법이 널리 쓰이고 있습니다. 대표적인 예가 AirBnb 입니다. AirBnb는 접속한 유저에게 실시간 맞춤형 숙소를 제공함으로써 예약률를 극대화하고 있는데, 추천을 통한 예약이 전체 예약의 99%를 차지할 정도 입니다. 실시간 개인화를 위한 숙소임베딩 기술을 구축했고, 그 결과 벡터임베딩을 사용한 알고리즘은 클릭률이 21%나 증가했습니다.
자, 그런데 수많은 데이터를 임베딩으로 변환하고 유사성을 비교하고, 무엇보다 체류 고객에게 바로바로 추천을 해야하기 때문에 실시간성이 확보되어야 합니다. 임베딩 변환기술도 필요하지만 벡터임베딩을 저장하고 저장 후 검색, 변경 시 변경하는 과정이 요구됩니다. 일시적인 연구나 리서치라면 벡터임베딩에 대한 엄격한 관리가 크게 필요 없지만, End user를 대상으로한 서비스라면 매 순간 유입되는 새로운 상품과 고객정보를 추적가능한 형태로 관리해야 할 것입니다. 이것이 벡터데이터베이스가 필요한 이유입니다.
함께 보면 좋을 글
우리에게 벡터 검색이 필요한 이유
우리가 사용하는 모바일 애플리케이션이나 웹서비스에는 검색기능이 있습니다. 대부분은 데이터베이스에서 제공하는 기본적인 텍스트 검색이나 Elasticsearch 같은 검색 엔진에서 제공하는 전문 검색(Full-Text Search)을 사용하여 개발 합니다. Full-Text Search는 주로 텍스트 데이터 검색에 사용되는 전통적인 방법 중 하나로 문서, 웹 페이지, 데이터베이스 등에서 특정 키워드, 단어, 구문 등을 찾아내는 데 중점을 두고 있습니다. 주로 키워드 또는 짧은 문장을 입력하여 텍스트 데이터를 검색 하고, 키워드와 일치하는 문서를 찾는 과정을 거치는데, 문맥이나 의미적 유사성을 고려하지는 않습니다.
By Tim Yang|2023-09-14
벡터 임베딩 - 모든 데이터를 표현하다
벡터 임베딩은 다양한 형태의 데이터(문서, 이미지, 음성, 영상 등)를 숫자 배열로 변환하여 유사성을 측정하는 개념입니다. 예를 들어, 색깔은 RGB 형식으로 나타내는 3차원 벡터 데이터로 표현될 수 있습니다. 이러한 벡터 임베딩을 통해 데이터 간의 거리를 계산하여 유사성을 판단할 수 있습니다. 이는 자연어 처리, 추천 알고리즘 등에서 중요한 역할을 합니다. Transformer 모델을 통해 다양한 데이터를 벡터로 변환할 수 있으며, 이를 활용해 서로 다른 형태의 데이터 간의 유사성도 측정할 수 있습니다. 예를 들어, "고양이"라는 텍스트와 고양이 사진 사이의 유사성을 벡터 공간에서 측정하는 것이 가능합니다.
By Tim Yang|2023-09-13