열‑행 방식 행렬 곱셈의 일관성 병렬 처리

열‑행 방식 행렬 곱셈의 일관성 병렬 처리

초록

본 논문은 희소 행렬의 열‑행 외적을 여러 프로세서에 일관되게 할당하는 단순한 방법을 제시한다. 각 프로세서는 입력을 복제해 두고, 출력 항목을 고정된 해시 규칙에 따라 담당한다. 작업량 균형과 통신 회피를 보장하며, 입력 읽기 비용이 지배적이 될 때까지 선형 속도 향상을 달성한다. 또한 결과 행렬의 절대값이 멱법칙을 따르는 경우, 빈도 높은 항목 탐지 알고리즘과 결합해 가장 무거운 항목의 가중치를 근사한다. 실험은 실데이터 스트림에서 빈번한 아이템 쌍 마이닝을 사례로 들어 이론적 기대치를 검증한다.

상세 분석

이 논문은 희소 행렬 A와 B의 곱 C = A·B 를 열‑행(outer‑product) 방식으로 계산한다는 전제 하에, 분산 환경에서의 효율적인 작업 분배 메커니즘을 설계한다. 핵심 아이디어는 “일관성(consistent)”이라는 개념으로, 특정 출력 원소 c_{ij} 가 어느 프로세서에 할당될지는 외적의 구체적 구조와 무관하게 고정된 해시 함수 h(i,j) 에 의해 결정된다. 따라서 동일한 (i,j) 쌍은 언제나 동일한 프로세서가 담당하므로, 중복 계산이나 충돌을 방지하면서도 입력 데이터가 각 프로세서에 복제된 상태에서 통신을 최소화한다.

작업량 분석에서는 각 프로세서가 담당하는 외적들의 총 비중이 전체 외적 수의 1/p (p는 프로세서 수) 로 제한됨을 보이며, 최악의 경우에도 O( (nnz(A)·nnz(B))/p + nnz(C) ) 의 연산량을 유지한다. 여기서 nnz(·) 는 비영(非零) 원소 개수를 의미한다. 특히 결과 행렬 C 가 희소가 아니어도, 각 프로세서는 자신이 담당하는 (i,j) 쌍에 대해 누적 합을 로컬 메모리에서 수행하고, 최종적으로 결과를 파일이나 공유 저장소에 기록한다. 이때 통신 비용은 입력 복제 비용과 최종 출력 기록 비용을 제외하고는 거의 발생하지 않는다.

또한 논문은 실제 데이터에서 C 의 원소 절대값이 멱법칙(파워‑law) 분포를 따르는 현상을 관찰하고, 이를 활용한다. 빈도 높은 항목을 찾는 “frequent items” 알고리즘(예: Misra‑Gries, Space‑Saving)과 결합해, 각 프로세서가 담당하는 서브행렬에 대해 상위 k 개 원소를 추정한다. 이 추정값을 전역적으로 합산하면, 전체 행렬에서 가장 무거운 항목들의 가중치를 근사적으로 복원할 수 있다. 이 과정은 추가적인 통신 없이 로컬 연산만으로 이루어지며, 메모리 사용량도 O(k·p) 로 제한된다.

실험 부분에서는 0‑1 희소 행렬을 이용한 거래 데이터 스트림에서 빈번한 아이템 쌍을 찾는 문제를 사례 연구한다. 여기서 행렬 곱셈은 아이템-트랜잭션 행렬과 그 전치 행렬의 곱으로 표현되며, 결과 행렬의 (i,j) 원소는 아이템 i 와 j 가 동시에 등장한 횟수를 의미한다. 제안된 방법은 기존의 스트림 기반 카운터 기법에 비해 메모리 사용량을 크게 줄이면서도, 정확도 손실을 최소화한다. 특히 프로세서 수를 늘릴수록 입력 읽기 비용이 전체 실행 시간의 병목이 되는 지점까지 거의 선형적인 속도 향상을 보였다.

이러한 결과는 대규모 그래프 분석, 텍스트 코오시턴스 행렬 구축, 추천 시스템 등에서 희소 입력에 대해 결과가 조밀할 가능성이 있는 경우, 통신 비용과 저장 비용을 크게 절감할 수 있음을 시사한다. 또한 일관된 해시 기반 할당 방식은 구현이 간단하고, 기존의 MapReduce 혹은 Spark와 같은 프레임워크에 쉽게 통합될 수 있다.