설명
Attentional Factorization Machine (AFM)은 주의 네트워크를 통해 특징 상호작용의 중요성을 학습함으로써 Factorization Machine의 성능을 향상시키도록 설계된 정교한 모델입니다. 이 리포지토리는 Factorization Machines (FM)의 기본 개념을 기반으로 AFM 모델의 직접적인 TensorFlow 구현을 제공합니다.
이 프로젝트는 Jun Xiao, Hao Ye, Xiangnan He, Hanwang Zhang, Fei Wu, Tat-Seng Chua가 IJCAI 2017에서 발표한 "Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks" 논문을 기반으로 합니다. 이 구현은 회귀 및 분류 작업을 모두 지원하며 RMSE를 최적화합니다.
사용자는 이 코드를 활용하여 연구 결과를 재현하거나 AFM을 자체 데이터셋에 적용할 수 있습니다. 리포지토리에는 TensorFlow (버전 1.0.1), NumPy, Scikit-learn이 필요한 환경 설정에 대한 명확한 지침이 제공됩니다. 데이터셋은 LibFM 툴킷의 입력 형식을 따라야 하며, 개인화된 태그 추천을 위한 MovieLens 데이터셋을 사용한 예제가 포함되어 있습니다.
포함된 빠른 예제는 먼저 FM 모델을 훈련하여 사전 훈련한 다음, 이 가중치를 사용하여 AFM 모델을 훈련하는 방법을 보여줍니다. 이 접근 방식을 통해 표준 FM과 향상된 AFM 간의 성능을 직접 비교할 수 있습니다. 또한 이 코드는 테스트 데이터셋에서 훈련된 모델을 평가하는 기능도 포함합니다.
이 구현은 추천 시스템, 머신러닝, 딥러닝 분야의 연구원 및 실무자가 특징 상호작용의 미묘한 차이를 효과적으로 포착하여 모델의 정확성과 해석 가능성을 개선하고자 할 때 특히 유용합니다. 주의 메커니즘을 통해 모델은 다양한 특징 쌍의 중요도를 동적으로 가중치를 부여하여 보다 정확한 예측을 할 수 있습니다.
Attentional Factorization Machine 하이라이트
Attentional Factorization Machine (AFM)의 TensorFlow 구현
회귀 및 분류 작업 지원
RMSE 최적화
주의 네트워크를 통한 특징 상호작용 가중치 학습
사전 훈련을 위한 Factorization Machines (FM) 구현 포함
특징 벡터 변환을 위한 원-핫 인코딩 사용
LibFM 데이터셋 형식과 호환
MovieLens 데이터셋 예제 사용 제공
훈련 및 평가를 위한 스크립트 포함
코드베이스에 AFM.py, FM.py, LoadData.py 포함
모델 사전 훈련 지원
Attentional Factorization Machine 시작하기
환경 설정: TensorFlow (v1.0.1), NumPy, Scikit-learn을 설치합니다.
데이터셋 준비: LibFM 툴킷 사양에 따라 데이터를 형식화합니다.
FM 모델 훈련: 사전 훈련을 위해 지정된 데이터셋과 매개변수로 `python FM.py`를 실행합니다.
AFM 모델 훈련: 사전 훈련된 FM 가중치를 사용하여 `python AFM.py`를 실행합니다.
모델 평가: `--process evaluate` 플래그와 함께 `python FM.py` 또는 `python AFM.py`를 실행합니다.
Attentional Factorization Machine의 사용 사례
- 추천 시스템
- 태그 추천
- 클릭률 예측
- 특징 상호작용 학습
- 머신러닝 모델 개발








