본문 바로가기

DL & ML/Graph

[그래프와 추천 시스템] 그래프란 무엇이고, 왜 중요할까?

728x90
반응형

최근 딥러닝 분야에서 그래프에 대한 관심이 매우 높아졌습니다.

특히 추천 시스템에서 GNN(Graph Neural Network)를 사용한 연구가 활발히 진행되고 있는 추세입니다.

그렇다면 그래프란 무엇이고, 이를 왜 추천 시스템에서 사용하는 것일까요?

 

 

그래프란 무엇일까?

그래프란 정점(node 또는 vertex)와 간선(edge)로 표현된 데이터 입니다.

 


그래프로 데이터를 표현하면 데이터 요소들간의 관계와 구조를 나타내기에 유용합니다.

실제로도 생각보다 그래프로 표현하기에 적합한 데이터들이 매우 많이 존재합니다.

예를 들면, SNS에서 친구 목록! 누가 누구를 팔로우하고, 팔로잉되고있는지 처럼 SNS 속 사람과 사람 간의 관계는 단순히 텍스트 데이터보다는 그래프로 표현했을 때 효과적입니다.

또는 화학 분야에서의 분자 구조도 일종의 그래프로 표현하기 적합한 데이터라고 볼 수 있습니다.

 

 

그래프 관련 인공지능 문제

1) 정점 분류 문제 (Vertex Classification)

그래프를 사용하여 해당 정점이 어떤 클래스에 속해있는지를 예측할 수 있습니다.

예를 들어, 아래와 같이 트위터에의 Retweet 관계를 파악하여 각 사용자의 정치적 성향을 찾아낼 수 있다고 합니다. 

 

https://www.boostcourse.org/ai211/lecture/1157069

 

 

2) 연결 예측 문제 (Link Prediction)

그래프를 사용하여 정점과 정점 사이에 간선이 존재할지(앞으로 존재하게 될 것인지)를 예측할 수 있습니다.

예를 들어, 페이스북에서 사용자 A와 사용자 B가 앞으로 친구가 될 가능성이 있는지를 그래프를 통해서 파악할 수 있다는 것입니다.

 

 

3) 군집 분석 문제 (Community Detection)

그래프를 사용하여 연결 관계를 가지고 의미있는 군집을 찾아낼 수 있습니다.

예를 들면, 아래와 같이 사회적 무리(Social Circle)을 찾아내는 것입니다.

https://www.boostcourse.org/ai211/lecture/1157069

 

 

4) 랭킹 및 정보 검색 문제

웹을 거대한 그래프로 표현하고, 관련성있는 웹페이지를 찾아내는 데에 그래프가 사용이 가능합니다.

https://www.boostcourse.org/ai211/lecture/1157069

 

 

그렇다면 추천 시스템에서는 어떻게 그래프가 사용될까요?

특정 사용자에게 특정 아이템(유튜브라면 동영상, 아마존이라면 상품)을 추천해주기 위해서는 기존 사용자들의 history를 데이터화 시켜야합니다.

이를 사용자와 아이템 간의 관계성을 가지고 데이터화를 하면 다음과 같이 표현할 수 있습니다.

 

 

 

이처럼 그래프로 데이터를 표현하면 어떤 사용자가 어떤 아이템들을 선호하고, 어떤 아이템이 어떤 사용자들에게 선호를 받았는지 구조화하고 의미를 담아내기에 유용합니다.

 

추천 시스템에서는 주로 위에서 말했던 "연결 예측(link prediction)"을 통해서 추천을 하게 됩니다.

어떤 사용자와 어떤 아이템 사이에 "선호 관계"가 있을 것인가? 를 그래프를 통해 예측하고, 추천을 하게 되는 것입니다.

 

 

추천에는 크게 두 가지 종류가 있습니다.

 

1. Content-based Recommendation

아이템의 내용을 기반으로 추천하는 것입니다.

예를 들어, A가 로맨스 영화를 좋아한다고 가정해봅니다.

A가 로맨스를 좋아하니 우리는 A에게 어떤 영화를 더 추천하면 A의 만족도가 높아질까요?

스릴러나 액션 영화보다는 A가 좋아하는 로맨스 장르의 영화를 추천하는게 A가 만족할 가능성이 비교적 더 높겠죠?

이처럼 특정 아이템의 Content 정보를 기반으로 유사한 아이템을 추천해주는 것을 Content-based Recommendation이라고 합니다.

 

2. Collaborative Filtering Recommendation

이는 나와 유사한 취향을 가진 다른 사용자를 기반으로 추천을 하는 것입니다.

예를 들어, 다음과 같은 영화 선호도 정보를 가지고 있다고 가정해봅시다.

 

A : 라라랜드, 타이타닉

B : 라라랜드, 타이타닉, 비긴어게인

C : 어벤져스 

 

B와 C 중에 A는 B와 더 영화 취향이 유사한 것을 확인할 수 있습니다.

이를 통해 A랑 B가 취향이 비슷한데 B가 비긴 어게인을 좋아했대! 그러면 A도 비긴 어게인을 좋아하지 않을까?

라고 생각하고 A에게 비긴 어게인을 추천하는 것이 Collaborative Filtering 입니다.

 

이처럼 사용자와 아이템 간의 관계 속에서 추천을 하기위해서는 그래프로 데이터를 표현하는 것이 매우 유용합니다.

또한 최근에는 추천 시스템의 중심 기반은 Collaborative Filtering으로 진행이 되는 추세지만 기본적으로 좋은 추천을 하려면 여기에 content 정보도 추가한 Hybrid 기법을 사용하는 것이 좋다고 보여집니다.

 

 

 

 

 

 

 

 

본 글은 부스트코스 "그래프와 추천 시스템" 강의를 듣고 공부하며 정리 및 재구성한 글입니다.

 

그래프와 추천 시스템

부스트코스 무료 강의

www.boostcourse.org

 

728x90
반응형