딥러닝을 통한 블럭스 개인화 추천 시스템의 진화: 1편

임베딩과 어텐션 알고리즘의 적용
Content's avatar
Jul 15, 2024
딥러닝을 통한 블럭스 개인화 추천 시스템의 진화: 1편

기업이 성능 좋은 ‘개인화 추천 솔루션’을 제공하려면, 고객을 깊이 이해할 수 있는 머신러닝 모델을 만들어야 합니다. 특히, 고객의 단순한 정보뿐만 아니라 과거 행동 데이터에서 유의미한 정보를 추출하는 것이 중요합니다. 오늘은 블럭스(Blux)의 머신러닝 팀이 어떻게 최고 수준의 개인화 추천 솔루션을 개발하는지 살펴보겠습니다.


딥러닝을 활용한 개인화 추천 시스템의 핵심

블럭스 팀은 클라이언트의 플랫폼에 최적화된 ‘맞춤형 개인화 추천 솔루션’을 제공하기 위해 다양한 시도를 하고 있습니다. 이를 위해 고객 행동 데이터를 효과적으로 추출하는 머신러닝 모델이 필수적입니다. 특히 블럭스 팀은 두 가지 정보를 중요하게 여깁니다. 첫째, 고객이 상호작용하는 상품들의 특징을 파악하는 '상품 특성 정보(Attribute Information)'와 둘째, 고객이 상품과 어떤 패턴으로 상호작용하는지에 대한 '문맥적 정보(Contextual Information)'입니다. 이러한 정보를 잘 학습할 수 있는 머신러닝 모델 중 딥러닝 모델을 개발하는 것이 목표입니다.

우선 상품 특성 정보를 딥러닝 모델이 학습하기 위해서는 이 정보들을 수치화하여 수학적 공간에 표현할 수 있어야 합니다. 이때 임베딩(Embedding) 기법이 통상적으로 사용됩니다. 임베딩은 개체가 가진 여러 특징을 수치로 표현하여 수학적인 공간에 표현하는 기법입니다. 구체적으로는 각 상품의 특징들을 벡터화하여 ‘벡터 공간(Vector Space’)으로 맵핑합니다. 벡터 공간에 맵핑하는 이유는 벡터의 거리와 두 벡터 사이의 각도 등 여러 ‘이항 연산(Binary operation, 두 개의 원소를 이용해 하나의 원소를 만들어내는 것)’을 통해 유사성을 쉽게 측정할 수 있기 때문입니다.

이항연산표현기법

출처: Cosine similarity - Mastering Machine Learning with Spark 2.x [Book]

임베딩을 통해 벡터 공간에 맵핑하는 정보는 상품 특성 정보뿐만 아니라 고객의 행동 패턴에서 파악한 문맥적 정보도 포함됩니다. 이후 고객의 문맥적 정보 벡터와 유사한 정보를 추출하여 해당 상품들을 추천합니다. 추천 시스템의 최종 목표는 비슷한 특징을 가진 상품 벡터를 비슷한 곳에 위치시키는 것입니다. 이러한 특성은 데이터마다 다르며, 커머스에서는 카테고리나 브랜드, 콘텐츠에서는 장르나 제작자가 특성을 표현할 수 있습니다. 추천 시스템은 고객 행동 데이터를 기반으로 상품의 어떤 정보를 추출하고 비슷한 곳에 위치시킬지를 학습합니다.

그럼 추천 시스템은 어떻게 데이터에서 유의미한 정보들만을 추출하여 벡터공간에 맵핑하는 걸까요?

데이터와 알고리즘을 활용한 고객 행동 분석

고객 행동 데이터는 과거 사용자들이 어떤 상품들과 상호작용했는지에 대한 순서쌍으로 표현할 수 있습니다. 즉, 행동 데이터를 순차 데이터로 파악할 수 있습니다. 순차 데이터 모델의 핵심은 순차적으로 나열된 토큰들을 하나의 벡터로 표현하는 것을 학습하는 것입니다. 이때 추천 시스템에서 ‘토큰은 고객이 상호작용한 상품들로 정의’할 수 있습니다. 이를 활용해 추천 시스템은 고객 행동 데이터로 구성된 상품들을 어떻게 벡터로 임베딩시킬지와 순차적으로 나열된 상품들에 대한 벡터를 어떻게 하나의 벡터로 합쳐 고객의 행동 패턴을 표현할지 배우게 됩니다.

대표적으로 사용되는 모델은 ‘어텐션(Attention) 알고리즘’입니다. 어텐션 알고리즘은 주어진 토큰 벡터들을 하나로 표현할 때 각 벡터를 가중합(복수의 데이터를 단순히 합하는 것이 아니라 각각의 수에 특정 값을 곱한 후 이 곱셈 결과들을 다시 합한 것)하며, 각 가중치를 어떻게 주어야 할지 학습하는 알고리즘입니다. 이름에서 알 수 있듯이 ‘어떤 토큰에 얼마나 주목해야 하는가?(Attention)’를 학습합니다. 예를 들어, 고객이 상의 → 휴대폰 → 하의를 검색했을 때, 휴대폰 케이스를 보았고 이를 맞추는 것이 목표라면 상의 또는 하의보다 휴대폰에 더 많은 가중치를 주어야 합니다. 순차 데이터 모델은 어텐션 알고리즘을 이용해 고객이 상호작용한 상품들의 패턴을 인식하고, 문맥 정보를 표현합니다.

트랜스포머를 통한 고객 행동 데이터 처리 방법

어텐션 알고리즘에는 다양한 기법이 있지만, 구글에서 공개한 ‘트랜스포머(Transformer)’를 주로 사용합니다. 트랜스포머 기법은 2017년 구글이 발표한 논문 ‘Attention is All You Need에서 나온 모델로, BERT(Bidirectional Encoder Representations from Transformers)나 GPT(Generative Pretrained Transformer)와 같은 자연어 처리 모델의 기반이 되었습니다. ChatGPT에도 적용되어 성공적으로 상업화된 모델입니다. 최근에는 추천 시스템에도 활발히 적용되고 있습니다.

어텐션알고리즘표

출처: Attention is All You Need(Vaswani, 2017)

트랜스포머 기법은 기본적으로 순서 정보를 가진 순차 데이터에서 나타나는 패턴을 학습하기 위한 어텐션 기반 알고리즘입니다. 순차적으로 나열된 데이터 사이의 관계를 파악하여 어떤 데이터에 어느 정도의 가중치를 부여해야 하는지 학습하는 방식입니다.

추천 시스템에서 고객 행동 데이터는 사용자가 과거에 상호작용을 진행한 상품들이 시간 순서대(Chronological order)로 나열된 데이터로 표현됩니다. 고객 행동 데이터를 구성하는 상품들이 하나의 토큰인 셈입니다. 트랜스포머는 고객이 과거에 상호작용한 상품들을 벡터로 표현한 뒤 이 벡터들을 합쳐 최종적인 행동 패턴을 특정 벡터로 표현하는 데 사용됩니다. 이 과정을 ‘애그리게이션(Aggregation)’ 혹은 ‘풀링(Pooling)’이라고 합니다. 물론 벡터를 합치는데 여러 방식이 존재하지만, 트랜스포머는 고객의 행동 데이터를 잘 표현할 수 있는 상품에 더 많은 가중치를 주면서도 다른 상품들에 대한 정보 손실을 최소화하여 핵심 역할을 담당합니다.

맞춤형 추천 솔루션을 위한 블럭스 팀의 노력

지금까지 블럭스 팀이 클라이언트 맞춤 개인화 추천 솔루션을 제공하기 위한 다양한 시도와 최신 딥러닝 모델에 활용한 알고리즘에 관해 설명했습니다. 저희는 이러한 방식으로 고객 데이터를 분석하고, 최적의 개인화 추천 솔루션을 제공하기 위해 끊임없이 연구하고 있습니다. 고객의 행동 패턴을 정밀하게 분석하고 이를 바탕으로 맞춤형 추천을 제공함으로써, 기업은 더욱 효과적으로 고객의 요구를 충족시킬 수 있기 때문입니다. 이어지는 글에서는 ‘어텐션 알고리즘’의 자세한 역할과 트랜스포머 기법을 추천 시스템에 활용한 방법을 소개해 보겠습니다.

글쓴이

김회인(Simon) 블럭스 Machine Learning Engineer 새로운 미션에 거침 없이 도전하고, 폭풍처럼 성장하는 미래가 목표인 블럭스의 ML 엔지니어로, AI 시대로 급변하는 마케팅 시장의 문제를 구성원들과 함께 고민하고 해결하며 나아가고 있습니다.

🎯 같이 보면 좋아요!

👉 딥러닝을 통한 블럭스 개인화 추천 시스템의 진화: 2편

👉 커머스 플랫폼에서 개인화 추천이 중요한 이유

Share article
RSSPowered by inblog