Transformers4Rec: 최신 추천 시스템에 NLP의 힘을 더하다
소개
디지털 커머스와 온라인 콘텐츠 소비가 계속 급증함에 따라, 효과적이고 개인화된 추천 엔진에 대한 수요는 그 어느 때보다 높아지고 있습니다. 쇼핑객과 스트리머 모두 제품, 영화, 음악을 검색할 때 맞춤형 추천을 기대합니다. 그러나 협업 필터링이나 콘텐츠 기반 필터링에 의존하는 기존 추천 시스템은 정적인 과거 데이터를 사용하며, 변화하는 사용자 선호도에 적응하는 데 어려움을 겪는 경우가 많습니다. 이러한 한계를 해결하기 위해, 진화하는 사용자 행동을 포착하는 동적 AI 모델을 활용하는 추천 시스템이 필수적이고 대중적인 요소가 되었습니다.
최근 Zilliz가 주최한 Unstructured Data Meetup에서 Nordstrom의 Data Scientist인 Kunal Sonalkar는 사용자의 변화하는 요구를 더 잘 충족하기 위해 순차적 및 세션 기반 추천을 가능하게 하는 Transformers4Rec 활용에 대한 인사이트를 공유했습니다. 이 블로그 게시물은 추천 시스템의 미래에 대한 우리의 관점과 함께 Kunal의 발표에서 얻은 핵심 내용을 강조합니다. 더 자세한 내용은 YouTube에서 Kunal의 전체 발표도 시청할 수 있습니다.
Transformers4Rec란 무엇인가요?
Transformers4Rec는 PyTorch를 사용해 순차적 및 세션 기반 추천 시스템을 만들도록 설계된 강력하고 유연한 라이브러리입니다. 자연어 처리(NLP)에서 가장 인기 있는 프레임워크 중 하나인 Transformers와 통합함으로써, Transformers4Rec는 NLP와 추천 시스템 사이를 연결합니다.
다음 그림은 추천 시스템에서 transformers4Rec 라이브러리를 사용하는 모습을 보여줍니다. 이 라이브러리의 입력 데이터는 사용자가 세션 중에 탐색하거나 장바구니에 추가하는 항목과 같은 사용자 상호작용의 시퀀스입니다. Transformers4Rec는 이러한 상호작용을 처리해 사용자가 다음에 무엇을 원할지에 대한 지능적인 예측을 수행합니다. 예를 들어, 한 고객이 온라인 서점을 탐색하고 있다고 상상해 보세요. 고객은 먼저 여러 공상과학 소설을 살펴보고, 그중 하나를 장바구니에 추가한 뒤, 나중에 관련 작가 페이지 몇 개를 확인합니다. Transformers4Rec는 이러한 행동 시퀀스를 분석하여 고객이 또 다른 인기 공상과학 도서나 관련 판타지 소설에 관심이 있을 수 있다고 예측합니다.
그림- 추천 시스템에서 Transformers4Rec가 작동하는 방식 .png
그림: 추천 시스템에서 Transformers4Rec가 작동하는 방식
Kunal은 효과적인 추천 시스템을 구축하려면 고객 의도, 예를 들어 고객이 관심을 갖는 제품 유형과 가격에 민감한지 여부를 이해하여 그에 맞게 추천을 조정하는 것이 필수적이라고 강조합니다.
예를 들어, "shoes"를 검색하는 두 고객은 예산이나 브랜드 선호도와 같은 이전 상호작용과 선호도에 따라 서로 다른 추천을 받을 수 있습니다.
shoes.png
Transformers4Rec 아키텍처
앞서 언급했듯이, Transformers4Rec의 아키텍처는 사용자 상호작용 데이터를 구조화된 방식으로 처리하여 순차적 및 세션 기반 추천에 transformer 모델을 적용하도록 설계되었습니다. 이 아키텍처는 예측을 수행하기 위해 함께 작동하는 네 가지 주요 구성 요소인 Feature Aggregation, Sequence Masking, Sequence Processing, and Prediction Head.를 포함합니다.
그림- Transformers4Rec 아키텍처 .png
그림: Transformers4Rec 아키텍처
특징 집계
특징 집계 구성 요소는 추천을 위한 포괄적인 프로필을 구축하기 위해 사용자 상호작용에 대한 데이터(연속형 변수와 범주형 변수 모두)를 수집합니다. 예를 들어, 전자상거래 추천 시스템에서 범주형 특징에는 브랜드 및 제품 유형과 같은 속성이 포함될 수 있으며, 연속형 특징은 가격, 할인율 또는 최근 상호작용(예: 지난 24시간 동안 제품 클릭 수)을 포착할 수 있습니다.
Figure- Feature Aggregation in Transformers4Rec.png
그림: Transformers4Rec의 특징 집계
이러한 시퀀스를 트랜스포머 블록에 입력하기 전에, 상호작용 데이터는 벡터 임베딩(고차원 공간에서 상호작용 데이터의 수치적 표현)이라는 표준화된 형식으로 전처리되어야 합니다. 입력은 사용자 ID 또는 세션 ID별로 구성될 수 있으며, 상호작용 시퀀스는 "상호작용 임베딩"이라고 알려진 단일 벡터 표현으로 집계됩니다. 이 임베딩에는 사용자 행동 유형, 관련 항목, 상호작용 순서와 같은 사용자 상호작용에 대한 문맥 정보가 포함되며, 효율적인 검색 및 시맨틱 검색을 위해 벡터 데이터베이스에 저장될 수 있습니다. PyTorch와 잘 통합되는 Milvus 또는 그 관리형 서비스인 Zilliz Cloud와 같은 견고한 벡터 데이터베이스는 이 프로세스를 간소화할 수 있습니다. 또한 Transformers4Rec에는 원시 데이터를 필요한 형식으로 쉽게 변환할 수 있는 NVTabular 모듈이 포함되어 있어 데이터 준비를 더 관리하기 쉽게 만듭니다.
시퀀스 마스킹
Transformers4Rec의 시퀀스 마스킹 구성 요소는 데이터 누수를 방지하고 시퀀스 순서를 유지하기 위해 사용자 상호작용에 마스크를 적용하여, 모델이 이벤트의 타임라인을 준수하도록 보장합니다. 예를 들어, 사용자의 다음 항목을 예측할 때 이 모듈은 미래의 모든 행동을 숨겨 모델이 인과적이고 단계적인 방식으로 학습할 수 있게 합니다.
Transformers4Rec의 다양한 유형의 시퀀스 마스킹은 학습 또는 추론 중 모델이 "보는" 것을 제어하며, 이는 사용자 행동의 의미 있는 패턴을 포착하고 다음 상호작용을 예측하는 능력을 향상시키는 데 도움이 됩니다. Transformers4Rec은 시퀀스 마스킹에서 여러 옵션을 제공합니다:
인과적 언어 모델링(CLM): 이 기법은 시퀀스에서 미래 항목을 마스킹하여, 모델이 이전 항목만을 기반으로 각 항목을 예측하도록 학습시킵니다. CLM은 상호작용의 순서가 중요한 순차 추천에 이상적입니다.
마스크드 언어 모델링(MLM): MLM에서는 시퀀스의 특정 위치가 무작위로 마스킹되고, 모델은 주변 문맥을 사용하여 숨겨진 항목을 예측하는 법을 학습합니다. 이 기법은 모델이 엄격한 순서에 의존하지 않고 항목 간 관계를 이해하는 데 도움이 됩니다.
무작위 토큰 감지(RTD): RTD는 시퀀스의 무작위 항목을 관련 없는 항목으로 대체하고, 모델은 이 잘못된 항목을 찾아내는 법을 학습합니다. 이 방법은 모델이 무작위 노이즈나 이상치와 진짜 패턴을 구별하도록 가르칩니다.
순열 언어 모델링(PLM): 여기서는 시퀀스의 항목들이 섞이고, 모델은 새롭게 순열된 순서에서 항목을 예측하도록 학습됩니다. PLM은 모델이 어떤 순서에서도 패턴을 인식하도록 도와 유연성을 장려합니다.
Figure- Difference in Casual LM and Masked LM during Sequence Masking.png
그림: 시퀀스 마스킹 중 Casual LM과 Masked LM의 차이
일반적으로 위치 임베딩의 20-30%가 학습 전에 마스킹됩니다. 마스킹 확률 또한 추천 시스템의 견고성에 영향을 미칩니다.
이러한 마스킹 기법을 통해 모델은 사용자 상호작용으로부터 다양한 방식으로 학습할 수 있으며, 정확하고 맥락을 인식한 추천을 수행하는 능력이 향상됩니다.
시퀀스 처리
시퀀스 처리 컴포넌트는 입력 특성을 transformer 모델에 전달하여 사용자의 상호작용 시퀀스에서 마스킹된 아이템이나 위치를 예측합니다. Transformers4Rec은 XLNet, GPT-2, LSTM을 포함한 다양한 시퀀스 처리 아키텍처를 지원하여, 사용자가 추천 시스템에 가장 적합한 모델을 선택할 수 있도록 합니다.
상호작용 벡터 임베딩은 아래 코드 스니펫에 설명된 것처럼 transformer 블록으로 전달됩니다. 사용자는 레이어 수와 시퀀스 길이 같은 매개변수를 지정하여 transformer의 아키텍처를 구성할 수 있습니다. PyTorch의 sequential block은 집계된 입력을 전달하고, 마스킹을 적용하며, 원하는 모델 구성을 활성화함으로써 생성할 수 있어, 맞춤형 추천 작업을 위한 유연한 설정이 가능합니다.
Sequence processing in Pytorch .png
그림) _PyTorch에서의 시퀀스 처리_
예측 헤드
예측 헤드는 Transformers4Rec 프레임워크의 최종 모듈로, transformer 모델의 출력이 실행 가능한 추천을 생성하는 데 사용됩니다.
Figure- Outputs from the transformer model are used to generate actionable recommendations. .png
그림: transformer 모델의 출력은 실행 가능한 추천을 생성하는 데 사용됩니다.
이 모듈은 비즈니스 요구에 맞게 조정된 다양한 사용 사례를 지원하며, 여기에는 다음이 포함됩니다:
다음 아이템 예측: 이 옵션은 사용자의 이전 행동을 기반으로 사용자가 다음에 상호작용할 가능성이 높은 아이템을 예측하여, 시의적절하고 관련성 높은 추천을 제공하는 데 도움이 됩니다.
이진 분류: 여기서 모델은 사용자가 특정 아이템을 클릭할 확률을 계산합니다. 이는 클릭률(CTR) 예측에 유용한데, 사용자의 참여를 가장 잘 유도할 가능성이 높은 아이템을 판단하는 데 도움을 주어 레이아웃 및 콘텐츠 최적화에 기여합니다.
회귀: 회귀 작업은 사용자가 아이템에 소비할 수 있는 시간, 예상되는 상호작용 횟수, 또는 추정 구매 금액과 같은 연속 값을 예측할 수 있게 합니다.
아래 다이어그램은 정확하고 맥락을 인식한 추천을 제공하기 위해 특성 집계, 시퀀스 마스킹, 시퀀스 처리, 예측 헤드의 네 가지 컴포넌트가 함께 작동하는 엔드투엔드 프로덕션 파이프라인을 보여줍니다.
Figure- End-to-End pipeline of a recommendation system built using Transformers4Rec.png
그림: Transformers4Rec을 사용하여 구축된 추천 시스템의 엔드투엔드 파이프라인
Transformers4Rec 사용을 위한 평가 및 과제
Transformers4Rec으로 추천 시스템을 구축하려면 확장성과 유지관리 과제를 극복하기 위한 효과적인 평가와 전략적 계획이 모두 필요합니다.
시스템 평가
추천 시스템의 효과는 사용자 요구를 얼마나 정확하게 충족하는지에 크게 좌우됩니다. Transformers4Rec의 경우 일반적인 평가 지표에는 precision과 recall이 포함되며, 이는 시스템의 상위 ‘N’개 추천이 사용자 선호와 얼마나 잘 일치하는지를 측정합니다. 또한 Mean Average Precision(MAP) 및 Normalized Discounted Cumulative Gain(NDCG)과 같은 랭킹 지표도 추천 아이템의 관련성과 순서를 평가하는 데 사용됩니다.
과제
Transformers4Rec 기반 추천 시스템을 확장하는 데에는 상당한 컴퓨팅 비용이 수반되며, 특히 GPU 리소스를 사용해 대규모로 배포할 때 그렇습니다. 이러한 시스템을 구축하고 유지관리하려면 데이터 수집과 저장부터 모델 배포 및 실시간 추론에 이르기까지 모든 것을 포괄하는 광범위한 인프라도 필요합니다.
적절한 인프라를 선택하는 것은 관련성 높은 추천을 빠르게 검색할 수 있는 시스템을 만드는 데 매우 중요합니다. 예를 들어, Milvus와 같은 벡터 데이터베이스를 사용하면 빠른 유사도 검색과 벡터 임베딩의 효율적인 저장이 가능하며, 이는 추천 파이프라인에 잘 통합됩니다.
또 다른 핵심 과제는 새롭거나 자주 변경되는 제품 카탈로그를 처리하는 것입니다. Transformers4Rec는 제한된 과거 데이터로도 이러한 신규 항목에 대해 정확한 추천을 제공해야 합니다. 이를 위해서는 새로운 컨텍스트를 기반으로 추천을 업데이트할 수 있도록 모델과 데이터 인프라 모두에서 적응성이 필요합니다.
요약
이 블로그에서는 Transformers4Rec가 NLP에서 영감을 받은 기법을 사용하여 동적이고 개인화된 추천 시스템을 만드는 방법을 논의했습니다. Feature Aggregation, Sequence Masking, Sequence Processing, Prediction Head와 같은 구성 요소를 통해 이 프레임워크는 복잡한 사용자 패턴을 포착하여 실시간으로 관련성 높은 추천을 제공합니다. precision, recall, MAP, NDCG를 포함한 주요 지표는 시스템 효과성을 평가하는 데 도움이 되며, 추천이 사용자 요구를 충족하도록 보장합니다.
또한 Transformers4Rec 확장의 과제, 특히 인프라 비용과 저장소 요구사항을 중심으로 논의했으며, 이때 Milvus 벡터 데이터베이스와 같은 도구가 효율적인 벡터 저장 및 검색을 지원합니다. 벡터 차원 및 시퀀스 길이와 같은 매개변수 미세 조정은 모델 성능을 최적화하는 핵심 기법으로, Transformers4Rec를 현대적인 추천 시스템을 위한 유연하고 강력한 솔루션으로 만들어 줍니다.
더 읽어보기
계속 읽기

Our Journey to 35K+ GitHub Stars: The Real Story of Building Milvus from Scratch
Join us in celebrating Milvus, the vector database that hit 35.5K stars on GitHub. Discover our story and how we’re making AI solutions easier for developers.

Demystifying the Milvus Sizing Tool
Explore how to use the Sizing Tool to select the optimal configuration for your Milvus deployment.

Introducing DeepSearcher: A Local Open Source Deep Research
In contrast to OpenAI’s Deep Research, this example ran locally, using only open-source models and tools like Milvus and LangChain.


