추천 알고리즘 탐색, Deep FM 알아보기

2021. 8. 19. 06:51

이전 포스팅에서 Factorization Machine 알고리즘에 대해서 알아보았다.
( 참조: 추천 알고리즘 탐색, Factorization Machine 알아보기 )

 

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

 

 

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 )

그 외 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 )

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


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

댓글()