어쩌다데싸

효과적인 선호도 예측 : DeepFM (feat. Factorization Machine) 본문

Recommedation System

효과적인 선호도 예측 : DeepFM (feat. Factorization Machine)

엔팁 2024. 11. 2. 12:21
이 글은 추천 시스템의 주요 알고리즘 중 하나인 DeepFM에 대해 설명합니다. DeepFM은 Factorization Machine과 딥러닝을 결합하여 이차 상호작용과 고차원 비선형 관계를 모두 학습해 추천 정확도를 크게 높일 수 있는 모델입니다. 연산 비용과 복잡한 최적화가 필요하다는 한계가 있지만, 적절히 적용하면 정교하고 개인화된 추천이 가능합니다.

 

목차

     

    https://login-data.tistory.com/30

     

    [추천시스템] 콘텐츠 기반 필터링(CBF)과 협업 필터링(CF)

    추천시스템의 가장 기본적인 알고리즘인 콘텐츠 기반 필터링과 협업 필터링에 대한 개념을 정리한 글입니다. 콘텐츠 기반 필터링은 사용자와 아이템의 속성 데이터를 바탕으로, 협업 필터링은

    login-data.tistory.com

     

     

    이전 글에서 정리했듯이, 추천 시스템 알고리즘 중에서 콘텐츠 기반 필터링과 협업 필터링은 사용자에게 적합한 아이템을 추천하는 주요 알고리즘입니다. 그러나 현실에서는 사용자의 복잡한 선호 패턴과 다양한 아이템 특성을 효과적으로 반영하기 위해 더 정교한 모델이 필요하게 되었습니다. 특히 사용자와 아이템 간의 상호작용을 효율적으로 학습할 수 있는 모델이 필요해지면서, 머신러닝과 딥러닝을 사용한 추천 알고리즘, 하이브리드 추천 알고리즘 등 새로운 알고리즘들이 등장했는데요. 그 중 일자리 추천서비스 프로젝트에서 사용했던 DeepFM에 대해 정리해보겠습니다. 

     

    이 글에서는 기존 알고리즘의 한계를 극복하면서도 추천 정확도를 크게 향상시킬 수 있는 DeepFM을 다루어 보고, 어떻게 추천 시스템의 성능을 높이는지 살펴보겠습니다.

     

     

    1. Factorization Machine

    DeepFM은 Factorization Machine(FM)의 더 발전된 형태이므로 먼저 FM에 대해 살펴보겠습니다.

     

    기존의 콘텐츠 기반 필터링, 협업필터링, 행렬 분해 기법은 특정 상황에서는 효과적이지만, 데이터가 적거나 사용자-아이템 간 상호작용 외의 다양한 변수(Feature)가 필요한 상황에서는 성능이 제한적이라는 문제가 있습니다. Factorization Machine은 이를 해결하기 위해 설계되었으며, 특히 데이터가 희소(Sparse)한 상황에서도 좋은 성능을 보여주는 것이 특징입니다. 

     

    1.1 FM의 목표

    • 주요 목표는 다양한 변수(피처) 간의 이차 상호작용을 학습하는 것입니다. 예를 들어, 사용자의 나이와 특정 아이템의 카테고리 간의 상호작용이 사용자 선호에 어떻게 영향을 미치는지를 모델링할 수 있습니다.
    • 다양한 변수들이 결합된 상태에서도 정확한 추천을 수행할 수 있으며, 협업 필터링보다 더 다양한 변수 조합을 고려하여 추천의 정확도를 높입니다.
    💡 콘텐츠 기반 필터링과 협업 필터링 복습
    1) 콘텐츠 기반 필터링 : 사용자가 과거에 선호했던 콘텐츠의 특성(예: 영화 장르, 배우 등)을 바탕으로 유사한 콘텐츠 추천 
    2) 협업 필터링 : 비슷한 행동 패턴을 가진 사용자들의 데이터나, 유사한 아이템 간의 관계(상호작용)를 바탕으로 아이템 추천

     

    1.2 수학적 정의 및 모델 구조

    FM 수식

    개인적으로 수학 공식만 보면 쉽든 어렵든 겁부터 나는데, 알고리즘을 제대로 이해하기 위해선 수학적 구조를 짚고 넘어가야 할 듯 하네요.

    FM은 주어진 데이터에서 이차 상호작용을 학습하기 위해 내적(dot product)을 사용합니다. 여기서 각 변수를 벡터화하여 서로 내적 계산을 통해 이차 상호작용을 학습하게 됩니다.

      • 일차 상호작용($\sum^n_{i=1}w_ix_i$) :
        • 여기서 $w_i$는 각 변수 $x_i$의 가중치를 의미합니다.
        • 이 항은 각 변수가 개별적으로 예측에 미치는 영향을 나타내며, 단순한 일차 선형 관계만을 반영합니다.
        • 예를 들어, 사용자의 나이나 아이템의 장르가 개별적으로 예측에 미치는 영향(직접적인 영향)을 반영하는 부분입니다.
      • 이차 상호작용($\sum^n_{i=1}\sum^n_{j=i+1}\left<v_i,v_j \right>x_ix_j$) :
        • FM의 핵심이 되는 부분입니다. $\left<v_i,v_j \right>$는 피처 벡터 $v_i$와 $v_j$ 간의 내적(dot product)으로, 변수 간의 상호작용을 표현하는 값입니다. 
        • 각 변수 $x_i$와 $x_j$가 상호작용할 때, 이 두 변수가 동시에 나타날 때의 영향을 학습하는 방식입니다.
        • 예를 들어, 사용자의 나이와 아이템 장르가 동시에 예측에 미치는 영향을 학습할 수 있습니다.
        • FM은 이 상호작용을 계산하기 위해 각 변수를 잠재 벡터(latent vector)로 변환해 상호작용을 효과적으로 모델링 합니다.

     

    1.3 장점 및 응용분야

    • 희소 데이터에서 높은 성능 : 희소한 데이터가 주를 이루는 추천시스템에서 FM은 속성 간의 이차 상호작용만으로도 효과적인 예측을 할 수 있기 때문에 희소한 데이터에서도 좋은 성능을 기대할 수 있습니다.
    • 기존 협업 필터링과 콘텐츠 기반 필터링의 단점 보완 : 협업 필터링은 데이터가 적거나 사용자가 새로운 경우(콜드 스타트 문제)에 성능이 떨어지는 한계가 있고, 콘텐츠 기반 필터링은 피처 간의 상호작용을 잘 다루지 못하는 문제가 있습니다. FM은 협업 필터링과 콘텐츠 기반 필터링의 장점을 결합한 모델로, 피처 상호작용을 고려하면서도 희소 데이터를 잘 처리하여 두 방식의 단점을 보완합니다.
    • 다양한 타입의 변수 사용 가능 : FM은 연속형 데이터와 범주형 데이터를 모두 잠재 벡터 형태로 변환하여 상호작용을 학습하기 때문에 연속형 데이터와 범주형 데이터를 모델에 쉽게 통합할 수 있습니다. 
    • 해석 가능성 : FM의 이차 상호작용은 피처 간의 명시적 관계를 모델링하기 때문에, 특정 피처들이 어떻게 상호작용하며 예측에 기여하는지 해석할 수 있습니다.

    이러한 장점 덕분에 FM은 추천 시스템뿐만 아니라 광고 클릭 예측, 소셜 네트워크 분석, 의료 데이터 분석 등 피처 간 상호작용이 중요한 다양한 예측 문제에 적용 가능합니다.

     

     

     

    1.4 예시로 이해하는 FM

    FM 데이터 예시

     

    사용자, 아이템(영화), 나이, 장르, 평점 정보로 구성된 데이터가 있습니다. FM은 데이터를 바탕으로 사용자와 아이템뿐만 아니라 나이와 장르 등 다양한 특성(변수)의 상호작용을 학습해 추천을 수행합니다. 

     

    추천 과정

    1) 데이터 벡터화

    FM은 각 특성을 벡터 형태로 표현하여 상호작용을 수치화합니다. 아래는 특성의 모든 카테고리를 변수로 만들어 1과 0으로 표현할 수 있게끔 벡터화 시킨 데이터 예시입니다. 

     

    2) 이차 상호작용 계산

    • FM의 핵심은 특성 간의 이차 상호작용을 통해 평점(또는 선호도)을 예측하는 것입니다. 예를 들어, 나이가 25인 사용자 A가 액션 장르를 좋아한다면, A와 관련된 평점을 예측할 때 이 두 특성 간의 상호작용이 중요하게 작용할 것입니다.
    • 이차 상호작용은 각 특성 벡터의 내적을 통해 계산합니다. 예를 들어, 사용자 A와 영화1의 상호작용은 A벡터 * 영화 1 벡터, 나이 25와 액션장르의 상호작용은 나이 25 벡터 * 액션 벡터로 계산됩니다. 이러한 내적을 통해 서로 연관된 특성들이 추천에 얼마나 기여하는지 파악합니다. 

     

    3) 추천 점수 예측

    FM은 주어진 특성 조합에 대해 점수를 예측합니다. 예를 들어, 사용자 A가 나이 25이며, 액션 장르 영화를 좋아하는 성향으로 파악되면 영화1(액션)의 예측 평점이 높아지게 됩니다. 이를 바탕으로 FM은 A가 좋아할 가능성이 높은 액션 장르 영화를 추천하게 됩니다. 예를 들어, A에게 새롭게 추천할 영화가 영화4(액션)이라면 FM은 다음과 같은 특성의 상호작용을 고려하여 예측 점수를 계산합니다.

    • 사용자 A - 영화4의 상호작용
    • 나이25 - 영화4의 상호작용
    • 액션 장르 - 영화4의 상호작용

     

    4) 추천 수행

    예측된 점수가 높은 아이템, 예를 들어 영화4를 A에게 추천하게 됩니다. FM은 이처럼 다양한 특성의 조합을 통해 더 개인화된 추천을 할 수 있는 모델입니다. 이를 통해 FM은 단순히 사용자-아이템 상호작용 데이터를 넘어서, 사용자의 속성(나이, 선호 장르 등)까지 반영하여 추천의 정확도를 높입니다.

     

     

    2. DeepFM

    기존의 Factorization Machine은 사용자-아이템 간 이차 상호작용을 잘 모델링하지만, 변수 간의 복잡한 고차원 비선형 상호작용을 학습하기에는 한계가 있습니다. 비선형 관계를 학습하는 데 효과적인 게 딥러닝이죠. 기존의 FM에 비선형 학습에 강점을 갖는 딥러닝을 결합하면 추천의 성능을 높일 수 있습니다. 이에 따라 FM의 효율성과 DNN의 비선형 학습 능력을 모두 활용하기 위해 DeepFM이 개발되었습니다. 

    💡 고차원 비선형 관계 학습의 중요성
    1) 다양한 사용자 행동 패턴 반영 : 사용자의 행동이나 선호도는 다양한 요소가 복잡하게 얽혀 결정되기 때문에, 이를 잘 학습하기 위해서는 특성 간의 고차원 비선형 관계를 파악할 수 있어야 합니다. 
    2) 추천의 개인화 강화 : 고차원 비선형 관계를 학습하면, 사용자 개별 특성에 따른 맞춤형 추천이 가능해져 더 정밀한 개인화 추천을 제공합니다. 
    3) 복잡한 트렌드와 상호작용 반영 : 예를 들어 특정 제품의 구매 트렌드는 나이와 취미뿐 아니라 유행하는 다른 아이템과의 조합, 시간대 등의 요소와 복합적으로 연결되어 있을 수 있습니다. DNN을 통한 고차원 비선형 관계 학습은 이러한 복잡한 트렌드를 추천 모델에 반영할 수 있도록 합니다. 

     

    2.1 DeepFM의 목표

    • DeepFM은 FM의 이차 상호작용 학습 능력과 DNN의 비선형 고차원 관계 학습 능력을 결합하여, 추천 시스템의 정확도를 높이고 복잡한 사용자 선호 패턴을 더 잘 반영하고자 합니다.
    • 이 모델은 사용자와 아이템뿐만 아니라, 다른 다양한 피처들 간의 복잡한 상호작용을 학습해 보다 정교한 추천을 목표로 합니다.

     

    2.2 모델 구조 및 학습과정

    DeepFM 구조

    그림으로 봤을 땐 복잡해 보이지만 하나씩 뜯어보면 FM에 DNN만 추가된 구조입니다. FM 층과 DNN 층 모두에서 사용될 수 있도록 변수를 임베딩 시켜 벡터로 만들고, 각 변수 벡터를 FM 층과 DNN층에서 동시에 학습할 수 있게 합니다. 

     

    모델 구조

    • FM 계층: DeepFM의 FM 계층은 특성 간의 이차 상호작용을 학습하며, 피처 벡터 간 내적을 통해 계산됩니다. 이를 통해 특성들 간의 기본적인 관계를 빠르고 효율적으로 학습할 수 있습니다.
    • DNN 계층: DNN 계층은 피처 간의 고차원 비선형 상호작용을 학습하는 역할을 합니다. 이 계층은 여러 층으로 구성된 신경망을 통해 비선형 패턴을 학습하여 추천 정확도를 높입니다.
    • 출력 계층: FM 계층과 DNN 계층에서 학습한 결과를 결합하여 최종 점수를 예측합니다. 이렇게 두 계층을 결합함으로써 FM의 효율성과 DNN의 학습 능력을 모두 활용할 수 있습니다.

     

    학습 과정

    • DeepFM은 FM 계층과 DNN 계층을 동시에 학습하며, 모든 피처를 FM 계층과 DNN 계층에 공유하여 학습합니다. 이를 통해 두 계층이 각각 다른 방식으로 특성 상호작용을 학습하되, 서로 보완할 수 있게 됩니다.
    • 또한, 학습 속도를 개선하고자 FM과 DNN 계층에서 피처 임베딩을 공유하여, 중복 계산을 줄이고 학습 효율을 높입니다.
    • 두 계층에서 나온 결과를 Sigmoid 함수에 넣어 최종적으로 Target 여부(지원, 클릭, 구매 등 목표하는 예측값)를 예측합니다.

     

    2.3 장점 및 한계

    DeepFM은 FM에 더 정교한 상호작용을 반영하기 위해 만들어진 모델이기 때문에, FM의 장점과 함께 또 다른 장점들도 갖고 있습니다.

    • 복잡한 상호작용 반영 : DeepFM은 FM 계층을 통해 특성 간의 이차 상호작용을 효율적으로 학습하고, DNN 계층을 통해 고차원 비선형 관계를 추가로 학습합니다. 이를 통해, 단순히 사용자와 아이템 간의 직접적인 관계뿐만 아니라, 다양한 특성 조합에서 발생하는 복잡한 상호작용도 반영할 수 있어 더욱 정교한 예측이 가능합니다.
    • Feature Engineering 필요성 감소 : FM 계층과 DNN 계층을 통해 특성 간의 다양한 관계를 자동으로 학습하므로, 모델 학습을 위해 수작업으로 피처를 조합할 필요가 적습니다.
    • 학습 효율성 향상 : DeepFM에서는 FM 계층과 DNN 계층이 동일한 임베딩을 공유하여 학습하기 때문에 각 계층이 서로 다른 방식으로 특성을 학습하더라도, 임베딩이 공유되기 때문에 중복 학습을 줄이고 학습 효율성이 높아집니다.

     

    하지만 DNN을 추가하는 등 더 복잡한 구조를 가지게 되면서 발생하는 한계점도 있습니다. 

    • 고성능 연산 자원 필요 : DeepFM은 FM 계층과 DNN 계층을 동시에 학습하므로, 일반적인 FM 모델에 비해 연산 비용이 더 많이 소요됩니다. 따라서 대규모 데이터셋을 다룰 때는 학습 속도가 느려지고, 배포 시 실시간 예측 속도에도 영향을 미칠 수 있습니다.
    • 대규모 데이터셋에서 과적합 문제 발생 : DeepFM은 DNN 계층을 통해 피처 간의 복잡한 비선형 관계를 학습합니다. 이는 소규모 데이터셋이나 제한된 피처 조합에서는 좋지만, 대규모 데이터셋이나 고차원 피처 조합에서는 과적합(overfitting)이 발생할 위험이 있습니다.
    • 복잡한 모델 구조로 인한 해석의 어려움 : FM 계층은 피처 간의 이차 상호작용을 통해 어느 정도 해석 가능성이 있지만, DNN 계층은 비선형 학습을 통해 상호작용을 모델링하므로 해석하기가 어렵습니다. 특히 금융, 의료 등 해석 가능성이 중요한 분야에서는 사용에 제한이 있습니다.
    • 많은 하이퍼파라미터 조정 필요 : FM과 DNN의 하이퍼파라미터를 동시에 조정해야 하므로, 모델 최적화가 복잡하고 시간이 많이 걸릴 수 있습니다.

     

     

    DeepFM은 Factorization Machine(FM)과 딥러닝의 장점을 결합하여, 복잡한 상호작용을 학습하고 예측 성능을 향상시키는 강력한 추천 알고리즘입니다. 특히 추천 시스템의 개인화와 정확도 측면에서 크게 기여할 수 있어, 많은 서비스에서 사용되고 있는 추세입니다. 다만, 더 정교한 모델링을 위한 DNN 구조로 인해 연산 자원이 많이 소모되고, 모델 최적화 과정이 복잡해진다는 점에서 사용 환경에 맞춘 효율적인 설계가 필요합니다.

     

    따라서 DeepFM을 도입할 때는 시스템 성능과 리소스 비용 간의 균형을 잘 고려하여 최적의 성능을 발휘할 수 있도록 구성하는 것이 중요합니다. 추천 시스템의 목표와 서비스 상황에 맞는 최적화 방안을 통해 DeepFM을 효과적으로 활용한다면, 사용자 경험을 향상시키는 강력한 추천 솔루션이 될 것입니다.