새소식

Deep Learning/Recommender System

[추천 시스템] 신뢰 기반 추천 시스템

  • -
728x90

우리는 넷플릭스의 알고리즘보다 친한 친구가 그 영화 재밌더라하고 말하는 걸 더 신뢰하곤 한다. 전통적인 협업 필터링(Collaborative Filtering)의 한계를 사회적 신뢰 네트워크(Web of Trust)로 극복하는 Network-Centric & Trust-Centric Methods에 대해 정리해보자.

호모필리(Homophily)와 신뢰(Trust)

신뢰 기반 추천 시스템의 전제는 유유상종, 다른 말로는 끼리끼리라는 것이다. 즉 연결된 사용자들은 비슷한 취향을 가질 확률이 높다는 것이다. 이를 추천 시스템에 적용할 때 핵심이 되는 두 가지 개념이 있다.

  1. 신뢰 Trust
    • 사용자가 특정 연결된 사용자의 의견을 얼마나 신뢰하는지
    • 사용자가 친구나 연결된 사용자들의 취향과 추천을 더 신뢰하는 경향을 보임
    • 추천 과정에서 평점 가중치로 작용하여, 더 신뢰하는 사용자로부터의 추천을 우선함
  2. 호모필리 Homophily
    • 연결된 사용자들 간의 유사한 취향과 관심사
    • 유사한 취향을 가진 사용자들이 서로 연결되며, 이러한 유사성이 추천에 활용
    • 단순히 유사한 평점 패턴을 기반으로 추천 개선함

유사한 취향을 가진 사용자들이 서로 연결되면 그들간의 신뢰가 자연스럽게 형성된다. 이러한 신뢰 정보는 명시적(Explicit)으로 수집되거나, 소셜 네트워크의 상호작용을 통해 암묵적(Implicit)으로 추론될 수 있다.

Propagation & Aggregation

신뢰 네트워크가 대부분의 사용자 쌍 간에 직접적인 신뢰 관계가 없는 상태로 시작한다. 따라서 직접적인 신뢰 관계가 부족한 사용자 쌍 간의 신뢰도를 예측하는 것이 필수적이다. 즉 내 친구(직접 연결)의 데이터만으로는 부족하다. "친구의 친구"까지 신뢰를 확장해야 데이터 희소성 문제가 해결될 수 있다.

  • Trust (신뢰): "나는 이 사람의 안목을 믿는다." (방향성 있음, $A \to B$)
  • Trust Propagation (신뢰 전파): 내 친구가 믿는 사람이라면, 나도 그 사람을 어느 정도 믿을 수 있다. (Transitivity)

신뢰 전파 (Propagation)

경로를 따라 신뢰가 어떻게 전달되는지 계산한다.

  • 곱셈적 접근 (Multiplicative): 경로가 길어질수록 신뢰도는 감소한다.
    • 예: Alice(0.8) $\to$ Bob(0.5) $\to$ Charlie $\Rightarrow$ $0.8 \times 0.5 = 0.4$
  • Decay Factor: 경로 길이 $q$에 따라 $\beta^q$를 곱해 멀리 있는 관계의 영향력을 줄인다.

신뢰 집계 (Aggregation)

한 사람에게 도달하는 경로가 여러 개일 때 이를 합치는 과정이다.

  • Max, Min, Average, Weighted Sum 등이 사용된다.
  • 최종적으로 $t_{AC} = f(t_{AB}, t_{BC}, \dots)$ 함수를 통해 나와 연결되지 않은 사용자와의 신뢰도를 예측한다.

주요 알고리즘의 진화

신뢰를 전파하고 평점을 예측하는 방법론은 그래프 탐색에서 머신러닝 모델로 진화해왔다.

TidalTrust: "가깝고 강한 놈만 믿는다"

 

  • 핵심: 최단 경로(Shortest Path) 중에서도 신뢰도가 높은 경로만 활용
  • 프로세스:
    1. BFS 탐색: Source에서 Sink까지의 최단 경로를 찾음
    2. 임계값($\beta$) 설정: 경로상의 최소 신뢰도 중 가장 큰 값을 기준으로 삼아 약한 연결을 가지치기
    3. 가중 평균: 살아남은 경로의 사용자들의 평점을 신뢰도 기반으로 가중 합산하여 예측
  • 특징: Query-dependent (요청 시 계산) 방식이라 정확도는 높지만 연산 비용이 듦

MoleTrust: "미리 계산해두자"

 

  • 핵심: 특정 사용자를 기준으로 미리 정해진 깊이(Depth $\delta$)까지의 모든 신뢰도를 사전에 계산한다
  • 특징: TidalTrust와 달리 Sink를 지정하지 않고, 전체 네트워크를 한 번 훑어두기 때문에(Pre-computed) 실시간 추천에 유리하다. 단, 임계값을 전역적으로 설정해야 하는 단점이 있다.

TrustWalker: "랜덤 워크 + 아이템 유사도"

 

  • 핵심: 신뢰 네트워크만 보는 게 아니라, 아이템 기반 협업 필터링(Item-based CF)을 결합한다
  • 동작: 그래프를 랜덤 워크(Random Walk)하다가,
    1. 친구가 해당 아이템을 평가했으면 $\to$ 그 점수 사용 (Stop)
    2. 평가 안 했으면 $\to$ 확률적으로 멈춰서 그 친구가 평가한 유사한 다른 아이템의 점수를 가져오거나, 더 먼 친구에게 이동 (Continue).
  • 장점: 너무 먼 관계의 노이즈를 줄이고, 아이템 정보를 함께 활용해 정확도를 높인다.

머신러닝의 도입: 행렬 분해(Matrix Factorization)

딥러닝 이전에 가장 강력했던 방식은 MF를 확장한 모델들을 이용했다.  평점 행렬($R$)과 신뢰 행렬($T$)을 동시에 분해(Joint Factorization)하는 방식을 주로 사용했다.

SoRec (Social Recommendation)

전통적인 MF 공식에 사회적 정규화 항(Social Regularization Term)을 추가했다.

$$\text{Minimize } J = \underbrace{\|R - UV^T\|^2}_{\text{평점 오차}} + \beta \underbrace{\|T - UZ^T\|^2}_{\text{신뢰 오차}} + \lambda (\|U\|^2 + \|V\|^2 + \|Z\|^2)$$
  • $U$ (User Latent Matrix): 평점 예측과 신뢰 예측 양쪽에서 공유된다. 즉, "나의 취향($R$)"과 "나의 사회적 관계($T$)"는 연결되어 있다는 가정
  • 이 외에도 SocialMF (이웃의 잠재 벡터 평균으로 내 벡터를 근사), TrustSVD 등이 존재

Benefits

이 복잡한 과정을 거쳐 얻는 이득은 명확합니다.

  1. Cold-Start 해결: 가입 직후라 평점이 없어도, 페이스북 계정 연동 등으로 친구 관계만 알면 추천이 가능하다. 
  2. 공격 저항성 (Attack Resistance): 악의적인 봇(Bot)들이 평점을 조작하려 해도, 내 신뢰 네트워크에 포함되지 않은 '가짜 계정'의 점수는 무시되거나 낮은 가중치를 받는다.
  3. 논쟁적 아이템(Controversial Items) 대응: 호불호가 극명히 갈리는 영화라도, 나와 취향이 비슷한(신뢰하는) 그룹의 의견을 따르므로 개인화된 만족도가 높아진다.

과거의 신뢰 기반 추천이 휴리스틱한 그래프 탐색에 의존했다면, 최근에는 GNN(Graph Neural Networks)을 통해 소셜 그래프와 아이템 그래프를 통합 학습하는 방향으로 발전하고 있다. 하지만 "사용자 간의 관계가 취향을 대변한다"는 본질적인 아이디어는 여전히 유효하다.

Reference: Aggarwal, C. C. (2016). Recommender Systems: The Textbook. Springer.

 

 

 

 

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.