• Graphical Model은 왜 필요한가? 
  • Graphical Model로 무엇을 할 수 있는가?
  • Graphical Model의 구동방식

 

Graphical Model은 왜 필요한가?

 

기존에 collaborative filtering은 추천시스템을 만드는데 유용한 알고리즘이지만, 몇가지 가정이 신경쓰인다. 

첫째, 유저들의 관계가 simple하다고 가정하는 것과 둘째, 유저의 preference가 static하다는 가정이다. 실제로는 관계가 간단하지도 그리고 선호도가 계속 변하기때문에 일정한 선호도를 갖지도 않는다. 그래서 이런문제를 반영하여 해결하려는 노력으로 Graphical Model이 도입되었다. 

 

Graphical Model로 무엇을 할 수 있는가?

Graphical Model을 사용하면 1) 유저 선호도간의 복잡한 관계를 잡아낼 수 있고, 2) 마코비안 스트럭쳐를 사용하여 그래피컬 모델을 사용한 경우 추천시스템에서 유저 선호도의 일시적인 면을 잡아낼 수도 있다. 모든 유저들의 선호도 관계를 모르고 부족한 데이터로도 모델을 만들 수 있다는 장점이 있다. 

 

 

Graphical Model의 구동방식

 

아래처럼 Neflix에서 제공된 영화가 있다고해보자. 

영화는 노드 그리고 이를 잇는 엣지들이 있다. 엣지들은 두 영화간의 관계를 나타낼 수 있고 한명의 유저가 그 영화를 좋아하면 +1, 아니면 -1로 표기를 한다. 그리고 다른 유저들도 하나씩 표기를 한다고 한다. 이때, Graphical Model은 적절한 age structure와 assocciated parameters를 이용해 관계를 잡아낼 수 있다. 그렇다면 그 그래프에 관계된 파라미터들은 뭘까? 이를 설명하기 위해 특별한 파라미터화가 필요한데 이런 모델을  pairwise graphical model이라고 한다. 

 

아래 그림에서 보듯이 시그마와 각 시그마간의 관계를 나타내는 파라미터 쎄타가 존재한다.

그리고 4개의 변수가 이런 특정 파라미터를 갖을 확률을 공식으로 나타낼 수 있다. 

그렇다면, 정확하게 파라메터를 예측하는 방법이 있을까? 그 방법중 하나가 moment matching이다. 간단히 설명하면, 우선 파라메터를 주고 경험적으로 얻은 순간과 비교한다. 이때 발생한 mismatch를 줄이는 방향으로 node와 edge paramater를 학습한다. 그리고 good match를 찾을때까지 이를 반복한다. 간단하다! 그렇다면 이걸 하기 위한 방법은? belief propagation algorithm이다. 이 계산 간단하지 않지만 한 여성이 단지 하나의 영화에 대한 평가를 내린것에도 다른 영화를 추천할 수 있을만큼의 대단한 모델을 만드는 graphical model을 구현하는데 사용된다. 

 

앞에서 언급했듯이 일시적인 면을 잡아낼 수 있다고 했다. 이게 무슨 뜻이냐면, 예를 들어 아이언맨 1, 2, 3 영화가 있다면 무슨 영화를 먼저 추천해줄 것이냐에 대한 문제를 해결하기 위한 관점이다. 아이언맨 3가 가장 인기가 많아서 3를 추천해주는것이 맞겠지만, 어떤 유저는 1을 먼저 봤다면 그 다음에는 2를 볼것이라고 예상하고 2를 제안해줄 수 있다. 이런 문제를 해결하는데 Graphical Model이 유용하고 이 문제를 해결하기 위한 알고리즘으로 Hidden Markov Model이 있다. 이는 시간의 흐름을 반영하였다. 

 

'데이터분석 > 추천시스템' 카테고리의 다른 글

추천시스템 만드는 개념  (0) 2022.07.13
추천 시스템 소개  (0) 2022.07.11

+ Recent posts