신문로

데이터 해석에서 저차원 행렬 모델의 효용성

2023-11-03 11:34:57 게재
류한백 위스콘신대 수학과 교수, 데이터과학 기초연구소

데이터 과학 전반에 걸쳐서 데이터는 주로 행렬(숫자의 행과 열)로 표현된다. 이런 행렬 데이터를 분석하고 표현하는 효과적인 방법을 찾는 것은 응용수학 통계학 기계학습 인공지능 거대언어모델 등 다양한 분야에서 요구된다. 저차원(low-rank) 행렬 모델링은 행렬로 이루어진 복잡한 데이터의 차원을 낮추는데 도움을 주면서 중요한 정보를 보존할 수 있는 강력한 도구로 인정받는다.

이러한 기술은 100년 넘게 폭넓게 연구되었고, 데이터 과학에 여러가지 이점을 준다. 데이터의 차원을 축소함으로써 대규모 데이터 집합을 다루는데 도움을 주고, 데이터의 노이즈를 줄이고 복잡한 데이터를 간단하게 만드는데 도움을 주고, 종종 해석 가능성을 제공하여 데이터 과학자가 데이터의 기본 구조를 파악하고 의미 있는 정보를 추출할 수 있게 한다. 또한 이 방법은 계산적으로 효율적이어서 실시간 또는 온라인 데이터 분석에 적합하다.

데이터는 많은 수의 개체들 각각에 대한 특징(feature) 정보를 행렬로 모아놓은 형태로 되어 있다. 만약 행이 10개, 열이 100개가 있다면 각 100개의 개체의 특징정보를 10개의 숫자로 표현해 놓은 식이다.

여기서 개체들이 사람일 경우 특징은 설문조사에 참여한 각 응답자의 의견, 전자 상거래 웹사이트를 방문한 각 고객의 구매 및 브라우징 이력, 신용카드 신청자의 금융 이력 등이 될 수 있다. 자산운용 분야에서 개체는 금융상품이고 특징은 각 상품의 주식성과나 환경보호 및 기업경영에 대한 지표 등일 수 있다. 의료 연구 분야의 경우 개체는 종양샘플, 각 샘플의 특징은 면역마커 크기 위치 및 주요 돌연변이 지표 등이 가능하다.

이런 데이터 행렬의 분석을 어렵게 하는 것은 ‘높은 차원’과 ‘결측치’다. 예를 들어 넷플릭스의 영화 선호도 데이터 행렬은 2만여편의 영화들이 행에, 48만여명의 사용자가 열에 나열되어 있고, 각 행과 열에 해당하는 셀에는 시청유무, 동영상에 대한 사용자의 평점이 기록되어 있다고 하자. 여기서 행의 개수가 데이터의 차원이고, 관측되지 않은 셀들이 결측치다. 실제로 넷플릭스 데이터의 차원은 2만(영화의 개수)이고 결측률은 99%이다.

이런 데이터 행렬이 있을 때 결측된 데이터를 대체하고 관측된 데이터를 정제할 수 있을까? 관측된 셀들 사이의 패턴을 찾아낼 수 있을까? 관측되지 않은 셀들이 미래의 데이터라면, 미래를 엿보지 않고 이를 데이터로부터 배울 수 있을까? 이와 같은 문제를 해결할 수 있는 방법이 저차원 행렬 모델링이다.

각 개체의 잠재적 변수 찾아내는 것이 중요

저차원 행렬 모델링의 기본 가정은 바로 각 개체와 각 특성들이 잠재적 변수를 가지고 있어서, 행렬의 각 셀이 사실 그 잠재적 변수들의 곱으로 이루어져 있다는 것이다. 이를 쉽게 설명하기 위해 다시 넷플릭스 데이터로 돌아가보자. 각 영화들이 얼마나 ‘호러’ 장르에 가까운지를 나타내는 잠재적 변수 x와, 각 시청자가 ‘호러’ 장르를 얼마나 좋아하는지를 나타내는 잠재적 변수 y가 있다고 해보자. 그러면 영화 x와 시청자 y에 해당하는 셀의 값인 시청자의 평점은 두 잠재적 변수의 곱 xy가 크면 크게, 작으면 작게 나타나게 될 것이다. 만약 호러 장르 하나로 전체 행렬을 잘 설명할 수 없다면 ‘액션’이나 ‘멜로’ 등 다른 장르에 해당하는 잠재적 변수를 추가로 상정해 이들의 곱을 더해주면 된다.

여기서 핵심은 이렇게 사용되는 잠재적 변수(장르)의 개수는 원래 행렬의 행(영화)의 개수보다 훨씬 작다는 것이다. 이것이 행렬의 저차원 모델링의 핵심이다. 저차원 행렬 모델링을 실제로 적용하기 위해서는 각 개체와 특성들의 잠재적 변수를 찾아내야 한다. 이를 위한 교차 최적화(block minimization), 주성분 분석(Principal Component Analysis) 등 다양한 최적화 알고리듬들이 개발되어 있다.

의료 분야에서도 저차원 행렬 모델링은 중요한 의사결정 수단이 된다. 효과적인 치료를 하려면 환자에게 어떤 맞춤형 치료가 효과를 줄 것인지를 알아내야 하는데, 이를 위해서는 관찰된 의료 데이터로부터 환자가 어떤 군집에 속해있는지를 식별하는 것이 중요하다. 양의학에서 환자를 나이별 성별 또는 유전자 검사를 통해 분류하거나 한의학에서 환자를 체질로 구분하는 것이 이와 비슷한 맥락이다. 한정된 의료 기록에서 유사한 환자 그룹을 식별하는 것은 쉬운 작업이 아니지만, 저차원 모델은 누락된 데이터를 보완하고 유사한 환자 그룹을 식별하는 데 성공적으로 사용되고 있다.

저차원 행렬 모델링은 의료뿐만 아니라 다양한 데이터 과학 작업에 적용된다. 예를 들어 이미지 처리에서는 이미지를 압축해 저장공간과 전송대역폭을 줄이는데 사용되고, 협업 필터링에서는 저차원 행렬 분해기법을 사용해 맞춤형 추천을 만든다. 챗GPT와 같은 자연어 처리에서는 대용량 텍스트 데이터에서 의미있는 정보를 추출해 감정분석 및 토픽모델링에 사용되며, 금융 분야에서는 포트폴리오 최적화와 리스크 평가에 활용된다. 환경과학자는 기후데이터를 분석하고 사회 과학자들은 인간행동의 패턴을 이해하기 위해 이를 적용한다.

고차원 행열 데이터도 저차원으로 설명 가능

무한해 보이는 우주를 몇가지의 단순한 원리로 설명하려는 시도는 인류의 역사상 무수히 많았다. 아리스토텔레스의 원소설, 뉴턴의 물리법칙, 도가와 유가의 음양론 등은 이중 일부에 지나지 않는다. 우리는 날이 갈수록 복잡한 데이터를 생산하고 기록하지만, 여기서 파생되는 고차원 행렬 데이터는 놀랍게도 그 분야를 가리지 않고 저차원으로 설명된다. 우리 사회의 생활 양식과 인공지능이 아무리 발전해도 사실 그 안에서 살아가는 우리는 그렇게 복잡한 존재가 아닐지 모른다.