이전 포스팅에서 Factorization Machine 알고리즘에 대해서 알아보았다. Deep FM을 이해하기 위해서는 Factorization Machine을 먼저 알아보는 것이 도움이 된다.
추천 알고리즘에서 많이 사용하는 데이터를 Factorization Machine 알고리즘에서는 어떻게 편집하고, 학습하는지에 대해서 알 수 있었다. 하지만 그 외에 User와 Item Feature를 더 넣어서 알고리즘을 만들고 싶었다. 이에 대해 알아보던 중 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를 추가로 고려할 수 있다는 점이 상당히 매력적이라고 생각한다.
'데이터 > 데이터 분석' 카테고리의 다른 글
파이썬 판다스 설치하고, 기초 사용법 읽히기 (0) | 2022.01.19 |
---|---|
데이터 시각화, Plotly 차트 쉽게 그리는 방법 -cufflinks 이용하기 (0) | 2022.01.19 |
파이썬 워드클라우드, 이쁘게 그리는 방법은?! (0) | 2022.01.19 |
파이썬 KoNLPy, 형태소 분석 및 워드클라우드 그리는 법은?! (2) | 2022.01.18 |
추천 알고리즘 탐색, Factorization Machine 알아보기 (0) | 2022.01.18 |
범주형 데이터 기준 의사결정나무 알고리즘 만들기 (0) | 2022.01.17 |
데이터 분석 용어 정리 - Funnel, adhoc 분석 (0) | 2022.01.17 |
XGBoost와 랜덤 포레스트 재학습 하는 방법은? (0) | 2022.01.17 |