목표
- 확률행렬의 예와 차분방정식에의 응용을 배웁니다.
- Google의 PageRank 알고리즘을 이해합니다.
- 계산 절차: 양의 확률행렬의 정상상태를 구합니다.
- 그림: 양의 확률행렬의 동역학입니다.
- 정리: 페론–프로베니우스 정리입니다.
- 용어: 차분방정식, (양의) 확률행렬, 정상상태, 중요도 행렬, Google 행렬.
이 절에서는 고윳값의 흔한 응용 중 하나인 차분방정식, 특히 마르코프 연쇄의 연구를 다룹니다. 이러한 유형의 차분방정식을 나타내는 확률행렬을 소개하고, 확률행렬의 가장 유명한 예인 Google 행렬을 자세히 다룹니다.
임의의 시각에서의 상태를 수의 목록으로 기술할 수 있는 시스템을 연구한다고 가정합시다. 예를 들어 나이가 각각 세와
세인 토끼의 수, 또는 애틀랜타에 있는 각 Red Box 키오스크에 있는 Prognosis Negative의 사본 수가 그러합니다. 각 경우에 시각
에서의 상태를 벡터
로 나타낼 수 있습니다.
는 이산적인 시간의 양을 나타낸다고 가정합니다. 다시 말해
는 “
일째” 또는 “
년째”의 상태입니다. 또한 시각
에서의 상태가 시각
에서의 상태와 선형적으로 관련되어 있다고 가정합시다. 즉, 어떤 행렬
에 대해
입니다. 이 소절에서 다룰 상황이 바로 이것입니다.
차분방정식은 행렬
와
의 벡터
에 대하여
꼴로 나타나는 방정식입니다.
다시 말해:
이라는 점에 유의하십시오. 이로부터 차분방정식의 장기적 거동이 고윳값 문제임을 짐작할 수 있습니다.
이 소절과 다음 소절에서는 다음 예를 사용합니다. 이 절을 이해하는 것은 곧 이 예를 이해하는 것입니다.
Red Box는 애틀랜타 곳곳에 영화를 대여할 수 있는 키오스크를 두고 있습니다. 대여한 영화는 다른 어느 키오스크에든 반납할 수 있습니다. 간단히 하기 위해 애틀랜타에 키오스크가 세 곳 있고, 모든 고객이 다음 날 영화를 반납한다고 가정합시다. 를 키오스크
및
에 있는 Prognosis Negative의 사본 수를 각각 성분
로 갖는 벡터라고 합시다.
를
-성분이 키오스크
에서 Prognosis Negative를 대여한 고객이 이를 키오스크
에 반납할 확률인 행렬이라고 합시다. 예를 들어 행렬
은 키오스크 3에서 대여한 고객이 영화를 키오스크 2에 반납할 확률이 이고, 키오스크
에서 대여된 영화가 키오스크
에 반납될 확률이
임을 나타냅니다. 예를 들어 행렬
의 둘째 행은 다음을 말해 줍니다.
키오스크
에 반납되는 영화의 수는 (평균적으로) 다음과 같습니다:
이를 세 행 모두에 적용하면 다음과 같습니다.
따라서 는 다음 날 각 키오스크에 있는 영화의 수를 나타냅니다.
이 시스템은 차분방정식으로 모델링됩니다.
차분방정식에 대해 던져야 할 중요한 질문은 그 장기적 거동이 어떠한가 하는 것입니다. 100일 후에는 각 키오스크에 몇 편의 영화가 있겠습니까? 다음 소절에서는 특정한 유형의 차분방정식에 대해 이 질문에 답하겠습니다.
이 소절에서는 Red Box 예제처럼 확률을 나타내는 차분방정식을 다룹니다. 이러한 시스템을 마르코프 연쇄라고 합니다. 이 절에서 가장 중요한 결과는 마르코프 연쇄의 장기적 거동을 설명하는 페론–프로베니우스 정리입니다.
정사각행렬 의 모든 성분이 음이 아니고 각 열의 성분의 합이
이면
를 확률행렬이라고 합니다.
행렬의 모든 성분이 양수이면 그 행렬을 양행렬이라고 합니다.
양의 확률행렬은 모든 성분이 양수인 확률행렬입니다. 특히 0인 성분은 하나도 없습니다. 예를 들어, 아래의 첫 번째 행렬은 양의 확률행렬이지만 두 번째 행렬은 그렇지 않습니다.
Red Box 예제를 이어서 살펴보면, 행렬
는 양의 확률행렬입니다. 각 열의 합이 이라는 사실은 특정 키오스크에서 대여된 모든 영화가 어떤 키오스크로든 반드시 반납되어야 함을 의미합니다(모든 고객은 다음 날 영화를 반납한다는 점을 기억하십시오). 예를 들어, 첫 번째 열은 다음을 말해 줍니다.
키오스크
에서 대여된 영화 중
모든 영화가 세 키오스크 중 한 곳으로 반납되므로 그 합은
입니다.
행렬 는 하루에서 다음 날로의 상태 변화를 나타냅니다.
의 성분을 모두 더하면
이를 얻습니다. 이는 예상대로 세 키오스크에 있는 Prognosis Negative의 총 개수가 날마다 변하지 않음을 의미합니다.
벡터 와
의 성분의 합이 같다는 사실은 확률행렬의 각 열의 합이
이라는 사실에서 비롯됩니다.
를 확률행렬,
를 벡터라 하고,
라고 합시다. 그러면
의 성분의 합은
의 성분의 합과 같습니다.
차분방정식의 장기적 거동을 계산하는 것은 결국 고윳값 문제가 됩니다. 확률행렬의 고윳값은 매우 특별한 성질을 가집니다.
를 확률행렬이라고 합시다. 그러면 다음이 성립합니다.
실제로 양의 확률행렬 에 대해서는,
가
의 (실수 또는 복소수) 고윳값이면
임을 보일 수 있습니다. 확률행렬의
-고유공간은 매우 중요합니다.
확률행렬 의 정상상태란 고윳값
에 대응하는 고유벡터
중에서 성분이 모두 양수이고 그 합이
인 것을 말합니다.
페론–프로베니우스 정리는 확률행렬로 표현되는 차분방정식의 장기적 거동을 설명합니다. 이 정리의 증명은 이 책의 범위를 벗어납니다.
가 양의 확률행렬이라고 합시다. 그러면
는 유일한 정상상태 벡터
를 가지며, 이 벡터는
-고유공간을 생성합니다.
또한 성분의 합이 어떤 수 인 임의의 벡터
에 대하여,
가 커짐에 따라 반복값
는 에 가까워집니다.
해석: 페론–프로베니우스 정리는 다음을 주장합니다.
정상상태 벡터 는 백분율의 벡터로 생각해야 합니다. 예를 들어 오늘 영화들이 이 백분율에 따라 분포되어 있다면,
이므로 내일도 같은 분포를 가질 것입니다. 그리고 영화의 처음 분포가 어떻든 장기적인 분포는 항상 정상상태 벡터가 됩니다.
의 성분의 합
는 모형화하는 계에 있는 대상의 총수입니다. 총수는 변하지 않으므로 계의 장기적 상태는
에 가까워져야 합니다. 이 상태는
-고유공간에 포함되므로
의 배수이며,
의 성분의 합은
입니다.
가 양의 확률행렬이라고 합시다. 다음은
의 정상상태 벡터를 구하는 방법입니다.
위의 계산 절차는 손으로 계산하기에 적합하지만, 가 확률행렬이라는 사실을 활용하지는 않습니다. 실제로는 다음과 같이 컴퓨터로 정상상태 벡터를 계산하는 것이 일반적으로 더 빠릅니다.
가 양의 확률행렬이라고 합시다. 다음은 컴퓨터로
의 정상상태 벡터를 근사하는 방법입니다.
Red Box 예제에 이어, 페론–프로베니우스 정리를 명시적으로 확인해 볼 수 있습니다. 행렬
의 특성다항식은 다음과 같습니다.
이 다른 고윳값들보다 절댓값이 엄격하게 크며, 대수적(따라서 기하적) 중복도가
임에 주목하십시오. 고윳값
에 대한 고유벡터를 계산하면 각각 다음과 같습니다.
고유벡터 은 반드시 양의 성분을 가지며, 정상상태 벡터는 다음과 같습니다.
고유벡터 은
의 기저
를 이룹니다.
의 임의의 벡터
에 대해 다음이 성립합니다.
이런 식으로 를 반복해서 곱하면,
일 때 다음을 얻습니다.
이는 페론–프로베니우스 정리가 보장하는 대로, 가 고윳값이
인 고유벡터인
에 가까워짐을 보여 줍니다.
위의 계산은 애틀랜타 Red Box 키오스크에 있는 Prognosis Negative의 사본 수에 대해 무엇을 말해 줍니까? 키오스크들이 처음에 이 영화의 사본 100개를 가지고 있으며, 키오스크 1에 개, 키오스크
에
개, 키오스크
에
개가 있다고 가정합시다. 이 상태를 나타내는 벡터를
이라고 합시다. 그러면 다음 날에는 키오스크에
만큼의 영화가 있고, 그다음 날에는
만큼의 영화가 있는 식으로 계속됩니다.
라고 둡시다.
(물론 영화의 수가 분수인 것은 말이 되지 않습니다. 여기서는 수렴을 보여 주기 위해 소수를 포함했습니다.) 정상상태 벡터는 결국 영화들이 다음 비율
에 따라 키오스크에 분포하게 된다는 것을 말해 주며, 이는 위의 표와 일치합니다. 더욱이 이 분포는 키오스크에 있는 영화의 처음 분포와 무관합니다.
이제 행렬 의 동역학(즉,
를 반복하여 곱하는 것)을 시각화해 봅시다. 이 행렬은 대각화 가능합니다. 다음
에 대해 입니다. 행렬
는
좌표는 그대로 두고,
좌표는
만큼,
좌표는
만큼 배율을 조정합니다.
를 반복하여 곱하면
좌표와
좌표가 매우 작아지므로,
는 “모든 벡터를
축으로 빨아들입니다.”
행렬 는
와 같은 일을 하지만,
의 열
이 정의하는 좌표계를 기준으로 합니다. 이는
가 벡터 성분의 합을 바꾸지 않으면서 “모든 벡터를
-고유공간으로 빨아들인다”는 뜻입니다.
양의 확률행렬의 그림은 대각화 가능 여부와 관계없이 항상 같습니다: 벡터 성분의 합을 바꾸지 않으면서 모든 벡터가 “직선인 -고유공간으로 빨려 들어갑니다.” 이것이 페론–프로베니우스 정리의 기하학적 내용입니다.
1990년대의 인터넷 검색은 매우 비효율적이었습니다. Yahoo나 AltaVista는 페이지에서 검색어를 찾아본 뒤, 그 단어가 가장 많이 나오는 결과를 단순히 나열했습니다. 놀랄 것도 없이, 더 수상한 웹사이트들은 자기 페이지에 “Alanis Morissette”라는 단어를 백만 번 넣어 두면, 불안에 찬 십대가 Napster에서 Jagged Little Pill을 찾으려 할 때마다 맨 먼저 나타날 수 있다는 것을 곧 알게 되었습니다.
Larry Page와 Sergey Brin은 페이지를 중요도에 따라 랭크를 매기는 방법을 고안했습니다. 그들은 이 알고리즘을 바탕으로 Google을 설립했습니다. 대략적인 작동 방식은 다음과 같습니다.
각 웹 페이지에는 중요도, 즉 랭크가 연관되어 있습니다. 이것은 양수입니다. 이 랭크는 다음 규칙에 따라 결정됩니다.
페이지 가 다른
개의 페이지
에 링크하면, 각 페이지
는
’의 중요도의
을 물려받습니다.
실제로 이것은 다음을 의미합니다:
또 다른 방법으로, 무작위 서퍼 해석이 있습니다. “무작위 서퍼”는 하루 종일 컴퓨터 앞에 앉아 무작위로 링크를 클릭할 뿐입니다. 그가 가장 많은 시간을 보내는 페이지가 가장 중요한 페이지여야 합니다. 따라서 중요한(순위가 높은) 페이지는 무작위 서퍼가 가장 자주 도달하게 되는 페이지입니다. 이 척도는 랭크와 동치인 것으로 밝혀집니다.
페이지가 개인 인터넷을 생각해 봅시다. 중요도 행렬은
-성분이 페이지
가 페이지
에 전달하는 중요도인
행렬
입니다.
모든 페이지에 링크가 있다고 가정하면 중요도 행렬은 확률행렬임을 관찰하십시오. 페이지 에 링크가
개 있으면,
번째 열에는 수
이
번 나타나고 나머지 성분은 0입니다.
페이지가 네 개뿐인 다음 인터넷을 생각해 봅시다. 링크는 화살표로 표시되어 있습니다.
중요도 규칙을 시행하면 다음과 같습니다:
행렬로 표현하면, 가 페이지
의 랭크
를 담은 벡터일 때 다음이 성립합니다.
왼쪽의 행렬이 중요도 행렬이며, 마지막 등식은 중요도 규칙을 나타냅니다.
위의 예는 핵심 관찰을 보여 줍니다.
랭크 벡터는 고윳값이 인 중요도 행렬의 고유벡터입니다.
핵심 관찰에 비추어, 우리는 페론–프로베니우스 정리를 사용하여 랭크 벡터를 구하고자 합니다. 안타깝게도 중요도 행렬이 항상 양의 확률행렬인 것은 아닙니다.
다음은 Page와 Brin’s의 해결책입니다. 먼저 각 영 열을 s로 이루어진 열로 바꾸어 중요도 행렬을 수정합니다. 여기서
은 페이지의 수입니다:
수정된 중요도 행렬 는 항상 확률행렬입니다.
이제 에 속하는 수
를 하나 고르는데, 이를 감쇠 인자라고 부릅니다. (전형적인 값은
입니다.)
를
개의 페이지로 이루어진 인터넷의 중요도 행렬이라 하고,
를 수정된 중요도 행렬이라 합시다. Google 행렬은 다음 행렬입니다.
무작위 서퍼 해석에서 이 행렬 이 말하는 바는 다음과 같습니다: 확률
로 서퍼는 완전히 무작위인 페이지로 이동합니다. 그렇지 않으면 현재 페이지에 있는 무작위 링크를 클릭하는데, 현재 페이지에 링크가 없는 경우에는 어느 쪽이든 완전히 무작위인 페이지로 이동합니다.
독자는 다음의 중요한 사실을 확인할 수 있습니다.
Google 행렬은 양의 확률행렬입니다.
모든 페이지의 랭크의 합이 이 되어야 한다고 정하면, 다음을 얻습니다.
PageRank 벡터는 Google 행렬의 정상상태입니다.
페론–프로베니우스 정리에 의해 이것은 존재하며 양의 성분을 가집니다. 어려운 부분은 이것을 계산하는 것입니다. 실제로 Google 행렬은 엄청나게 많은 행을 가지고 있습니다.