이전 포스팅에서 Factorization Machine 알고리즘에 대해서 알아보았다. Deep FM을 이해하기 위해서는 Factorization Machine을 먼저 알아보는 것이 도움이 된다.

 

추천 알고리즘에서 많이 사용하는 데이터를 Factorization Machine 알고리즘에서는 어떻게 편집하고, 학습하는지에 대해서 알 수 있었다. 하지만  그 외에  User와 Item Feature를 더 넣어서 알고리즘을 만들고 싶었다. 이에 대해 알아보던 중 Deep FM이 이 경우에 적합할 것이라고 판단되었다. 그래서, 오늘은 Deep FM에 대해서 알아보고자 한다.

 

 

Deep FM

 

 

1. Factorization Machine과 Deep FM의 차이?

Factoriztion Machine은 추천 알고리즘에서 사용하는 데이터를 Logistic Regression과 같은 형태로 풀어내고 있다. 이 과정에서 matrix factorization을 이용하며, 이 때 implicit interaction(숨겨진 상호작용)을 고려한 알고리즘을 만들 수 있다.


Deep FM은 여기에 명시적인 interaction(explicit interaction)을 추가하여 알고리즘을 학습할 수 있다. 나이, 성별, 직업 등의 feature를 추가하여 알고리즘을 만들 수 있는 것이다. Deep FM은 CTR을 예측하는 'DeepFM: A Factorization-Machine based Neural Network for CTR Prediction' 논문에 잘 설명되어 있다.
( 참조: https://arxiv.org/pdf/1703.04247v1.pdf )

 

 

2. 그 외 interaction을 고려하는 모델

Generalized Linear Model(GLM). Factorization Machine(FM), Factorization Machine supported Neural Network(FNN), Wide&Deep model 등이 있다고 한다.

 

위의 모델들이 다 나름의 특징이 있지만, DeepFM은 low-order와 high-order feature interaction을 모두 포착할 수 있다는 것이 특징이라고 한다. 별도의 feature engineering이 불필요하다는 것도 장점이다.

 

하지만 위의 내용만으로 이해하기는 쉽지 않은 듯 하다. 그러던 와중에 Deep FM을 활용한 코드가 있는 것을 알게 되었다. 해당 코드를 참조하면 내용을 이해하는데 도움이 되지 않을까 싶다.
( 참조: https://deepctr-doc.readthedocs.io/en/latest/Examples.html )

 

 

3. Deep FM 추천에만?

Deep FM은 꼭 추천 문제에만 사용할 수 있는 것은 아니다. 추천 알고리즘과 유사한 데이터 구조에서 Y값을 예측할 때도 유용하게 사용할 수 있을 듯 하다. 아래 포스팅은 Deep FM을 이용해서 판매실적을 예측한 코드이다.
( 참조: https://projectlog-eraser.tistory.com/41 )


오늘은 이렇게 Deep FM 알고리즘에 대해서 알아보았다. 협업필터링에서 사용하는 구조에 User나 Item Feature를 추가로 고려할 수 있다는 점이 상당히 매력적이라고 생각한다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기