본 글은 2019년 발표된 Deep Learning Recommendation Model for Personalization and Recommendation Systems
을 읽고 요약 및 정리한 글입니다.
논문
직접 구현 DLRM 모델 코드 (Pytorch)
직접 구현 DLRM Movielens100k 학습 코드 (Jupyter)
| 구분 | Wide & Deep | DeepFM | DCN | xDeepFM | DLRM |
|---|---|---|---|---|---|
| 핵심 아이디어 | Wide(선형) + Deep(비선형) 모델 결합 → 기억( memorization ) + 일반화( generalization ) | FM의 2차 상호작용 + Deep MLP 결합 | cross layer로 명시적 feature 교차 학습 | CIN layer로 고차 상호작용을 세밀하게 모델링 | 임베딩 벡터 간 dot product 로 2차 상호작용만 학습 |
| 상호작용 방식 | Wide: 수동으로 정의된 feature cross | FM 파트: 자동 2차 교차 | cross layer에서 feature 간 곱(product)으로 상호작용 | CIN에서 feature 벡터 원소 단위까지 조합 | 임베딩 간 dot product 계산 후 MLP로 예측 |
| 상호작용 차수 | Wide: 수동 고차, Deep: 비선형 | 2차 + deep network로 간접적 고차 | 2차 이상 (layer 깊이에 따라) | 명시적 고차 (CIN 깊이에 따라 증가) | 2차 (dot product 한정) |
| Interaction 단위 | feature 단위 (hand-crafted cross) | feature vector 전체 간 조합 | feature vector 원소 단위 곱 | feature vector 원소 단위 조합 | feature vector 전체 단위 dot product |
| 구조적 복잡성 | 중간 (두 branch 결합) | 중간 (FM + MLP) | 높음 (cross layer 추가) | 매우 높음 (CIN 계산량 많음) | 낮음 (embedding + dot product + MLP) |
| 계산 효율성 | 중간 | 중간 | 낮음 | 낮음 | 높음 |
| 장점 | 단순, 빠름, 해석 쉬움 | 자동화된 2차 상호작용 + deep 표현력 | 명시적 교차로 feature 관계 잘 학습 | 강력한 고차 상호작용 표현력 | 단순·효율적·대규모 데이터 처리에 적합 |
| 단점 | 수동 feature cross 필요 | 고차 표현 한계 | 계산 복잡도 증가 | 계산/메모리 비용 매우 큼 | 고차 표현력 제한 (2차까지만) |
| DLRM과의 차이점 | DLRM은 수동 cross 없이 dot-product로 자동 학습 | DLRM은 FM처럼 2차만 다루지만 더 효율적 | DLRM은 cross layer 제거, 구조 단순 | DLRM은 element-level 교차 없이 vector-level만 | — |
