최근 대규모 언어모델(LLM)을 활용한 제품 추천 시스템에서 엉뚱한 결과가 나오는 현상이 자주 보고되고 있습니다. 많은 개발자가 더 나은 프롬프트(prompt)를 작성하는 데 집중하지만, 실제 문제는 LLM이 제품의 본질적인 속성(attributes)을 이해하지 못하고 이름이나 설명에만 의존하기 때문이라는 지적이 제기되었습니다. 예를 들어, '아이폰 15 프로 맥스'와 '아이폰 15 프로'의 차이를 LLM이 정확히 인지하지 못하고 단순히 이름의 유사성 때문에 잘못된 추천을 할 수 있다는 것입니다.
이러한 현상은 LLM이 정보를 처리하는 방식과 관련이 깊습니다. LLM은 기본적으로 텍스트의 통계적 패턴을 학습하여 다음 단어를 예측하는 모델입니다. 따라서 제품의 복잡한 속성이나 미묘한 차이를 직접적으로 '이해'하기보다는, 주어진 텍스트 내에서 유사한 단어나 문맥을 찾아 연결하는 데 능숙합니다. 예를 들어, '아이폰 15 프로 맥스'와 '아이폰 15 프로'는 이름이 비슷하기 때문에 LLM은 이 둘을 매우 유사한 제품으로 간주할 가능성이 높습니다. 하지만 실제로는 화면 크기, 배터리 수명, 카메라 성능 등 중요한 속성에서 차이가 존재하며, 사용자는 이러한 디테일에 따라 다른 제품을 원할 수 있습니다. 단순히 프롬프트에 '가장 좋은 아이폰'이라고 입력해도, LLM은 '최고'라는 추상적인 개념을 제품의 구체적인 속성과 연결하기 어렵습니다.
이 문제를 해결하기 위해서는 LLM의 텍스트 처리 능력과 함께 구조화된 데이터의 힘을 빌려야 합니다. 제안되는 해결책은 벡터 데이터베이스(vector database)와 하이브리드 검색(hybrid search)의 조합입니다. 제품의 각 속성(예: 화면 크기, 색상, 저장 공간)을 벡터로 변환하여 데이터베이스에 저장하고, 사용자의 질의(query) 또한 벡터로 변환하여 유사한 제품을 검색하는 방식입니다. 여기에 키워드 기반의 전통적인 검색을 결합한 하이브리드 검색을 통해, LLM은 텍스트의 문맥적 이해와 함께 정확한 속성 기반의 정보를 얻을 수 있게 됩니다. 이는 LLM이 단순히 '이름'이 아니라 '속성'을 기반으로 제품을 매칭하고 추천하도록 도와, 사용자에게 훨씬 더 정확하고 만족스러운 결과를 제공할 수 있게 합니다.