효율적인 순차 추천을 위한 코사인 기반 트랜스포머: Cotten4Rec
초록
Cotten4Rec은 기존 BERT4Rec의 점곱 기반 Softmax 어텐션을 코사인 유사도 어텐션으로 교체하고, 단일 CUDA 커널로 구현해 O(N) 시간·메모리 복잡도를 달성한다. 실험 결과, 메모리 사용량을 약 23 % 절감하고 학습 속도를 4 %~20 % 가속하면서 정확도 손실을 최소화한다.
상세 분석
본 논문은 순차 추천(Sequential Recommendation) 분야에서 가장 널리 사용되는 BERT4Rec과 LinRec을 대상으로, 어텐션 연산의 효율성을 근본적으로 재고한다. 기존의 스케일드 점곱 어텐션은 Q·Kᵀ를 계산한 뒤 Softmax로 정규화하는 과정에서 O(N²) 메모리와 연산량을 요구한다. 특히 사용자 행동 시퀀스가 길어지고 아이템 vocabular가 지속적으로 확장되는 실제 서비스 환경에서는 GPU 메모리 초과와 높은 지연시간이 심각한 병목이 된다.
Cotten4Rec은 이러한 문제를 코사인 유사도 기반 어텐션으로 전환한다. Q와 K를 행별 L2 정규화한 뒤, 정규화된 행벡터들의 내적을 직접 계산해 Softmax를 생략하고, 결과를 V에 곱한다. 핵심은 (Kᵀ·V)∈ℝ^{d×d} 를 미리 계산해 레지스터·공유 메모리에서 유지하고, Q와의 행렬곱만 수행함으로써 전체 연산을 O(N·d)로 축소한다. 또한 행별 정규화와 행렬 곱을 하나의 CUDA 커널에 통합해 커널 호출 오버헤드와 전역 메모리 접근을 최소화한다.
수치적 안정성을 위해 스케일링 파라미터 m을 도입하고, 정규화된 Q·Kᵀ의 합이 1을 초과할 경우를 방지한다. 이는 기존 Linear Attention(LinRec)에서 ELU+1 활성화를 사용해 양수화하는 방식과 달리, 코사인 유사도가 방향성에만 집중하므로 magnitude에 의한 편향을 자연스럽게 제거한다. 결과적으로 파라미터 수는 기존 트랜스포머와 동일하지만, 메모리 풋프린트는 약 23 % 감소하고, 연산 속도는 평균 4 %~20 % 가속된다.
실험은 3개의 공개 벤치마크(예: Amazon Beauty, MovieLens, Yelp)에서 수행됐으며, HR@10, NDCG@10 등 주요 지표에서 BERT4Rec과 거의 동일한 성능을 보였다. 특히 시퀀스 길이가 200500 사이인 경우 메모리 절감 효과가 두드러졌으며, vocab size가 10⁴10⁵ 수준에서도 안정적인 학습이 가능했다.
논문의 한계는 코사인 어텐션이 d² 크기의 중간 행렬을 필요로 하므로, embedding 차원 d가 매우 클 경우(예: d>1024) 메모리 사용량이 다시 증가할 수 있다는 점이다. 또한, 현재 구현은 단일 GPU 환경에 최적화돼 있어 멀티 GPU 분산 학습에 대한 확장은 추가 연구가 필요하다.
전반적으로 Cotten4Rec은 순차 추천 시스템에서 실시간 서비스와 대규모 배치 학습을 동시에 만족시키는 효율적인 대안으로, 트랜스포머 기반 모델의 구조적 장점을 유지하면서도 연산·메모리 비용을 크게 낮춘 점이 가장 큰 기여라 할 수 있다.
댓글 및 학술 토론
Loading comments...
의견 남기기