グラフ上のランダムウォークと google のページランクnaito/lecture/... · google...
TRANSCRIPT
グラフ上のランダムウォークとGoogle のページランク
内藤 久資
名古屋大学多元数理科学研究科
2011年度数学アゴラ夏季集中コース2011年8月
(2011/08/12 改訂版)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 1 / 167
Introduction
はじめに
コンピュータやインターネットで使われている数学
コンピュータやプログラムの基本論理:
ラムダ計算・数理論理学
画像・動画・音声などの処理:
フーリエ変換(解析学)・符号理論(代数学)
3Dグラフィックス:
アフィン幾何学・射影幾何学・微分幾何学
コンピュータネットワーク:
グラフ理論・確率論・暗号(整数論・代数学)
この他にもいろいろ
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 2 / 167
Introduction
はじめに
今回の数学アゴラでは
夏の数学アゴラ
ランダムウォークと Google ページランク
秋の数学アゴラ
線形代数と3Dグラフィックス
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 3 / 167
Introduction
話の計画
想定している予備知識
おおよそ高校2年程度の数学
ある程度知っていると仮定していること
◮ 連立一次方程式・二次方程式・複素数◮ 平面ベクトル・数列・確率
知っていると望ましいこと◮ 空間ベクトル・行列・一次変換◮ 三角関数・和の記号(Σ)◮ 数列の収束
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 4 / 167
Introduction
話の計画
Plan of Talk
1日目◮ Google ページランクとは何か (Section 2)
◮ 連立一次方程式と線形代数 (Section 3.1 ~ 3.3)
2日目◮ 連立一次方程式と線形代数 (Section 3.4 ~ 3.5)
◮ 行列の固有値と固有ベクトル (Section 3.6 ~ 3.8)
3日目◮ グラフとランダムウォーク (Section 4.1 ~ 4.6)
4日目◮ Google ページランクとその計算 (Section 5)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 5 / 167
Introduction
話の計画
この話の目標
以下の中身を「数学」として理解すること
◮ Google のページランクはどのような考え方の下に決まっているか?
◮ その考え方の基礎になっている数学はどのようなものか?
◮ 実際にページランクを計算する際に問題となることは何か?
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 6 / 167
Google ページランクとは?
Google ページランクとは?
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 7 / 167
Google ページランクとは?
Google ページランク
Google ページランクとは何か? (Section 1.1)
「Google 検索」を実現している技術
◮ インターネット上に存在するウェブページのデータを収集する
◮ ウェブページのデータから「キーワード」を抜き出し
データベースに保存する
◮ キーワードに一致するウェブページの情報を
データベースから検索する
◮ キーワードに一致したウェブページを
「重要なものを上位にして」表示する
「重要なものを上位に表示」=「ページランクの順位で表示」
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 8 / 167
Google ページランクとは?
Google ページランク
Google ページランクとは何か? (Section 2)
「ページランク」とは
◮ 検索結果のウェブページの情報の重要度をきめる尺度
◮ Google の研究者である S.Brin と L.Page によって定義された
(1999 年)
◮ 「L.Page によるランク付け」という言葉の意味もある
「重要度」は以下の2つの考え方による
◮ 多くのページからリンクされているページは「重要なページ」
◮ 重要なページからリンクされているページは「重要なページ」
すべてのウェブページに「重要度」という数値を計算する
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 9 / 167
Google ページランクとは?
問題のモデル化
ページランクのモデル化 (Section 2.1)
ページランクのように数学的に曖昧な問題には
「モデル化」ということを行う必要がある
「問題のモデル化」とは...
◮ 問題の本質的な部分を抜き出して
◮ 数学の言葉に書き直す
◮ 細かいことは後からモデルを修正することで対応する
なので, 細かいことは気にせず,
「うまく記述できる」数学的なモデルを探すことが重要
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 10 / 167
Google ページランクとは?
問題のモデル化
ページランクのモデル化 (Section 2.1)
ウェブページの中身◮ ウェブページは「HyperText Mark up Language」と呼ばれる
仕様で記述されている◮ HTML の中には「Hyper Link」と呼ばれる
他のページへのリンク情報が書いてある
そこで....
◮ 各ページを「1つの点」とおきかえる◮ ページ A にページ B へのリンクがあるとき
「A から B への矢印」をつける◮ これをすべてのページに適用する
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 11 / 167
Google ページランクとは?
問題のモデル化
ページランクのモデル化 (Section 2.1)
世界に3つのページ v1, v2, v3 のみが存在し,
v1 からは v2, v3 へ, v2 からは v3 へ, v3 からは v1 へ
リンクがあるとき
このリンクをあらわす図は以下のようになる.v1
v2 v3
(Example 2.1.1, P.5)
このような「頂点と向きの付いた辺の組」を
「グラフ」(「有向グラフ」)と呼ぶ.
(Definition 2.1.2, P. 5)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 12 / 167
Google ページランクとは?
問題のモデル化
ページランクのモデル化 (Section 2.1)
ページランクのモデル化の第1ステップ:
「インターネット上のウェブデータ全体のリンク構造を
(有向)グラフと考える」
ページランクの定義 (Definition 2.1.3, P. 6)
ページ vi のランク r(vi) を次の式で定義する
r(vi) =∑
vj∈Bvi
r(vj)
|vj |(2.1)
(ただし Bviは vi を始点とする辺の集合)
「すべてのページに対するページランクの値の組 {r(vi)} を
式 (2.1) が成り立つように定義する」という意味である.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 13 / 167
Google ページランクとは?
問題のモデル化
ページランクのモデル化 (Section 2.1)
Example 2.1.6 のグラフから決まるページランクの式
r1 = r3,
r2 =1
2r1,
r3 =1
2r1 + r2
(2.2)
(Example 2.1.6, P. 7)
これは, 未知数 {r1, r2, r3} に対する連立一次方程式
連立一次方程式 (2.2) の解
r1 = k, r2 = k/2, r3 = k
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 14 / 167
Google ページランクとは?
問題のモデル化
ページランクのモデル化 (Section 2.1)
Example の連立一次方程式 (2.2) は
r1 − r3 = 0,
−1
2r1 + r2 = 0,
−1
2r1 − r2 + r3 = 0
(2.3)
の形をしているので (0, 0, 0) は明らかに解となる
なので (0, 0, 0) 以外の解を探す必要がある
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 15 / 167
Google ページランクとは?
問題のモデル化
ページランクのモデル化 (Section 2.1)
これでページランクを以下のようにモデル化できた
◮ インターネット上のウェブデータ全体のリンク構造を
有向グラフと考え
◮ 連立一次方程式 (2.1) の解として
ページランクを定義する
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 16 / 167
Google ページランクとは?
問題の確率的なモデル化
ページランクの確率的なモデル化 (Section 2.2)
ページランクのもう一つのモデル化として
ユーザの滞在確率に基づくモデル化ができる
ある時刻 t = n でのインターネットの滞在ユーザのうち
ページ vi に滞在しているユーザの割合を pi(n) とおく
ページ vi に滞在しているユーザは
次の時刻 t = n + 1 にはリンクをたどって他のページに
移動する
ユーザがページ内のどのリンクをクリックするかは
等確率と仮定する
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 17 / 167
Google ページランクとは?
問題の確率的なモデル化
ページランクの確率的なモデル化 (Section 2.2)
長時間にわたって, このプロセスを繰り返したときの各ページのユーザの滞在確率
p(vi) = pi = limn→∞
pi(n)
をページ vi のページランクと定義する.
つまり {pi(n)} から {pi(n + 1)} をきめる式は
pi(n + 1) =∑
vj∈Bvi
1
|vj |pj(n) (2.4)
で与えられる.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 18 / 167
Google ページランクとは?
問題の確率的なモデル化
ページランクの確率的なモデル化 (Section 2.2)
Example 2.1.1 の場合
p1(n + 1) = p3(n),
p2(n + 1) =1
2p1(n),
p3(n + 1) =1
2p1(n) + p2(n)
(2.5)
p1(0) = 1, p2(0) = p3(0) = 0 の時t 1 2 3 4 5 6 7 8 9 · · ·
p1 0 1/2 1/2 1/4 1/2 3/8 3/8 7/16 3/8 → 2/5p2 1/2 0 1/4 1/2 1/8 1/4 3/16 3/16 7/32 → 1/5p3 1/2 1/2 1/4 1/2 3/8 3/8 7/16 3/8 13/32 → 2/5
長時間経過したときの滞在確率 (p1, p2, p3) = (2/5, 1/5, 2/5)
は Example 2.1.6 の連立一次方程式の解になる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 19 / 167
Google ページランクとは?
問題の確率的なモデル化
ページランクの確率的なモデル化 (Section 2.2)
Theorem 2.2.4 (P. 9)
数列 {pi(n)} を漸化式 (2.4) で定義する.
すべての i について pi(n) の n → ∞ としたときの
極限 pi が存在すると仮定すれば, 極限 {pi} は
pi =∑
vj∈Bvi
1
|vj|pj (2.6)
をみたす
つまり, この定理の仮定の下では
両方のモデルによる定義式 (2.6), (2.1) は同じ
要するに「どっちのモデルで考えてもよい」
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 20 / 167
Google ページランクとは?
モデル化のまとめ
ページランクのモデル化のまとめ (Section 2.3)
インターネット上のウェブデータ全体のリンク構造を(有向)グラフと考え
◮ 各ページのリンク情報をあらわす連立一次方程式の解を
ページランクとする◮ ユーザの滞在確率をページランクとする
のいずれかのモデルを考えればよいことがわかる
いずれのモデルであっても次のような問題を考察する必要がある
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 21 / 167
Google ページランクとは?
モデル化のまとめ
ページランクのモデルに関する問題 (Section 2.3)
これらのモデルを考えるために適切な数学の道具は何か?第一のモデルについて:
◮ この連立一次方程式は, 必ず解を持つのか?◮ 解を持つとしたら, その解はただ一つに限るのか?
第二のモデルについて:◮ 長時間経過したときに, 滞在確率は, 必ずある一定の値に収束するのか?
◮ それは初期条件(t = 0 での滞在確率)の与え方に依存するのか?
◮ 「長時間」とはどのくらいの時間(計算ステップ数)を意味するのか?
これらの計算プロセスは, どのくらいの時間がかかるのか?数万~数十億ページを含むデータに対して計算可能なのか?
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 22 / 167
連立一次方程式と線形代数
連立一次方程式と線形代数
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 23 / 167
連立一次方程式と線形代数
連立一次方程式
連立一次方程式 (Section 3.1)
ここでは連立一次方程式{
ax + by = x1,
cx + dy = y1,(3.1)
の解について調べよう
本当は, より一般の連立一次方程式を調べたいのだけど...
a11x1 + a12x2 + · · · + a1NxN = a1,
a21x1 + a22x2 + · · · + a2NxN = a2,
...
aN1x1 + aN2x2 + · · · + aNNxN = aN ,
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 24 / 167
連立一次方程式と線形代数
連立一次方程式
連立一次方程式 (Section 3.1)
(3.1) の解について, 高校では次のようにならう(はず)
1 直線 ax + by = x1, cx + dy = y1 が相異る2直線であり,平行でない場合には, 2直線の共有点は xy-平面上の1点となり,その点が (3.1) の解となる. 特に, 解は次のように書ける.
x =by1 − dx1
ad − bc, y =
ay1 − cx1
ad − bc
2 直線 ax + by = x1, cx + dy = y1 が同一の直線となる場合には, その同一の直線 ax + by = x1 上のすべての点が (3.1) の解となる.
3 直線 ax + by = x1, cx + dy = y1 が平行な相異る2直線である場合には, この2直線の共有点は存在しないので, (3.1) の解は存在しない.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 25 / 167
連立一次方程式と線形代数
連立一次方程式
連立一次方程式 (Section 3.1)
前ページの事実を次のことを使って書き換える.
◮ 「ax + by = x1, cx + dy = y1 が平行」
⇐⇒ 「ad − bc = 0」◮ 「ax + by = x1, cx + dy = y1 が同一の直線」
⇐⇒ 「a : b : x1 = c : d : y1」
(3.1) の解の存在は次のように分類できる
1 ad − bc 6= 0 ならば, (3.1) はただひとつの解を持つ
2 ad − bc = 0 かつ by1 − dx1 = 0 (または ay1 − cx1 = 0)ならば, ax + by = x1 をみたすすべての (x, y) が (3.1) の解となる.
3 ad − bc = 0 かつ by1 − dx1 6= 0 (または ay1 − cx1 6= 0) ならば, (3.1) の解は存在しない.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 26 / 167
連立一次方程式と線形代数
連立一次方程式
連立一次方程式 (Section 3.1)
重要なこと
「解がただひとつに決まる」⇐⇒ 「ad − bc 6= 0」
連立一次方程式を「写像」と考える(
xy
)
7→
(
ax + bycx + dy
)
xy-平面上の点 (x, y) を (ax + by, cx + dy) へ「移動」した
とき (ax+ by, cx+ dy) = (x1, y1) となる点 (x, y) が見つかる
⇐⇒ (x, y) は (3.1) の解
このとき ad − bc 6= 0 という条件は何を意味するのか?
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 27 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル (Section 3.2)
「ベクトル」とはN 個の実数 {xi}Ni=1 を縦に並べたもの
x =
x1...
xN
x = (xi) と簡単に書いてしまうこともある
(Definition 3.2.1, P. 13)
各 xi を x の第 i 成分と呼ぶ
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 28 / 167
連立一次方程式と線形代数
数ベクトル空間
数ベクトル空間 (Section 3.2)
N 成分の列ベクトル全体の集合
RN =
x =
x1...
xN
: xi ∈ R
を N 次元数ベクトル空間と呼ぶ
(Definition 3.2.2, P. 13)
RN の元で, すべての成分が 0 であるベクトルを零ベクトル
0 と書く (Definition 3.2.4, P. 13)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 29 / 167
連立一次方程式と線形代数
数ベクトル空間
数ベクトル空間 (Section 3.2)
2次元数ベクトル空間 R2 の元と
xy-平面上の点とは1対1対応がある◮ xy-平面上の座標 (x, y) を持つ点と
ベクトル x =
(
xy
)
は1対1に対応する
3次元数ベクトル空間 R3 の元と
xyz-空間内の点は1対1に対応する
N 次元数ベクトル空間 RN は
座標平面・座標空間を一般化した概念
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 30 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトルの和とスカラー倍 (Section 3.2)
RN の2つのベクトル x, y ∈ R
N に対して和 x + y
x =
x1...
xN
, y =
y1...
yN
=⇒ x + y =
x1 + y1...
xN + yN
a ∈ R, x ∈ RN に対して x の a 倍(スカラー倍)
x =
x1...
xN
=⇒ ax =
ax1...
axN
(Definition 3.2.6, P. 14)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 31 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間とは (Section 3.2)
ベクトル空間とは◮ 和とスカラー倍が定義できて◮ 零ベクトルと呼ばれる特別な元が存在する集合のこと
数ベクトル空間と
座標平面・座標空間を同一視することによって
座標平面・座標空間に演算が定義できるようになった
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 32 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間の部分空間 (Section 3.2)
RN の部分集合 W が部分空間であるとは
W が以下の3つの条件をみたすこと
1 零ベクトルは W に含まれる. すなわち, 0 ∈ W である.
2 W の任意の2つの元 x, y ∈ W に対して x + w ∈ W をみたす.
3 W の任意の元 x ∈ W と任意の a ∈ R に対して ax ∈ W をみたす.
R2 の部分空間とは xy-平面上の原点を通る直線のこと
R3 の部分空間とは
xyz-空間内の原点を通る直線または原点を通る平面のこと
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 33 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間の部分空間の例 (Section 3.2, Example 3.2.9)
x ∈ R2 に対してW = {ax : a ∈ R} は
xy-平面上で, 原点を通り, 方向ベクトルが x となる直線
◮ x =
(
12
)
ならばW =
{(
a2a
)}
(直線 y = 2x 上の点全体)
x, y ∈ R3 (x は y のスカラー倍でない)に対して
W = {ax + by : a, b ∈ R}
は xyz-座標空間内で, 原点を通り, x, y を含む平面
◮ x =
110
, y =
011
ならばW =
aa + b
b
(平面 x − y + z = 0 上の点全体)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 34 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間・部分空間の次元 (Section 3.2)
我々が普通に思っている次元◮ 「1点」=「0次元」◮ 「直線」=「1次元」◮ 「平面」=「2次元」◮ 「空間」=「3次元」
「次元」=「自由に動き回れる方向」
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 35 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間・部分空間の次元 (Section 3.2)
RN の中の k 本のベクトルの組 {x1, . . . xk} が一次独立
a1x1 + · · · + akxk = 0 =⇒ a1 = · · · = ak = 0
が成り立つこと◮ 一次独立でないとき一次従属という
(Definition 3.2.11, P. 15)
2つのベクトル {x,y} が平行でない⇐⇒ {x,y} は一次独立
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 36 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間・部分空間の次元 (Section 3.2, Example 3.2.13)
ベクトルの組 {x,y,z} が一次従属であると仮定する
ax + by + cz = 0
かつa, b, c のうち少なくとも一つは 0 でない
◮ a 6= 0 と仮定すると, x = − bay − c
az
◮ よって, ベクトル x は y と z を含む平面上の点をあらわす
y
z
x
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 37 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間・部分空間の次元 (Section 3.2, Example 3.2.14)
x =
(
12
)
, y =
(
1−1
)
:一次独立
x =
(
12
)
, y =
(
−2−4
)
:一次従属 (y + 2x = 0)
x =
110
, y =
011
:一次独立
x =
110
, y =
011
, z =
1−11
:一次独立
x =
110
, y =
011
, z =
231
:一次従属 (2x+y−z = 0)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 38 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間・部分空間の次元 (Section 3.2)
数ベクトル空間またはその部分空間 V の次元が k
(dim V = k)
◮ V の中から一次独立な k 個のベクトルの組を選べる◮ V の任意の k + 1 個のベクトルは一次従属
(Definition 3.2.15, P. 17)
これで我々がおもっている「自由に動ける方向の自由度」
と一致した次元になる
dim RN = N なので, R
N の中から N 個のベクトルの組
{x1, . . . ,xN} で一次独立なものを選ぶことができる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 39 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間・部分空間の基底 (Section 3.2)
dim V = k のとき一次独立な V のベクトル k 個からなる組を基底と呼ぶ
(Definition 3.2.19, 18)
数ベクトル空間 RN において
e1 =
10...0
, · · · , eN =
0...01
∈ RN
は基底になる:RN の標準基底
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 40 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間・部分空間の基底 (Section 3.2)
dim V = k であって, {x1, . . . ,xk} が基底であるとき◮ すべての x ∈ V は
x = a1x1 + · · · + akxk
と書くことができる
◮ 一次独立なベクトルの組の上のような和で書くことを
一次結合であらわすという
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 41 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトル空間・部分空間の基底 (Section 3.2)
R2 の基底の例:(Example 3.2.21, P. 18)
◮ e1 =
(
10
)
, e2 =
(
01
)
:標準基底
◮ x1 =
(
11
)
, x2 =
(
1−1
)
◮ y1 =
(
10
)
, y2 =
(
11
)
このほかにも無数の基底の取り方がある
x =
(
23
)
を上のそれぞれの基底の一次結合で書いてみる
x = 2e1 + 3e2 =5
2x1 −
1
2x2 = −y1 + 3y2
(Example 3.2.24, P. 18)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 42 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトルのノルム (Section 3.2)
RN のベクトル x のノルム ‖x‖ とは
1 x ∈ RN に対して, ‖x‖ は非負実数をきめる
2 x ∈ RN , k ∈ R に対して, ‖kx‖ = |k| ‖x‖ が成り立つ
3 x, y ∈ RN に対して, ‖x + y‖ ≤ ‖x‖ + ‖y‖ が成り立つ
4 ‖x‖ = 0 ⇐⇒ x = 0 が成り立つ
(Definition 3.2.25, P. 19)
通常我々が使う「ベクトルの長さ」,
「ベクトルの間の角度」, 「2点間の距離」をきめている√
x2 + y2 のなかから
「ベクトルの長さ」がもつ性質だけを抜き出したもの
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 43 / 167
連立一次方程式と線形代数
数ベクトル空間
ベクトルのノルム (Section 3.2)
よく利用されるノルムの例 (Example 3.2.26, P. 19)
‖x‖1 = |x1| + · · · + |xN |,
‖x‖2 =√
|x1|2 + · · · + |xN |2,
‖x‖∞ = maxi=1,...,N
|xi|
1−1
1
−1
1−1
1
−1
1−1
1
−1
‖x‖1 = 1 ‖x‖2 = 1 ‖x‖∞ = 1
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 44 / 167
連立一次方程式と線形代数
行列と連立一次方程式
行列 (Section 3.3, Definition 3.3.1)
N × N 行列(N 次正方行列)
A =
a11 a12 · · · a1N
a21 a22 · · · a2N...
.... . .
...aN1 an2 · · · aNN
=(
a1 . . . aN
)
=
a1...
aN
aij : A の (i, j) 成分
前から k 列目の列ベクトル ak =
a1k...
aNk
を第 k 列
前から ℓ 行目の行ベクトル aℓ =(
a1ℓ · · · aNℓ
)
を第 ℓ 行
簡単に A = (aij) と書いちゃうこともある
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 45 / 167
連立一次方程式と線形代数
行列と連立一次方程式
行列 (Section 3.3, Definition 3.3.3)
A = (aij) の aii の部分:対角成分
E =
1 · · · 0...
. . ....
0 · · · 1
単位行列
O =
0 · · · 0...
. . ....
0 · · · 0
零行列
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 46 / 167
連立一次方程式と線形代数
行列と連立一次方程式
行列の和とスカラー倍 (Section 3.3, Definition 3.3.4)
N × N 行列 A = (aij), B = (bij) に対して, 和 A + B を
A + B = (aij + bij)
k ∈ R, N × N 行列 A = (aij) に対して, スカラー倍 kA を
kA = (kaij)
A =
(
1 23 4
)
, B =
(
3 12 5
)
のとき
A + B =
(
4 34 9
)
, 3A =
(
3 69 12
)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 47 / 167
連立一次方程式と線形代数
行列と連立一次方程式
行列とベクトルの積 (Section 3.3)
(縦ベクトル) x = (xi) ∈ RN と
N × N 行列 A = (aij) の積 Ax を
Ax =
(
N∑
k=1
aikxk
)
結果は RN の縦ベクトル (Definition 3.3.5, P. 21)
A =
(
1 23 4
)
, x =
(
23
)
のときAx =
(
818
)
A =
(
a bc d
)
, x =
(
xy
)
のときAx =
(
ax + bycx + dy
)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 48 / 167
連立一次方程式と線形代数
行列と連立一次方程式
行列と行列の積 (Section 3.3)
N × N 行列 A = (aij), B = (bij) の積 AB を
AB =
(
N∑
k=1
aikbkj
)
結果は N × N 行列 (Definition 3.3.6, P. 21)
A =
(
a bc d
)
, B =
(
x yw z
)
のとき
AB =
(
ax + bw ay + bzcx + dw cy + dz
)
, BA =
(
ax + cy bx + dyaw + cz bw + dz
)
A =
(
1 23 4
)
, B =
(
2 34 5
)
のとき
AB =
(
10 1322 29
)
BA =
(
11 1619 28
)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 49 / 167
連立一次方程式と線形代数
行列と連立一次方程式
行列 (Section 3.3)
N × N 行列 A = (aij), B = (bij) の積 AB は
B =(
b1 · · · bN
)
と縦ベクトルで書いたとき
AB =(
Ab1 · · · AbN
)
として N 個の「行列×ベクトル」の計算をしていること
(Remark 3.3.12, P. 22)
N × N 行列 A = (aij) に対して
その転置行列 AT をAT = (aji) と定義する
(行と列を入れ替えた行列のこと)
(Definition 3.3.7, P. 21)
A =
(
a bc d
)
のときAT =
(
a cb d
)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 50 / 167
連立一次方程式と線形代数
行列と連立一次方程式
連立一次方程式を行列で書く (Section 3.3, Example 3.3.13)
連立一次方程式{
ax + by = x1,
cx + dy = y1,(3.1)
は
A =
(
a bc d
)
, x =
(
xy
)
, b =
(
x1
y1
)
とおくとAx = b
と単純な形で書くことができる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 51 / 167
連立一次方程式と線形代数
線形写像
線形写像 (Section 3.4)
N × N 行列 A = (aij) が定める線形写像(一次変換)
RN ∋ x 7→ Ax ∈ R
N
のこと (Definition 3.4.1, P. 23)
線形写像は次の性質を持つ.
1 A0 = 0.
2 任意の x, y ∈ RN , λ, µ ∈ R に対して,
A(λx + µy) = λAx + µAy
が成り立つ.
(Proposition 3.4.2, P. 23)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 52 / 167
連立一次方程式と線形代数
線形写像
線形写像の例 (Section 3.4, Example 3.4.4)
A =
(
1 23 4
)
のとき
Ae1 =
(
1 23 4
)(
10
)
=
(
13
)
, Ae2 =
(
1 23 4
)(
01
)
=
(
24
)
よって, Ax =
(
1 23 4
)(
23
)
=
(
818
)
基底 {xi} を取ったとき,
行列 A から定まる線形写像の行き先は,
基底の行き先 {Axi} で完全に記述できる
(Remark 3.4.5, P. 25)
単位行列 E は Ex = x となる線形写像をきめる
零行列 O は Ox = 0 となる線形写像をきめる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 53 / 167
連立一次方程式と線形代数
線形写像
線形写像の例 (Section 3.4, Example 3.4.7)
行列A =
(
−1 00 1
)
が定める線形写像は, x 7→ −x, y 7→ y であるので, y 軸に関する折り返し
A =
(
1 00 −1
)
が定める線形写像は x 軸に関する折り返し
原点を通る直線に関する折り返しは線形写像
x Ax
x
Ax
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 54 / 167
連立一次方程式と線形代数
線形写像
線形写像の例 (Section 3.4, Example 3.4.8)
原点を中心とする角度 θ の回転は
行列A =
(
cos θ − sin θsin θ cos θ
)
できまる線形写像
xAx
θ
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 55 / 167
連立一次方程式と線形代数
線形写像
逆行列 (Section 3.4)
N × N 行列 A に対して,
AA−1 = A−1A = E
をみたす N × N 行列 A−1 が存在すれば
A−1 を A の逆行列と呼ぶ (Definition 3.4.9, P. 26)
A に逆行列が存在するとき, A は正則とよばれる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 56 / 167
連立一次方程式と線形代数
線形写像
逆行列 (Section 3.4)
A =
(
a bc d
)
, A−1 =
(
x yz w
)
とおいて計算してみる
AA−1 =
(
ax + bz ay + bwcx + dz cy + dw
)
=
(
1 00 1
)
◮ ad − bc 6= 0 ならば
A−1 =
(
x yz w
)
=1
ad − bc
(
a −b−c d
)
◮ ad − bc = 0 の時には逆行列が存在しない
(Example 3.4.10, P. 26)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 57 / 167
連立一次方程式と線形代数
線形写像
連立一次方程式の解の存在と逆行列 (Section 3.4)
「連立一次方程式がただひとつの解を持つための条件」
⇐⇒
「A が逆行列を持つための条件」
となっていることがわかった
N × N 行列 A が逆行列を持てば
連立一次方程式 Ax = b にはただひとつの解
x = A−1b
が存在する (Theorem 3.4.14, P. 27)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 58 / 167
連立一次方程式と線形代数
線形写像
連立一次方程式の解の存在と逆行列 (Section 3.4, Example 3.4.15)
{
x + 2y = 3,
3x + 4y = 4
(
1 23 4
)(
xy
)
=
(
34
)
この行列(
1 23 4
)
には逆行列が存在する
(
xy
)
=
(
−2 132 −1
2
)(
1 23 4
)(
xy
)
=
(
−2 132 −1
2
)(
34
)
=
(
−252
)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 59 / 167
連立一次方程式と線形代数
線形写像
ページランクをきめる連立一次方程式 (Section 3.4)
ページランクを計算する際の連立一次方程式
r(vi) =∑
vj∈Bvi
r(vj)
|vj |(2.1)
はAx = x
の形をしている
この連立一次方程式は,
両辺に逆行列を左からかけても解を得ることはできない
ページランクに関係する連立一次方程式を解くためには,
線形写像に関するより詳しい情報が必要
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 60 / 167
連立一次方程式と線形代数
行列式
逆行列を持つための条件と行列式 (Section 3.5)
2 × 2 行列A =
(
a bc d
)
について以下の4条件は同値
1 A が正則である. (A には逆行列 A−1 が存在する.)
2 ad − bc 6= 0
3 A を2つの列ベクトル a1 =
(
ac
)
, a2 =
(
bd
)
を使って
A = (a1a2) と書いたとき, {a1, a2} が一次独立である.
4 A を2つの行ベクトル a1 =(
a b)
, a2 =(
c d)
を使って
A =
(
a1
a2
)
と書いたとき, {a1, a2} が一次独立である.
(Theorem 3.5.1, P. 28)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 61 / 167
連立一次方程式と線形代数
行列式
行列式 (Section 3.5)
2 × 2 行列A =
(
a bc d
)
に対して, その行列式 det A を
det A = ad − bc
で定義する (Definition 3.5.2, P. 28)
N × N 行列の場合の行列式◮ 3 × 3 行列の場合
detA = a11a22a33 + a12a23a31 + a13a21a32
− a13a22a31 − a12a21a33 − a11a23a32
(3次式になっている)◮ N × N 行列の場合には, aij に関する N 次式の N ! 項の和
(Remark 3.5.3, P. 28)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 62 / 167
連立一次方程式と線形代数
行列式
逆行列を持つための条件と行列式 (Section 3.5)
N × N 行列A = (aij) に対して, 以下の4条件は同値
1 A が正則である. (A には逆行列 A−1 が存在する.)
2 detA 6= 0
3 A を N 本の列ベクトル ai =
a1i
...aNi
を使って
A = (a1 . . .aN ) と書いたとき, {a1, . . . , aN} が一次独立
4 A を N 本の行ベクトル aj =(
aj1 · · · ajN
)
を使って
A =
a1
...aN
と書いたとき, {a1, . . . , aN} が一次独立
(Theorem 3.5.4, P. 29)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 63 / 167
連立一次方程式と線形代数
行列式
行列式の性質 (Section 3.5)
行列式は以下の性質をみたす.
1 detE = 1
2 (detA)(det B) = (det AB)
3 detAT = detA
(Theorem 3.5.6, P. 29)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 64 / 167
連立一次方程式と線形代数
行列式
行列のランク (Section 3.5)
N × N 行列 A を N 本の列ベクトル {ak}Nk=1 を使って
A =(
a1 · · ·aN
)
と書いたとき, {ak}Nk=1 の中の
一次独立なベクトルの本数の最大の値を
A のランクと呼ぶ
(Definition 3.5.7, P. 29)
N × N 行列A に対して, 以下の条件は同値
1 A が正則である. (A には逆行列 A−1 が存在する.)
2 rankA = N である.
(Theorem 3.5.8, P. 29)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 65 / 167
連立一次方程式と線形代数
行列式
行列のランクと線形写像 (Section 3.5)
N × N 行列 A がきめる線形写像を
fA : RN −→ R
N , x 7→ Ax
と書くことにしよう
このとき次が成り立つ◮ rankA = N ならば (det A 6= 0 ならば)
fA(RN ) = RN が成り立つ◮ rankA < N ならば (det A = 0 ならば)
fA(RN ) ⊂ RN (真に部分空間)が成り立つ
つまり detA = 0 のとき Ax = b が解を持つか否かは
b ∈ fA(RN ) or b 6∈ fA(RN )
で状況が異なる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 66 / 167
連立一次方程式と線形代数
行列式
次元定理 (Section 3.5)
「像」と「核」の定義◮ N × N 行列 A が定める線形写像 fA に対して
fA(RN ) を fA の像と呼び Im fA または Im A であらわす
◮ {x ∈ RN : fA(x) = 0} = {x ∈ RN : A(x) = 0}
を fA の核と呼び, ker fA または kerA であらわす
(Definition 3.5.9, P. 30)
N × N 行列 A に対して, 次が成り立つ.
1 dim Im A = rankA,
2 N − dimkerA = dim ImA. (「次元定理」)
3 detA 6= 0 ならば dim Im A = N , dimkerA = 0.
(Theorem 3.5.11, P. 30)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 67 / 167
連立一次方程式と線形代数
行列式
連立一次方程式の可解性 (Section 3.5)
連立一次方程式Ax = b の可解性は以下のように分類できる
1 A が正則ならば, 任意の b ∈ RN に対して,
ただひとつの解 x = A−1b が存在する.
2 A が正則でないとき.
2.1 b 6∈ ImA ならば, 解は存在しない.
2.2 b ∈ ImA ならば, 解が存在する.
一つの解を x0 とおいたとき, 任意の y ∈ ker A に対して,
x = x0 + y も解となり, 任意の2解の差は kerA に入る.
(Theorem 3.5.13, P. 31)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 68 / 167
連立一次方程式と線形代数
行列式
連立一次方程式の可解性(2 × 2 行列の場合) (Section 3.5)
連立一次方程式(
a bc d
)(
xy
)
=
(
x1
y1
)
の可解性
1 ad − bc 6= 0 ならば, 任意の b ∈ R2 に対して,
ただひとつの解 x = A−1b が存在する.
2 ad − bc = 0 ならば
2.1
„
a
c
«
と„
x1
y1
«
が平行でないならば解は存在しない.
2.2
„
a
c
«
と„
x1
y1
«
が平行でならば解が存在する.
解 x0 が一つでも見つかれば, その他の解 x は
x = x0 + k
„
b
−a
«
と書ける.
(Corollary 3.5.14, P. 31)(
ac
)
∈ Im A,
(
b−a
)
∈ ker A であることに注意しよう
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 69 / 167
連立一次方程式と線形代数
行列式
連立一次方程式の可解性(2 × 2 行列の場合) (Section 3.5)
Im A
ker A
(x1, y1)
Im A
ker A
(x1, y1)
このような時には解は存在しない このような時には解は存在する
ImA
ker A
Im A
ker A
a + d 6= 1 の時 a + d = 1 の時(cf. Example 3.5.15) (cf. Example 3.5.16)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 70 / 167
連立一次方程式と線形代数
行列式
2 × 2 行列の場合 (Section 3.5, Example 3.5.15)(
2 1−2 −1
)(
xy
)
=
(
ab
)
の解を調べてみる
◮ detA = 0
◮ kerA = span
{(
−12
)}
, Im A = span
{(
1−1
)}
◮ b =
(
ab
)
∈ Im A の時(a = −b の時)にのみ解が存在する
◮ x =
(
a−a
)
+ t
(
−12
)
と書ける
これは kerA を表している直線 2x + y = 0 に平行で,
(a,−a) を通る直線
a = b = 0 と取ったときAx = 0 に 0 でない解が存在する
その解は 1 次元(= dim ker A)分存在している
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 71 / 167
行列の固有値
行列の固有値
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 72 / 167
行列の固有値
行列の固有値とは
固有値ってなに? (Section 3.6)
ページランクの連立一次方程式 (2.1) の形Ax = x を一般化してみる
N × N 行列 A に対して,
ある λ ∈ R と x ∈ RN (x 6= 0) が存在して
Ax = λx (3.2)
が成り立つとき, λ を A の固有値,
x を, 固有値 λ に対する固有ベクトルと呼ぶ
(Definition 3.6.1, P. 35)
ページランク x は A の「固有値 1 に対する固有ベクトル」
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 73 / 167
行列の固有値
行列の固有値とは
固有値 (Section 3.6)
x が固有値 λ に対する固有ベクトル =⇒
A(kx) = kAx = k(λx) = λ(kx) for all k ∈ R
したがって kx も固有ベクトルになる
(Remark 3.6.2, P. 35)
個々の「固有ベクトル」を考えるかわりに
「固有ベクトルの方向」=「固有方向」
のみを考えればよい場合も多い
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 74 / 167
行列の固有値
行列の固有値とは
固有値の求め方 (Section 3.6)
Ax = tx をみたすような t, x を求めるための手順
1 Ax − tEx = 0 と書きかえる
2 (A − tE)x = 0 が成り立つ
3 もし det(A − tE) 6= 0 ならば
x = (A − tE)−10 = 0 となってしまう
よって det(A − tE) = 0
λ がN × N 行列 A の固有値であることの必要十分条件は,
λ が t に関する N 次方程式
det(A − tE) = 0
の解であること (Theorem 3.6.4, P. 36)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 75 / 167
行列の固有値
行列の固有値とは
代数学の基本定理 (Section 3.6)
複素数を係数とする N 次方程式
tN + an−1tn−1 + · · · + a1t + a0 = 0
は, 複素数の範囲で重複をこめて N 個の解を持つ
(Theorem 3.6.5, P. 36)
実数係数 N × N 行列 A の固有値は,
複素数の範囲に, 重複をこめて N 個存在する.
(Remark 3.6.6, P. 36)
なぜなら, t に関する N 次方程式
det(A − tE) = 0
は複素数の範囲に, N 個の解をもつから
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 76 / 167
行列の固有値
行列の固有値とは
固有値の計算例 (Section 3.6, Example 3.6.7)
A =
(
1 22 1
)
の時,
det(A−tE) = det
(
1 − t 22 1 − t
)
= t2−2t−3 = (t+1)(t−3)
であるので, A の固有値は −1, 3 である.
A =
(
1 −22 1
)
の時,
det(A − tE) = det
(
1 − t −22 1 − t
)
= t2 − 2t + 5
であるので, A の固有値は 1 + 2i, 1 − 2i である.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 77 / 167
行列の固有値
行列の固有値とは
固有値の計算例 (Section 3.6, Example 3.6.7)
A =
3 −1 −1−1 3 −1−1 −1 3
の時,
det(A − tE) = −t3 + 9t2 − 24t + 16 = −(t − 1)(t − 4)2
であるので, A の固有値は 4, 4, 1 である.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 78 / 167
行列の固有値
行列の固有値とは
固有値の重複度 (Section 3.6)
det(A − tE) を A の固有多項式
A の固有値 λ の重複度が k であるとは,
λ が固有多項式の k 重根であること
すなわち, λ1, . . . , λj を A の相異なる固有値としたとき,
det(A − tE) = (t − λ1)k1 · · · (t − λj)
kj
と因数分解できたときの t − λi の巾が λi の重複度
(Definition 3.6.8, P. 37)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 79 / 167
行列の固有値
行列の固有値とは
固有ベクトルの計算方法 (Section 3.6)
λ ∈ R が det(A − λE) = 0 をみたせば,
dim ker(A − λE) > 0 なので,
少なくとも1つ(1方向)は固有ベクトルが存在する
なので ker(A − λE) に入るベクトル x を
dim ker(A − λE) 本求めればよい
なお, 固有値 λ の重複度を k としたとき
dim ker(A − λE) ≤ k が成り立つ
(必ずしも “=” になるとは限らない)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 80 / 167
行列の固有値
行列の固有値とは
固有ベクトルの計算例 (Section 3.6, Example 3.6.10)
A =
(
1 22 1
)
. 固有値は {−1, 3}
◮ A + E =
(
2 22 2
)
なので x =
(
xy
)
とおけば,
2x + 2y = 0 が成り立つ.
よって λ = −1 に対する固有ベクトル(の一つ)は
x =
(
1−1
)
◮ λ = 3 に対する固有ベクトルは x =
(
11
)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 81 / 167
行列の固有値
行列の固有値とは
固有ベクトルの計算例 (Section 3.6, Example 3.6.10)
A =
(
1 −22 1
)
. 固有値は {1 + 2i, 1 − 2i}
◮ A − (1 + 2i)E =
(
−2i −22 −2i
)
なので λ = 1 + 2i に対する固
有ベクトルは x =
(
i1
)
◮ λ = 1 − 2i に対する固有ベクトルは x =
(
−i1
)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 82 / 167
行列の固有値
行列の固有値とは
固有値の性質 (Section 3.6)
N × N 行列 A の固有値に関して, 次の性質が成り立つ.
1 A の固有値と転置行列 AT の固有値は一致する.
2 任意の正則行列 T に対して,
A の固有値と T−1AT の固有値は一致する.
(Theorem 3.6.12, P. 39)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 83 / 167
行列の固有値
行列の固有値とは
ページランクと固有値の関係 (Section 3.6)
ページランクに関する連立一次方程式
Ax = x (2.1)
の解を求める問題(ページランクを求める問題)は,
次の問題に帰着できた.
ウェブデータ全体のリンク構造をあらわすグラフから作った行列 A に関して,
1 A は固有値 1 を持つか?
2 A が固有値 1 を持った場合の固有ベクトル x をどうやって求めるか?
3 その固有ベクトルの成分は正の値を持つようにできるか?
(Problem 3.6.14, P. 40)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 84 / 167
行列の固有値
固有値と固有ベクトルの意味
行列の n 乗を求めてみる (Section 3.7, Example 3.7.1)
「問題」A =
(
3 1−2 0
)
, T =
(
−1 12 −1
)
としたとき,
B = T−1AT を求め, それを利用して An を求めよ.
「解答の方針」B =
(
1 00 2
)
より, Bn =
(
1 00 2n
)
An = (TBT−1)n = TBT−1TB · · ·BT−1 = TBnT−1
「重要なこと」◮ B の対角成分の 1, 2 は A の固有値◮ T の第 1 列のベクトルは A の固有値 1 の固有ベクトル
T の第 2 列のベクトルは A の固有値 2 の固有ベクトル◮ 固有ベクトルを並べた行列 T を作って T−1AT とすると,
対角行列が出てくる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 85 / 167
行列の固有値
固有値と固有ベクトルの意味
行列の対角化 (Section 3.7)
実数係数 N × N 行列 A のすべての固有値が実数であり,
それらの固有値が相異なると仮定する.
固有値 λi に対する固有ベクトルを xi とおく.
このとき,T =
(
x1 · · ·xN
)
とおくと,
T−1AT =
λ1
. . .
λN
が成り立つ.
(Corollary 3.7.3, P. 41)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 86 / 167
行列の固有値
固有値と固有ベクトルの意味
固有値と線形写像 (Section 3.7)
L =
(
λ1 00 λ2
)
があらわす線形写像を考えると
(ただし λ1 6= λ2 と仮定する)
Ae1 = λ1e1,
Ae2 = λ2e2,
2 × 2 行列 A が固有値 λ1, λ2 をもつ時
λi に関する固有ベクトルを ai とおくと
Aa1 = λ1a1,
Aa2 = λ2a2,(3.5)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 87 / 167
行列の固有値
固有値と固有ベクトルの意味
固有値と線形写像 (Section 3.7)
T =(
a b)
おくと (3.5) はAT = TL となり,
対角化の式 T−1AT = L と同じになる
固有ベクトルからなる基底 {a1,a2} を取れば,
A がきめる線形写像は
「基底の方向には固有値倍する線形写像」にみえる
a1
a2
3a1
2a2
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 88 / 167
行列の固有値
固有値と固有ベクトルの意味
固有値が複素数の場合 (Section 3.7)
A =
(
cos θ − sin θsin θ cos θ
)
固有値 cos θ ± i sin θ = e±iθ
2 × 2 行列で固有値 e±iθ となる場合:原点を中心とする角度 θ の回転
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 89 / 167
行列の固有値
固有値を計算する
「みただけで」固有値がわかる場合 (Section 3.8)
A が対角行列の時. 対角成分が固有値となる.
A が
A =
∗ ∗ · · · · · · ∗
0. . . · · · · · · ∗
... ∗ · · · ∗
0 · · ·. . . ∗
0 · · · · · · ∗
の形(上三角行列)または下三角行列の時.
対角成分が固有値となる.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 90 / 167
行列の固有値
固有値を計算する
コンピュータで固有値を計算する (Section 3.8, Theorem 3.8.1)
A の固有値 {λi}Ni=1 が
|λ1| > |λ2| ≥ · · · ≥ |λN |
をみたしていると仮定する.
このとき x0 を勝手に選んで
yk+1 = Axk,
xk+1 =1
‖yk+1‖yk+1
と計算する
ほとんどすべての x0 に対して,
xN は絶対値最大固有値 λ1
に対する固有ベクトルに収束する.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 91 / 167
行列の固有値
固有値を計算する
固有値が存在する範囲 (Section 3.8)
「ガーシュゴリンの定理」(Theorem 3.8.3, P. 44)
N × N 行列 A = (aij) に対して,
Bi = {z ∈ C : |z − aii| ≤∑N
j=1,j 6=i |aij |}
とおく.このとき, A のすべての固有値 λ は, N 個の円盤 Bi のいずれかに含まれる.
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 92 / 167
行列の固有値
固有値を計算する
固有値が存在する範囲 (Section 3.8)
N × N 行列 A = (aij) の
すべての要素が非負 (aij ≥ 0) であるとき,
A の固有値 λ ∈ C は
|λ| ≤ maxi=1,...,N
N∑
j=1
aij
をみたす. (Theorem 3.8.4, P. 45)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 93 / 167
グラフ
グラフ
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 94 / 167
グラフ
グラフと行列
グラフとは (Section 4.1)
V , E : 有限集合
E の各元 e ∈ E に対して,
2つの V の元 o(e), t(e) ∈ V がきまる
このとき G = (V,E) をグラフという◮ V の元を頂点◮ E の元を辺◮ o(e) を辺 e の始点◮ t(e) を辺 e の終点
(Definition 4.1.1, P. 47)1
2
3 4
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 95 / 167
グラフ
グラフと行列
グラフとは (Section 4.1)
グラフの図の書き方はいろいろある
頂点の番号(名前)の付け方もいろいろある
重要なのは「つながり方」
1
2
3 4
1
2
34
この2つのグラフは同一のグラフである
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 96 / 167
グラフ
グラフと行列
グラフを行列であらわす (Section 4.1)
このままでは単なる「図」に過ぎないので扱いにくい
グラフ G = (V,E) に対して,
以下の方法で作った行列 AG をグラフ G の隣接行列と呼ぶ.
1 頂点の集合 V の元に, 番号 1, . . . , N をつける.
(つける順序は勝手につけて良い.)
ただし, N は集合 V の要素の数であるとする.
2 N × N 行列 AG を,
各辺 e ∈ E に対して, o(e) = i, t(e) = j であれば aji = 1
そのような辺がないときには, aji = 0 とする
(Definition 4.1.4, P. 48)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 97 / 167
グラフ
グラフと行列
グラフを行列であらわす (Section 4.1)
1
2
3 4
AG =
0 0 0 11 0 0 11 1 0 01 0 1 0
(Example 4.1.5, P. 48)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 98 / 167
グラフ
グラフと行列
グラフを行列であらわす (Section 4.1, Example 4.1.6)
1
2
3 4
2
1
3 4
AG1=
0 0 0 11 0 0 11 1 0 01 0 1 0
, AG2=
0 1 0 10 0 0 11 1 0 00 1 1 0
同じグラフなのに隣接行列が同じにならない
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 99 / 167
グラフ
グラフと行列
グラフを行列であらわす (Section 4.1, Example 4.1.6)
でも
D1,2 =
0 1 0 01 0 0 00 0 1 00 0 0 1
とおくとD1,2AG2D1,2 = AG1
が成り立つ
D1,2D1,2 = E なのでD−11,2AG2
D1,2 = AG1となる
頂点の番号のつけかえは隣接行列では
T−1AG2T = AG1
の関係になる
(固有値のところで出てきた「基底の取り替え」と同じ形)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 100 / 167
グラフ
グラフと行列
行列からグラフを作る (Section 4.1, Example 4.1.6)
0 と 1 だけを要素に持つ N × N 行列 A を考える
A からグラフ G を作ることができる◮ N 個の頂点を用意する◮ aji = 1 ならば, 頂点 j から頂点 i に矢印をひく
このようにして作ったグラフ G の隣接行列 AG は
A = AG
をみたす
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 101 / 167
グラフ
グラフの連結性
グラフが連結であるとは (Section 4.2, Definition 4.2.1)
グラフ G = (V,E) の頂点 x, y をつなぐ路とは
x と y を向きを忘れた辺でつなぐことができる
グラフ G = (V,E) の頂点 x, y をつなぐ有向路とは
x と y を辺でつなぐことができる
路だが有向路ではない 有向路
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 102 / 167
グラフ
グラフの連結性
グラフが連結であるとは (Section 4.2, Definition 4.2.3)
グラフ G = (V,E) が連結⇐⇒
G の任意の頂点 x, y ∈ V を結ぶ路が存在する
グラフ G = (V,E) が強連結⇐⇒
G の任意の頂点 x, y ∈ V を結ぶ有向路が存在する
G = (V,E) が強連結ならば連結
(Proposition 4.2.4, P. 50)
連結でない 連結だが強連結でない 強連結
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 103 / 167
グラフ
グラフの連結性
連結性を行列で判定する (Section 4.2, Example 4.2.6)
AG1=
0 1 0 01 0 0 00 0 0 10 0 1 0
, A2G1
=
1 0 0 00 1 0 00 0 1 00 0 0 1
A3G1
=
0 1 0 01 0 0 00 0 0 10 0 1 0
AG1+ A2
G1+ A3
G1=
1 2 0 02 1 0 00 0 1 20 0 2 1
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 104 / 167
グラフ
グラフの連結性
連結性を行列で判定する (Section 4.2, Example 4.2.6)
AG2=
0 1 0 01 0 0 00 1 0 10 0 1 0
, A2G2
=
1 0 0 00 1 0 01 0 1 00 1 0 1
A3G2
=
0 1 0 01 0 0 00 2 0 11 0 1 0
AG2+ A2
G2+ A3
G2=
1 2 0 02 1 0 01 3 1 21 1 2 1
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 105 / 167
グラフ
グラフの連結性
連結性を行列で判定する (Section 4.2, Example 4.2.6)
AG3=
0 1 0 01 0 1 00 1 0 10 0 1 0
, A2G3
=
1 0 1 00 2 0 11 0 2 00 1 0 1
A3G3
=
0 2 0 12 0 3 00 3 0 21 0 2 0
AG3+ A2
G3+ A3
G3=
1 3 1 13 2 4 11 4 2 31 1 3 1
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 106 / 167
グラフ
グラフの連結性
連結性を行列で判定する (Section 4.2)
グラフ G の隣接行列 AG に対して
AG + A2G + · · · + AN−1
G
のすべての成分が正である
⇐⇒ G が強連結(N は G の頂点数)
(Theorem 4.2.7, P. 52)
N × N 行列 X が(
A OB C
)
の形に区分できる
⇐⇒ X は可約
X は可約でない⇐⇒ 既約
(Definition 4.2.8, P. 52)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 107 / 167
グラフ
グラフの連結性
連結性を行列で判定する (Section 4.2)
グラフ G が強連結
⇐⇒
G の頂点の番号をどのようにつけたとしても,
G の隣接行列 AG が既約になる
(Theorem 4.2.10, P. 53)
既約で 0 と 1 だけを要素に持つ N × N 行列 A を考えると
A を隣接行列にもつ強連結グラフを作ることができる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 108 / 167
グラフ
グラフの連結性
連結性を行列で判定する (Section 4.2, Example 4.2.9)
AG1=
0 1 0 01 0 0 00 0 0 10 0 1 0
, AG2=
0 1 0 01 0 0 00 1 0 10 0 1 0
可約行列
AG3=
0 1 0 01 0 1 00 1 0 10 0 1 0
既約行列
G1 G2 G3
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 109 / 167
グラフ上のランダムウォーク
グラフ上のランダムウォーク
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 110 / 167
グラフ上のランダムウォーク
ランダムウォーク
グラフ上のランダムウォークとは (Section 4.3)
以下ではグラフ G は全て強連結と仮定する
例えば次のグラフ G = (V,E) を考えよう
(Example 4.3.1, P. 53)v1
v2
v3
◮ 時刻 t = n で「粒子」が G のどこかの頂点にいる◮ 次の時刻 t = n + 1 には粒子は, 以下のルールにしたがって
G のどこかの頂点に移動する
• 粒子はグラフの辺に沿ってのみ移動できる
• 頂点 i を始点とする複数の辺があるときには,
どの辺を使って移動するかは等確率
◮ 長時間経過したとき, 各頂点粒子がいる確率を求めたい
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 111 / 167
グラフ上のランダムウォーク
ランダムウォーク
グラフ上のランダムウォークとは (Section 4.3)
時刻 t = n で粒子が頂点 vi にいる確率を p(n, i) とおくと
p(n + 1, 1)p(n + 1, 2)p(n + 1, 3)
=
0 1/2 1/21/2 0 1/21/2 1/2 0
p(n, 1)p(n, 2)p(n, 3)
(4.1)
π(n + 1) = PGπ(n) (4.2)
と表せる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 112 / 167
グラフ上のランダムウォーク
ランダムウォーク
グラフ上のランダムウォークとは (Section 4.3)
π = (pi) ∈ RN が
p1 + · · · + pN = 1, 0 ≤ pi ≤ 1
をみたすとき π を確率分布と呼ぶ (Definition 4.3.2, P. 54)
N × N 行列 P = (pij) が次の条件をみたすときP を確率行列と呼ぶ
◮ 0 ≤ pij ≤ 1
◮
∑N
i=1pij = 1 (どの列も成分の和は 1)
(Definition 4.3.4, P. 54)
前のページの PG は確率行列
π が確率分布, P が確率行列のとき P π も確率分布となる
(Proposition 4.3.5, P. 55)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 113 / 167
グラフ上のランダムウォーク
ランダムウォーク
グラフ上のランダムウォークとは (Section 4.3)
π(n + 1) = PGπ(n) は◮ π(0) は確率分布ならば, 全ての n に対して π(n) も確率分布◮ 時間が変化するにしたがって,
確率分布 π(n) も変化していく様子を表している
定められたルールによって
確率分布が時間ごとに変化していくとき,
そのルールを確率過程と呼ぶ
(Definition 4.3.3, P. 54)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 114 / 167
グラフ上のランダムウォーク
ランダムウォーク
グラフ上のランダムウォークとは (Section 4.3, Definition 4.3.7)
強連結グラフ G = (V,E) に対して行列 PG を以下で定義◮ 頂点 i から j への辺があるとき pji = 1/K
ただし K は頂点 i を始点する辺の数◮ 頂点 i から j への辺がないとき pji = 0
PG を G の推移確率行列
PG から決まる確率過程
π(n + 1) = PGπ(n) (4.4)
をグラフ G 上の単純ランダムウォーク
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 115 / 167
グラフ上のランダムウォーク
ランダムウォーク
グラフ上のランダムウォークとは (Section 4.3)
G PG AG
v1
v2
v3
0 1/2 1/21/2 0 1/21/2 1/2 0
0 1 11 0 11 1 0
v1
v2
v3
0 1/2 1/20 0 1/21 1/2 0
0 1 10 0 11 1 0
v1
v2
v3
0 1/2 1/31/2 0 1/31/2 1/2 1/3
0 1 11 0 11 1 1
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 116 / 167
グラフ上のランダムウォーク
ランダムウォーク
「単純」ではないランダムウォーク (Section 4.3)
既約な N × N 確率行列 P を与えて
π(n + 1) = P π(n)
できめた確率過程をランダムウォークと呼ぶ
(Definition 4.3.13, P. 57)
これはグラフ上のランダムウォークと思える
1 P の 0 でない要素を全て 1 にした行列を A
2 A を隣接行列に持つグラフ G を作る
◮ G は強連結グラフとなる◮ G の隣接行列 AG は AG = A をみたす
「既約な確率行列を与えること」
=「強連結グラフ上のランダムウォークを考えること」
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 117 / 167
グラフ上のランダムウォーク
ランダムウォーク
「単純」ではないランダムウォーク (Section 4.3)
P =
0 3/4 1/51/3 0 4/52/3 1/4 0
確率行列
A =
0 1 11 0 11 1 0
を隣接行列とするグラフ:
v1
v2
v3
1/32/3
1/43/4
1/5
4/5
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 118 / 167
グラフ上のランダムウォーク
ランダムウォーク
ランダムウォークの不変分布 (Section 4.3, Definition 4.3.15)
既約な確率行列 P から決まるランダムウォーク
π(n + 1) = P π(n)
の t = 0 での確率分布 π(0) を初期分布と呼ぶ
初期分布を与えるごとに t = n での確率分布は
π(n) = P nπ(0)
で完全にきまる
π = P π をみたす確率分布を不変分布と呼ぶ(π∞ と書く)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 119 / 167
グラフ上のランダムウォーク
ランダムウォーク
ランダムウォークとページランク (Section 4.3)
「ページランクを求めること」は◮ ウェブデータ全体のリンク構造から決まるグラフ G 上の
単純ランダムウォーク π(n + 1) = PGπ(n) を考え,
◮ 長時間経過したときの分布
π∞ = limn→∞
π(n)
が存在すれば◮ π = PGπ をみたす確率分布(不変分布 π∞)を求めること
既約確率行列 P がきめるランダムウォークの不変分布は
π∞ = P π∞
π∞ は P の固有値 1 に対する固有ベクトル
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 120 / 167
グラフ上のランダムウォーク
ランダムウォーク
ランダムウォークとページランク (Section 4.3)
ウェブデータ全体のリンク構造をあらわすグラフから決まる
ランダムウォークは不変分布を持つか?
(推移確率行列は固有値 1 を持つか?)
不変分布を持つならば任意の初期分布に π(0) に対して,
π∞ = limt→∞
π(t)
が成り立つか?
(Problem 4.3.17, P. 58)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 121 / 167
グラフ上のランダムウォーク
ランダムウォーク
ランダムウォークとページランク (Section 4.3)
ウェブデータ全体のリンク構造をあらわすグラフから決まる
ランダムウォークの推移確率行列 P は,
任意の初期分布に π(0) に対して,
π∞ = limn→∞
P nπ(0)
をみたすか?
(Problem 4.3.18, P. 58)
(cf. Theorem 3.8.1, P. 44)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 122 / 167
グラフ上のランダムウォーク
ランダムウォークの不変分布
非負行列の固有値 (Section 4.4)
N × N 行列 A のすべての要素が aij ≥ 0 であるときA を非負行列と呼ぶ (Definition 4.4.1, P. 59)
◮ 例:確率行列 P は非負行列
A が既約な非負行列のとき以下の性質をみたす固有値 λ(A) が存在する
1 λ(A) は実数であり, λ(A) > 0 が成り立つ.
2 A の他の固有値 µ は, |µ| ≤ λ(A) をみたす.
3 λ(A) の重複度は 1 である.
4 λ(A) に対する固有ベクトル x として,
すべての要素が正のものが取れる.
5 λ(A) 以外の固有値に対する固有ベクトルは,
すべての要素が正になることはない.
(「ペロン・フロベニウスの定理」 Theorem 4.4.2, P. 59)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 123 / 167
グラフ上のランダムウォーク
ランダムウォークの不変分布
確率行列の固有値 (Section 4.4)
P が既約な確率行列のとき, 次が成り立つ.
1 P は固有値 1 をもち, その重複度は 1 である.
2 P の 1 以外の固有値 µ に対して |µ| ≤ 1 が成り立つ.
3 P の固有値 1 に対する固有ベクトルとして
確率分布を取ることができる.
(Theorem 4.4.3, P. 59)
既約確率行列の時には, ペロン・フロベニウスの定理でλ(P ) = 1 と取れることを意味している
ペロン・フロベニウスの定理を認めれば証明は易しい
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 124 / 167
グラフ上のランダムウォーク
ランダムウォークの不変分布
(証明) (Section 4.4)
1 ペロン・フロベニウスの定理から, 絶対値最大固有値 λ(P ) は
実数であり λ(P ) > 0 をみたす.
2 λ(P ) に対する固有ベクトル x として,
すべての要素が正であるものが取れて,
そのような固有ベクトルをもつ固有値は λ(P ) に限る.
3 P の各列の和は 1 なので, e = (1, . . . , 1)T とおくと
P Te = e
が成り立つ. よって P T は固有値 1 をもつ
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 125 / 167
グラフ上のランダムウォーク
ランダムウォークの不変分布
(証明の続き) (Section 4.4)
4 非負行列の全ての固有値 µ は
|µ| ≤
n∑
j=1
pji = 1
をみたすので 1 は P T の絶対値最大固有値
5 P T の固有値と P の固有値は一致するので,
1 は P の絶対値最大固有値(λ(P ) = 1)
6 よって, P の固有値 1 に対する固有ベクトル x として,全ての要素が正のものが取れる
特に, ‖π‖1 = 1 となるような固有ベクトルを取れば,π は確率分布となる
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 126 / 167
グラフ上のランダムウォーク
ランダムウォークの不変分布
ページランクとの関係 (Section 4.4)
既約な確率行列 P は固有値 1 をもち,
固有ベクトルとして確率分布を持つことがわかった
これでページランクの問題は解決したように思える
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 127 / 167
グラフ上のランダムウォーク
ランダムウォークの不変分布
ページランクとの関係 (Section 4.4)
次のグラフを考える
PG =
(
0 11 0
)
固有値 = {1,−1}
π(0) =
(
10
)
ととると π(2n) =
(
10
)
π(2n + 1) =
(
01
)
つまり, 同じ状態が交互にあらわれる (Example 4.4.4, P. 60)
次のグラフでも事情は同じ1
23 5
4
この場合は固有値 {1, e2πi/3, e−2πi/3} (Example 4.4.5, P. 61)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 128 / 167
グラフ上のランダムウォーク
ランダムウォークの不変分布
ページランクとの関係 (Section 4.4)
1 以外に |µ| = 1 となる固有値 µ が存在すること問題
Theorem 3.8.1 (P. 44) の条件
|λ1| > |λ2| ≥ · · · ≥ |λN |
をみたしていないので,
π∞ = limn→∞
P nπ(0)
と計算できない
既約な確率行列の 1 以外の全ての固有値 µ が
|µ| < 1
をみたすための条件は何か?
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 129 / 167
グラフ上のランダムウォーク
ランダムウォークの周期性
ランダムウォークの周期 (Section 4.5)
「ある一定時間ごとに同じ状態が繰り返される」ことが,
「ランダムウォークの不変分布が存在するための障害」
になっていると予想できる.
確率行列 P に対して
ki = gcd{k ∈ N : p(k)ii > 0} ただし P k = p
(k)ij
と定義し, ki を頂点 i の周期と呼ぶ
頂点 i にいた粒子が,
再び同じ頂点に戻ってくる確率が正になる最短の時間
(Definition 4.5.1, P. 62)
確率行列 P が既約ならば ki = kj が成り立つ
(Proposition 4.5.2, P. 62)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 130 / 167
グラフ上のランダムウォーク
ランダムウォークの周期性
ランダムウォークの周期 (Section 4.5)
ki ≥ 2 のとき P がきめるランダムウォークは周期的,
ki = 1 のとき非周期的と呼ぶ (Definition 4.5.4, P. 63)
周期的な例(周期 = 3)1
23 5
4
(Example 4.5.8, P. 63)
非周期的な例1
23 5
46
(Example 4.5.10, P. 64)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 131 / 167
グラフ上のランダムウォーク
ランダムウォークの周期性
非周期性の判定条件と固有値 (Section 4.5)
既約な確率行列 P で定義されたランダムウォークは,
P の対角成分 {pii} のうち1つでも正のものがあれば,
非周期的となる. (Theorem 4.5.5, P. 63)
既約な確率行列 P で定義されたランダムウォークが
非周期的ならば, P の固有値 λ で |λ| = 1 となるものは
λ = 1 に限る.
特に, すべての成分が正であるような
任意の初期分布 π(0) は,
t → ∞ の時, 不変分布 π に収束する. (Theorem 4.5.6, P. 63)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 132 / 167
グラフ上のランダムウォーク
ランダムウォークの周期性
非周期性の判定条件と固有値 (Section 4.5)
既約な確率行列 P で定義されたランダムウォークが
周期 k となるとき, 絶対値 1 となる固有値として e2πi/k が出てくる.
固有値に e2πi/k = cos(2π/k) + i sin(2π/k) が出てくるときの様子はこの図のようになる(k = 5 の時の図)
(Example 3.7.4, P. 43)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 133 / 167
グラフ上のランダムウォーク
ランダムウォークとページランク
数学としての結論 (Section 4.6)
既約な確率行列 P で定義されたランダムウォークが非周期的ならば, 以下が成り立つ
1 ただひとつの不変分布 π∞ が存在する
2 すべての成分が正であるような
任意の初期分布 π(0) に対して limn→∞
P nπ(0) が存在して
π∞ = limn→∞
P nπ(0)
が成り立つ.
(Theorem 4.6.1, P. 65)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 134 / 167
グラフ上のランダムウォーク
ランダムウォークとページランク
ページランクとしての結論 (Section 4.6)
ウェブデータ全体のリンク構造がなすグラフに関しての
ランダムウォークを考えたとき,
その確率行列が Theorem 4.6.1 の仮定をみたすならば,
ページランクは不変分布 π∞ として定義することができる.
(Theorem 4.6.2, P. 66)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 135 / 167
グラフ上のランダムウォーク
ランダムウォークとページランク
残った問題点 (Section 4.6)
ウェブデータ全体のリンク構造がなすグラフが
◮ 強連結なのか?◮ ランダムウォークは非周期的なのか?
実際に不変分布はどのように計算すればよいのか?
インターネット上のウェブページは数千~数十億にもなる◮ それでも不変分布は計算できるのか?◮ いったいどのくらいの計算をすればよいのか?
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 136 / 167
Google ページランク
Google ページランク
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 137 / 167
Google ページランク
Goolge 行列とページランク
ページランク (Section 5.1)
最初に説明したページランクの定義
インターネット上のウェブデータ全体の
リンク構造のなすグラフを考え
そのグラフ上の単純ランダムウォークの不変分布を
ページランクと呼ぶ
「ウェブのデータの中をリンクをたどりながらあちらこちらに移動するユーザの各ウェブページの滞在確率」
でも「強連結性」や「非周期性」は?
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 138 / 167
Google ページランク
Goolge 行列とページランク
ハイパーリンク行列 (Section 5.1)
以下では, G はインターネット上のウェブデータ全体の
リンク構造がなすグラフとする
G から作られる「推移確率行列」を H とおき,
ハイパーリンク行列と呼ぶ (Definition 5.1.1, P. 67)
実際には H は確率行列にはならない1
23 5
46
(5から出ていく辺がない)
(Remark 5.1.2, P. 67), (Example 5.1.3, P. 67)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 139 / 167
Google ページランク
Goolge 行列とページランク
ぶら下がりノード (Section 5.1)
グラフ G = (V,E) の頂点(ウェブページ) v で,
v を始点とする辺(ページ v から出ていくリンク)が
ないページをぶら下がりノードと呼ぶ.
(Example 5.1.3, P. 67)
前ページの例では
H =
0 1 0 0 0 00 0 1/2 0 0 01 0 0 0 0 00 0 1/2 0 0 00 0 0 0 0 10 0 0 1 0 0
, π∞ =
000010
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 140 / 167
Google ページランク
Goolge 行列とページランク
ぶら下がりノード (Section 5.1)
以下のように新しい行列 S をきめる◮ d = (di) ∈ R
N を
di =
{
1 ページ i がぶら下がりノード,
0 ページ i はぶら下がりノードでない,
◮ S = 1
NdeT , ただし e =
1...1
∈ RN
S =(
s1 · · · sN
)
は以下のような行列(確率行列)になる
si =
1
Ne ページ i がぶら下がりノード,
0 ページ i はぶら下がりノードでない,
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 141 / 167
Google ページランク
Goolge 行列とページランク
確率行列の定義 (Section 5.1)
リンク構造をあらわす行列 P を
P = H + S
で定義する
P は確率行列となる
Example 5.1.4 のグラフに対して P を計算すると
S =
0 0 0 0 1/6 00 0 0 0 1/6 00 0 0 0 1/6 00 0 0 0 1/6 00 0 0 0 1/6 00 0 0 0 1/6 0
,P =
0 1 0 0 1/6 00 0 1/2 0 1/6 01 0 0 0 1/6 00 0 1/2 0 1/6 00 0 0 0 1/6 10 0 0 1 1/6 0
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 142 / 167
Google ページランク
Goolge 行列とページランク
これでOK? (Section 5.1)
ここまでで, リンク構造をあらわす確率行列 P を◮ リンク構造から決まるハイパーリンク行列 H
◮ ぶら下がりノードへの対応の行列 S
を使って P = H + S ときめた
P は確率行列なのでランダムウォークが定義できる
このランダムウォークの不変分布を計算すればよい?◮ 非周期的かどうかわからない◮ 仮に非周期的としても P の 1 に一番近い固有値が
1 にものすごく近いかもしれない
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 143 / 167
Google ページランク
Goolge 行列とページランク
テレポーテーション行列 (Section 5.1)
テレポーテーション行列 T
T =1
NeeT =
1/N · · · 1/N...
. . ....
1/N · · · 1/N
(Definition 5.1.5, P. 70)
T は確率行列
リンクをたどらずに自由に移動するユーザの動きをあらわす
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 144 / 167
Google ページランク
Goolge 行列とページランク
Google 行列 (Section 5.1)
Google 行列 G(α)
G(α) = αP + (1 − α)T
ただし 0 < α < 1 (Definition 5.1.6, P. 70)
α : ユーザがリンクをたどって他のページに移動する確率
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 145 / 167
Google ページランク
Goolge 行列とページランク
Google 行列 (Section 5.1)
Example 5.1.4 のグラフの時 (α = 9/10)
P =
0 1 0 0 1/6 00 0 1/2 0 1/6 01 0 0 0 1/6 00 0 1/2 0 1/6 00 0 0 0 1/6 10 0 0 1 1/6 0
, T =
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
16
G =9
10P +
1
10T =
160
1112
160
160
16
160
160
160
715
160
16
160
1112
160
160
160
16
160
160
160
715
160
16
160
160
160
160
160
16
1112
160
160
160
1112
16
160
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 146 / 167
Google ページランク
Goolge 行列とページランク
Google 行列とページランク (Section 5.1)
0 < α < 1 のとき◮ G(α) は既約な確率行列
(勝手な2つのページを結ぶリンクが存在する)◮ G(α) がきめるランダムウォークは非周期的
(G(α) の全ての対角成分は正)◮ G(α) がきめるランダムウォークは不変分布 π∞ を持ち
π∞ = limn→∞ Gnπ(0) が成り立つ
(Theorem 5.1.8, P. 70)
Google 行列 G(α) が定めるランダムウォークの不変分布:
ページランク
(Definition 5.1.10, P. 71)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 147 / 167
Google ページランク
Goolge 行列とページランク
ページランクの計算例 (Section 5.1)
1
23 5
46
G(9
10) =
160
1112
160
160
16
160
160
160
715
160
16
160
1112
160
160
160
16
160
160
160
715
160
16
160
160
160
160
160
16
1112
160
160
160
1112
16
160
, π∞ =
0.1677580.1350070.1972340.1350070.1972340.167758
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 148 / 167
Google ページランク
Goolge 行列とページランク
α の取り方 (Section 5.1)
G(α) = αP + (1 − α)T の α の取り方でページランクは変化してしまう
◮ α が 1 に近いとき∥
∥
ddα
π∞(α)∥
∥ は大きくなり,
◮ α が 0 に近いとき∥
∥
ddα
π∞(α)∥
∥ は小さくなる
(Remark 5.1.11, P. 71)
Google は α = 0.85 と設定している(らしい)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 149 / 167
Google ページランク
ページランクの計算
ページランクの計算方法 (Section 5.2)
ページランクを計算するには
1 G(α) を計算して
2 π(0) =
1/N...
1/N
∈ RN を初期分布に取って
3 Gnπ(0) を計算すればよい
πn+1 = G(α)πn
によって絶対値最大固有値の固有ベクトルを計算する方法
(Theorem 3.8.1, P. 44)
何回くらい繰り返し計算すればよいのか?
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 150 / 167
Google ページランク
ページランクの計算
繰り返し計算の計算回数 (Section 5.2)
Theorem 3.8.1 を使って πk を計算するとき
‖πk − π∞‖ が 0 に収束する速さは∣
∣
∣
∣
λ2
λ1
∣
∣
∣
∣
k
に比例する.
(Theorem 5.2.6, P. 74)
G(α) のとき λ1 = 1 だから ‖πk − π∞‖ ∼ O(
|λ2|k)
1 の次に小さい固有値が小さいほど速く収束する
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 151 / 167
Google ページランク
ページランクの計算
数列の収束 (Section 5.2)
任意の ǫ > 0 に対して
ǫ に応じて十分大きな N ∈ N が存在して
n > N をみたすすべての n に対して
|an − a| < ǫ が成り立つとき
数列 {an}∞n=1 は a に収束するという (Definition 5.2.2, P. 72)
|r| < 1 ならば 数列 rn → 0
◮ 小さな数 ǫ > 0 を一つきめると n > logr ǫ =⇒ |rn| < ǫ が成り立つ
(Example 5.2.3, P. 73)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 152 / 167
Google ページランク
ページランクの計算
数列の収束 (Section 5.2, Example 5.2.4)
ǫ = 1/1000 = 10−3 のとき n ∼ logr ǫ = −3 log 10/ log r
r 0.3 0.5 0.6 0.7 0.8 0.85 0.9 0.99 0.999
n 5.74 9.97 13.5 19.4 31.0 42.5 65.6 687 6910
1e-250
1e-200
1e-150
1e-100
1e-50
1
0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000
r = 0.7r = 0.8r = 0.9
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 153 / 167
Google ページランク
ページランクの計算
ページランク計算の繰り返し回数 (Section 5.2)
G(α) の2番目に大きい固有値が小さいほどうれしい
P の固有値 {1, λ2, λ3, . . . , λN} のとき
G(α) = αP + (1 − α)T の固有値は
{1, αλ2, αλ3, . . . , αλN}
特に G(α) の絶対値が2番目に大きな固有値の
絶対値は α 未満 (Theorem 5.2.8, P. 75)
例えば λ2 = 0.999 の時, (0.999)k ≤ 0.5 × 10−4
をみたす最小の k は k = 9899
α = 0.85 ならば (0.85)k ≤ 0.5 × 10−4
をみたす最小の k は k = 61
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 154 / 167
Google ページランク
ページランクの計算
ページランクの計算量 (Section 5.2)
N × N 行列 G と π ∈ RN の積 Gπ を計算するには,
O(N2) 回の計算が必要 (Proposition 5.2.9, P. 75)
Intel Core i7 の計算スピード: 50Gflops (1秒間に 500億回)
N =1億 ならば1回の乗算は 55.5 時間
(Remark 5.2.10, P. 75)
「計算時間」は「並列計算」で時間を短縮可能
(Remark 5.2.16, P. 77)
N =1億 の行列を格納するメモリ: 800 ペタバイト
(Proposition 5.2.11, P. 76)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 155 / 167
Google ページランク
ページランクの計算
ページランクの計算に必要なメモリ (Section 5.2)
N × N 行列 の 0 でない要素が O(N) 程度の時, 疎行列,
それ以上に 0 でない要素があるとき密行列と呼ぶ
(Definition 5.2.12, P. 76)
ハイパーリンク行列 H は疎行列Google 行列 G は密行列
G と π の掛け算をするだけなら
Gπ = αHπ + (eT π)
(
α
Nd +
1 − α
Ne
)
と計算すれば O(N) 程度のメモリしか必要としない
(Proposition 5.2.14, P. 76), (Proposition 5.2.15, P. 76)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 156 / 167
Google ページランク
ページランクの計算
繰り返し計算の回数 (Section 5.2)
ページランク(G(α) の不変分布)の近似値の計算
π(n + 1) = Gπ(n)
の繰り返し回数は, α が小さいほど少ない回数でよい近似を得ることができる
‖π(k) − π∞‖ = O(αk)
実際には ‖π(k + 1) − π(k)‖ ≤ (1 − α)ǫ
が成り立つまで計算を繰り返す
このとき ‖π(k) − π∞‖ ≤ ǫ を保証できる
(Remark 5.2.18, P. 78)
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 157 / 167
Google ページランク
ページランクの計算例
ページランクの計算例 (Section 5.3, Example 5.3.1)
1
2
3
5
6
4
H =
0 0 1/3 0 0 01/2 0 1/3 0 0 01/2 0 0 0 0 00 0 1/3 0 0 1/20 0 0 1/2 0 1/20 0 0 1/2 1 0
, d =
010000
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 158 / 167
Google ページランク
ページランクの計算例
ページランクの計算例 (Section 5.3, Example 5.3.1)
P = H +1
6dT e =
0 1/6 1/3 0 0 01/2 1/6 1/3 0 0 01/2 1/6 0 0 0 00 1/6 1/3 0 0 1/20 1/6 0 1/2 0 1/20 1/6 0 1/2 1 0
α = 0.85 の時
π∞ =
0.051704750.073679260.057412410.19990380.26859610.3487037
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 159 / 167
Google ページランク
ページランクの計算例
ページランクの計算例 (Section 5.3, Example 5.3.1)
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1
Page rank
v1v2v3v4v5v6
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 160 / 167
Google ページランク
ページランクの計算例
ページランクの計算例 (Section 5.3, Example 5.3.1)
1e-14
1e-12
1e-10
1e-08
1e-06
0.0001
0.01
1
0 10 20 30 40 50 60 70 80
Iteration count - Error
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 161 / 167
Google ページランク
ページランクの計算例
ページランクの計算例 (Section 5.3, Example 5.3.2)
N = 5757, リンク数 = 24451,1ページあたりの平均リンク数 = 4.25
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 162 / 167
Google ページランク
ページランクの計算例
ページランクの計算例 (Section 5.3, Example 5.3.2)
1e-10
1e-09
1e-08
1e-07
1e-06
1e-05
0.0001
0.001
0.01
0.1
1
0 50 100 150 200 250 300 350
Iteration count - Error
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 163 / 167
Google ページランク
ページランクの計算例
ページランクの計算例 (Section 5.3, Example 5.3.2)
1
10
100
1000
0.5 0.55 0.6 0.65 0.7 0.75 0.8 0.85 0.9 0.95 1
Elasped time
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 164 / 167
まとめ
現実には
現実の Goolge での検索結果の表示順位は◮ そのページに含まれる検索語の数などの情報◮ ページランクの順位付けの過去の変動◮ ウェブページの更新頻度◮ Google が把握できる範囲でのアクセス状況
などの要素を加味して決定されている
ページランクが低いページが検索結果の上位に来ることは稀
我々が知ることができる「ページランク」は 10 から 0 までの 11 段階に分類された値
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 165 / 167
まとめ
まとめ
Google のページランクとは
ウェブデータ全体のなすリンク構造のなすグラフに関する
ランダムウォークの不変分布のことである
単に不変分布を計算しようとしてもうまくいかないので
数学的にも有効な工夫がなされている
実際には非常に巨大な行列の計算を行う必要があり,
Google は「スーパーコンピュータ」で計算をしている
このように意外な (?)ところにも広く数学が利用されている
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 166 / 167
まとめ
おしまい
内藤 久資 (名大・多元数理) Random Walk & Google Page Rank Agora on Aug. 2011 167 / 167