우리 쩝쩝LAB에서는 사용자마다의 다양한 취향(예: 맛, 양, 분위기)과 상황(예: 혼밥, 데이트, 회식 등)을 고려한 레스토랑 추천 시스템을 만들고자 합니다. 이를 위해 단순한 협업 필터링을 넘어서 저는 사용자-음식점-키워드 간의 복잡한 관계를 모델링할 수 있는 이종 그래프 기반 추천 모델을 탐색 중입니다.
이런 맥락에서, 의미적 요인을 분리해 해석 가능한 추천 결과를 만들어주는 모델인 DisenHAN을 리뷰하게 되었습니다.
기존 GNN 기반 추천 모델들은 다양한 관계(예: 구매, 리뷰, 태그 등)를 하나의 임베딩 공간에 뭉뚱그려 표현합니다. 이로 인해 다음과 같은 문제가 발생합니다:
DisenHAN은 이러한 한계를 해결하고자 다음과 같은 질문에서 출발합니다
"각 관계는 서로 다른 의미를 갖는데, 이를 분리하여 표현할 수는 없을까?"
DisenHAN은 사용자와 아이템 노드의 표현을 다양한 의미적 측면(aspect)을 하위공간(subspace)으로 분리함으로써, 각기 다른 관점에서 사용자 선호와 아이템 특성을 정밀하게 파악하려는 목표를 갖습니다. 하지만 의미 분리를 수행한 뒤에는 새로운 문제가 발생합니다. ‘분리된 각 하위공간에서의 표현들을 어떻게 정합성 있게 결합할 것인가’ 입니다. 특히 이종 그래프에서는 다양한 메타 관계가 존재하고, 각 관계가 특정 의미 측면에 서로 다른 중요도로 영향을 미칠 수 있기 때문에 단순 평균이나 고정된 가중치로는 의미 있는 결합은 어렵습니다.
이를 해결하기 위해 DisenHAN은 Graph Attention Network(GAT)에서 도입된 attention 구조를 바탕으로 하되, 이를 이종 그래프(Heterogeneous Graph)와 다중 의미 측면(Multi-Aspect)에 맞게 구조적으로 확장한 새로운 설계를 제시합니다.
먼저, 기존 GAT는 동일한 노드 타입과 관계를 전제로 모든 이웃 노드에 대해 하나의 attention score를 학습합니다. 반면 DisenHAN은 메타 관계별로 이웃 노드를 구분하고, 각 메타 관계가 각 의미 측면에 얼마나 중요한지를 별도로 학습합니다. 즉, attention weight가 단일 차원이 아닌, 관계 × 측면이라는 이차원적인 soft attention 구조를 가집니다.
이 과정에서 DisenHAN은 메타 패스를 사전에 수작업으로 정의할 필요 없이, 메타 관계 단위로 의미 정보를 분해하고 자동으로 재조합합니다. 이는 곧 자동 메타 관계 구성(Auto Meta-Relation Construction)으로 이어지며, 의미 측면과 관계 유형 간의 동적 상호작용을 학습 가능한 파라미터로 처리할 수 있게 합니다.
또한 이러한 구조는 확장성 측면에서도 매우 유리합니다. 새로운 관계 유형이 등장하거나 의미적 분류 체계가 확장되더라도, 기존 모델 구조를 바꾸지 않고 attention weight만 재학습하면 쉽게 결합할 수 있습니다. 결국 DisenHAN은 GAT의 attention 메커니즘을 기반으로, 관계-하위공간별 정렬과 집계를 가능케 하는 방향으로 진화시킨 모델로서, 의미 분리와 결합이라는 이중 과제를 효과적으로 해결하며, 해석 가능성과 확장성 면에서도 높은 장점을 보입니다.

DisenHAN은 세 가지 주요 단계로 구성됩니다: