주요 컨텐츠로 이동

대규모 언어 모델을 사용하여 상식을 이해하는 제품 추천 시스템 만들기

Avinash Sooriyarchchi
Sam Sawyer
콜튼 펠티에
Bryan Smith
이 포스트 공유하기

리테일용 LLM 솔루션 액셀러레이터에서 자세한 내용을 확인하고 노트북을 다운로드할 수 있습니다.

(번역: Youngkyong Ko) Original Post

제품 추천은 최신 고객 경험의 핵심 기능입니다. 사용자는 이전에 상호 작용한 적이 있는 사이트를 다시 방문할 때 중단했던 부분을 이어갈 수 있도록 이전 상호 작용과 관련된 추천이 표시되기를 기대합니다. 사용자는 특정 품목을 구매할 때 자신의 필요에 맞는 적합한 품목을 찾을 수 있도록 유사하고 관련성이 높은 대안이 제안되기를 기대합니다. 또한 장바구니에 상품을 담을 때 사용자는 전반적인 구매 경험을 완성하고 향상시킬 수 있는 추가 상품이 추천되기를 기대합니다. 이러한 제품 추천이 제대로 이루어지면 쇼핑 여정을 원활하게 할 뿐만 아니라 고객이 리테일 매장에서 인정받고 이해받고 있다는 느낌을 받을 수 있습니다.

상품 추천을 생성하는 다양한 접근 방식이 있지만, 현재 사용되는 대부분의 추천 엔진은 유통업체별로 대규모 데이터를 수집하고 정교한 기술을 적용하여 학습한 상품과 고객 간의 과거 상호작용 패턴에 의존합니다. 이러한 엔진은 성공적인 고객 참여를 통해 학습한 패턴을 강화하는 데 놀라울 정도로 강력하지만, 때로는 다른 경험을 제공하기 위해 이러한 과거 패턴에서 벗어나야 할 때도 있습니다.

데이터 내 상호 작용이 제한적인 상황에서 새로운 상품이 출시된 시나리오를 생각해 보겠습니다. 수많은 고객 참여를 통해 학습한 지식이 필요한 추천 시스템은 추천을 뒷받침할 충분한 데이터가 쌓일 때까지 해당 제품을 제안하지 못할 수 있습니다.

또는 단일 제품이 지나치게 많은 관심을 끄는 다른 시나리오를 생각해 보십시오. 이 시나리오에서 추천 시스템은 압도적인 인기 때문에 항상 한 가지 상품만 제안하는 함정에 빠져 포트폴리오의 다른 실행 가능한 상품에 손해를 끼칠 위험이 있습니다.

이러한 문제와 기타 유사한 문제를 방지하기 위해 유통업체는 상식을 기반으로 널리 알려진 제품 연관성 패턴을 활용하는 전략을 사용할 수 있습니다. 이러한 유형의 추천은 유능한 판매 직원과 마찬가지로 고객이 관심 있어 보이는 품목을 검토하고 해당 제품 조합과 비슷한 추가 품목을 제안할 수 있습니다.

대규모 언어 모델을 사용하여 추천 만들기

고객이 겨울용 스카프, 비니, 장갑을 구매하는 시나리오를 생각해 보겠습니다. 이 고객은 추운 날씨에 외출할 준비를 하고 있는 것이 분명합니다. 이 유통업체가 최근 두꺼운 울 양말과 겨울 부츠를 제품 포트폴리오에 추가했다고 가정해 봅시다. 다른 추천 시스템들은 과거 데이터의 상호작용 부족으로 인해 고객이 브라우징하는 항목과 이들의 연관성을 아직 파악하지 못할 수 있습니다. 그러나 공통 지식은 이러한 항목들을 함께 연결합니다.

이러한 종류의 지식은 대량의 일반 텍스트로 학습된 대규모 언어 모델(LLM)에 의해 포착되는 경우가 많습니다. 이 텍스트에서 장갑과 부츠는 야외로 나가기 전에 두 아이템을 착용한 사람들로부터 직접 연결될 수 있으며 "추위", "눈", "겨울" 등의 개념과 연관되어 관계를 강화하고 다른 관련 아이템을 끌어들일 수 있습니다.

그런 다음 LLM에 스카프, 비니, 장갑과 연관된 다른 품목이 무엇인지 질문하면 수십억 개의 내부 파라미터에서 수집된 이 모든 지식을 사용하여 관심 있을 만한 추가 품목의 우선순위가 지정된 목록을 제안합니다. (그림 1)

Figure 1. Additional items suggested by the Llama2-70b LLM given a customer’s interest in winter scarves, beanies and mittens
Figure 1. Additional items suggested by the Llama2-70b LLM given a customer’s interest in winter scarves, beanies and mittens

이 접근 방식의 장점은 LLM에게 카트에 있는 품목만 따로 고려하도록 요청하지 않아도 된다는 것입니다. 예를 들어 텍사스 남부에서 겨울 상품을 구매하는 고객은 미네소타 북부에서 같은 상품을 구매하는 고객과 다른 특정 선호도를 가지고 있을 수 있음을 인지하고 해당 지리적 정보를 LLM의 프롬프트에 통합할 수 있습니다. 또한 프로모션 캠페인이나 이벤트에 대한 정보를 통합하여 LLM이 이러한 노력과 관련된 품목을 제안하도록 유도할 수도 있습니다. 다시 말하지만, 매장 직원과 마찬가지로 LLM은 다양한 입력을 균형 있게 고려하여 의미 있고 관련성 있는 추천을 도출할 수 있습니다.

추천을 가용 제품에 연결

하지만 LLM이 제공하는 일반적인 상품 제안을 제품 카탈로그의 특정 품목과 어떻게 다시 연관시킬 수 있을까요? 공개적으로 사용 가능한 데이터 세트로 훈련된 LLM은 일반적으로 유통업체의 제품 포트폴리오에 있는 특정 품목에 대한 지식이 없으며, 유통업체별 정보로 이러한 모델을 훈련하는 것은 시간과 비용이 많이 소요됩니다.

이 문제에 대한 해결책은 비교적 간단합니다. 온라인에서 무료로 제공되는 많은 오픈 소스 모델 등 경량 임베딩 모델을 사용하면 각 제품에 대한 설명 정보와 기타 메타데이터를 임베딩으로 변환할 수 있습니다. (그림 2)

[ -1.41311243e-01, 4.90943342e-02, 2.61841211e-02, 6.41700476e-02, …, -3.52126663e-03 ]

 

그림 2. all-MiniLM-L6-v2 모델을 사용하여 생산된 겨울 부츠와 관련 제품 설명을 매우 축약하여 임베딩한 예시입니다.

 

임베딩의 개념은 약간 전문적이지만 간단히 말해서 텍스트를 수치로 표현하고 주어진 언어 내에서 인식되는 일련의 개념과 관계를 매핑하는 방법입니다. 일반적인 겨울 부츠와 특정 아크메 트루퍼 와 같이 개념적으로 서로 유사한 두 아이템은 적절한 LLM을 통과하면 매우 유사한 수치 표현을 갖게 됩니다. (아크메 트루퍼는 착용자가 방수 캔버스와 가죽 상의를 통해 겨울의 최악을 견딜 수 있도록 해주어 눈 내리는 도시 거리나 산길을 편안하게 걸어 다닐 수 있게 해주는 긴 부츠입니다) 각 항목과 관련된 임베딩 간의 수학적 차이(거리)를 계산해 보면, 항목 간의 간격이 상대적으로 거의 없다는 것을 알 수 있습니다. 이는 해당 항목들이 밀접하게 연관되어 있음을 나타냅니다.

이 개념을 실행에 옮기려면 모든 특정 상품 설명과 메타데이터를 임베딩으로 변환하고 이를 검색 가능한 인덱스, 즉 벡터 스토어에 저장하기만 하면 됩니다. LLM이 일반적인 제품 추천을 하면, 각 제품을 임베딩으로 변환하고 벡터 스토어에서 가장 밀접하게 관련된 항목을 검색하여 포트폴리오에 있는 특정 항목을 고객에게 제공할 수 있습니다. (그림 3)

Figure 3. Conceptual workflow for making specific product recommendations using an LLM
Figure 3. Conceptual workflow for making specific product recommendations using an LLM

데이터브릭스로 솔루션 통합하기

여기에 제시된 추천 패턴은 제품 연관성에 대한 일반적인 지식을 활용하여 고객에게 유용한 제안을 할 수 있는 시나리오에서 조직이 사용하는 추천 시스템에 큰 도움이 될 수 있습니다. 솔루션을 시작하려면 조직은 대규모 언어 모델과 경량 임베딩 모델에 액세스할 수 있어야 하며, 이 두 가지 기능을 자체적인 내부 정보와 함께 결합할 수 있어야 합니다. 이 작업이 완료되면 이러한 자산들을 솔루션으로 전환하여 추천이 필요한 다양한 고객 대면 인터페이스에 쉽게 통합 및 확장할 수 있는 능력을 갖춰야 합니다. 

데이터브릭스 데이터 인텔리전스 플랫폼을 이용하면, 데이터 프라이버시를 유지하면서 쉽고 비용 효율적으로 구현 및 배포할 수 있는 일관된 단일 통합 환경을 통해 이러한 각 과제를 해결할 수 있습니다. 개발자는 데이터브릭스의 새로운 Vector Search 기능을 통해 통합 벡터 스토어에 접근하고 주변 워크플로우를 활용하여 그 안에 포함된 임베딩을 최신 상태로 유지할 수 있습니다. 새로운 Foundation Model API를 통해 개발자는 최소한의 설정으로 광범위한 오픈 소스 및 독점적인 대규모 언어 모델을 활용할 수 있습니다. 또한 향상된 Model Serving 기능을 통해 종단간 추천 워크플로를 패키징하여 개방적이고 안전한 엔드포인트에 배포할 수 있으므로 가장 광범위한 최신 애플리케이션에 통합할 수 있습니다.

하지만 말만 믿지 마시고 직접 확인해 보세요. 최신 솔루션 액설러레이터에서 우리는 위 패턴을 구현하고 전술한 기능들을 통합하여 개념에서 운영 배포까지 어떻게 진행할 수 있는지 보여주는 LLM 기반 제품 추천시스템을 구축했습니다. 모든 코드는 무료로 제공되며, 데이터의 잠재력을 극대화할 수 있도록 지원하기 위한 노력의 일환이므로, 귀사의 환경에서 이 솔루션을 살펴보시기 바랍니다. 

notebooks 을 다운로드해 보세요.

Databricks 무료로 시작하기

관련 포스트

모든 산업 포스트 보기