Upload
akira-terui
View
596
Download
5
Embed Size (px)
DESCRIPTION
The slides of a lecture "Challenges in Computational Mathematics – PageRank Technology for Defining Importance of Web Pages –" (in Japanese). Lecture given on November 12, 2012, at University of Tsukuba, Tsukuba, Japan.平成 24 年度 筑波大学 総合科目「数学の美しさと奥深さ」講義資料.照井 章(筑波大学 数理物質系)2012年11月12日, 筑波大学 3A403.
Citation preview
平成24年度 筑波大学総合科目「数学の美しさと奥深さ」
計算数学の挑戦—Webページの重要度を定めるPageRankの技術—
照井 章(筑波大学 数理物質系 数学域)
2012年11月12日
Who is 照井?
http://researchmap.jp/aterui
配布資料のPDF版をダウンロードできます
平成 24 年度 筑波大学 総合科目「数学の美しさと奥深さ」
計算数学の挑戦—Webページの重要度を定める PageRankの技術— !
照井 章(筑波大学 数理物質系)http://researchmap.jp/aterui
2012年 11月 12日
概要World Wide Web(以下,Webと略す)は,私達が日頃使っているインターネット通信で最も代表的な応用技術の一つである.世界のインターネット上に存在する膨大な webページから,自分の目的とする情報を探し出すためには,web 検索がもはや必要不可欠であるが,ここで問題になるのが,検索結果の中から,自分の目的に最も合う(重要度の高い)web ページをどうやって見つけるかである.本稿では,そのための技術の一つとして,web検索等のインターネットサービス企業大手の Google(とその創業者達)が開発した PageRank技術を取り上げ,数学が実世界 (real world) の技術にいかに活かされているかを紹介する.
1 はじめに1.1 テーマ
• World Wide Web (以下,Webと略す): 私達が日頃使っているインターネット通信で最も代表的な応用技術の一つ.
• Web検索: 大量の webページから自分が目的とする情報を探し出すのに欠かせない技術.
1.2 問題
• 自分の目的に最も合う(重要度の高い)webページをどうやって探せる(探してもらう)か?
– 検索結果の webページに,重要度に関する定量的な優先順位をつければよい.それはどのように行えばよいか?
! この講義ノートは以下の場所からダウンロード可能です: http://goo.gl/i5YAb
1
アドレスはここ
きょうのお題
World Wide Web
Webサーフィンには検索(サイト)が必要不可欠
数学の美しさと奥深さ 検 索
筑波大学総合科目が上位にヒット
検索結果が約3万件
大量の検索結果からより重要なwebページを優先的に取り出すにはどうすればよいか?
PageRank
定量的なwebページの重要度の指標
≤ ≤ ≤ ≤ ≤⋯ ⋯
の話をします!
数学の美しさと奥深さ
+ 泥臭さ
アイデア実現のステップ
モデル化 開 発 実 装
アイデア実現のステップ
モデル化 開 発 実 装
対象を観察し、問題を数学の言葉で表す
アイデア実現のステップ
開 発 実 装モデル化
モデル化した問題の解法をつくる
アイデア実現のステップ
計算機のプログラムやシステムを作って動かす
モデル化 開 発 実 装
今回の話の流れ
モデル化 開 発 実 装
マルコフ過程 線形代数 いろいろ
マルコフ過程
確率論で扱われる確率過程の一つ
例:ある地方の明日の天気
今日の天気
毎日、今日の天気からある決まった確率で推移
今日が晴のとき明日の天気の確率
0%
20%
40%
60%
80%
100%
今日が曇のとき明日の天気の確率
0%
20%
40%
60%
80%
100%
今日が雨のとき明日の天気の確率
0%
20%
40%
60%
80%
100%
時間の推移に伴う日々の天気の確率の推移
今日 明日 あさって
確率過程
注 意実際の気象予報は
このように行われているわけではありません!
今後の仮定(2つ)
仮定1: マルコフ性
今日 明日
あさって3日前
おととい 昨日
明日の各天気の確率は今日の天気にのみ依存する
「マルコフ過程」
仮定2: 時間について一様
今日 明日
あさって3日前
おととい 昨日
翌日の各天気に推移する確率は、毎日常に一定
確率過程を計算しよう
推移図(有向グラフ)
�
1/2 �2/5
�1/10
2/5
1/2
1/10
1/5
3/10
1/2
ノード(節) エッジ(辺)
推移図を表にまとめる
�
1/2 �2/5
�1/10
2/5
1/2
1/10
1/5
3/10
1/2
明日の天気明日の天気明日の天気
今日の天気
今日の天気
今日の天気
1/2 2/5 1/10
【問題1】表を完成させよう!
明日の天気明日の天気明日の天気
今日の天気
今日の天気
今日の天気
1/2 2/5 1/10
2/5 1/2 1/10
1/5 3/10 1/2
推移図を表にまとめる
�
1/2 �2/5
�1/10
2/5
1/2
1/10
1/5
3/10
1/2
【問題1】表を完成させよう!
表から推移確率行列を定義する
明日の天気明日の天気明日の天気
今日の天気
今日の天気
今日の天気
1/2 2/5 1/10
2/5 1/2 1/10
1/5 3/10 1/2
P =
0
@1/2 2/5 1/10? ? ?? ? ?
1
A
【問題2】推移確率行列 P を完成させよう!
確率分布ある時点での「晴」「曇」「雨」それぞれの確率を
順に並べた行ベクトル
( , , )
各要素は非負で、それらの総和は1
例:「今日の天気は晴」の確率分布
⇡(0) =�1 0 0
�
明日の天気の確率分布を計算すると
⇡(1) = ⇡(0) P
=�1 0 0
�0
@1/2 2/5 1/102/5 1/2 1/101/5 3/10 1/2
1
A
=�1/2 2/5 1/10
�
あさっての天気の確率分布を計算すると
⇡(2) = ⇡(1) P
=�1/2 2/5 1/10
�0
@1/2 2/5 1/102/5 1/2 1/101/5 3/10 1/2
1
A
=�43/100 43/100 7/50
�
n日後の天気の確率分布を計算すると
⇡(n) = ⇡(n� 1) P
= ⇡(n� 2) P 2
...= ⇡(0) Pn
例:水戸における1981年~2010年の30年間の11月12日の天気出現率
⇡(0) =�0.7 0.1 0.2
�
⇡(4) = ⇡(0) P 4
=�0.407 0.426 0.168
�
4日後の天気の確率分布を計算すると
定常分布
今日の天気を「晴」と仮定して10日後までの天気の確率分布を計算すると
⇡(0) =�1 0 0
�
⇡(1) =�0.5 0.4 0.1
�
⇡(2) =�0.43 0.43 0.14
�
⇡(3) =�0.415 0.429 0.156
�
⇡(4) =�0.410 0.427 0.162
�
⇡(5) =�0.409 0.426 0.165
�
⇡(6) =�0.408 0.426 0.166
�
⇡(7) =�0.408 0.426 0.166
�
⇡(8) =�0.407 0.426 0.167
�
⇡(9) =�0.407 0.426 0.167
�
⇡(10) =�0.407 0.426 0.167
�
水戸における11月12日の天気出現率から10日後までの天気の確率分布を計算すると
⇡(0) =�0.7 0.1 0.2
�
⇡(1) =�0.43 0.39 0.18
�
⇡(2) =�0.407 0.421 0.172
�
⇡(3) =�0.406 0.425 0.169
�
⇡(4) =�0.407 0.426 0.168
�
⇡(5) =�0.407 0.426 0.167
�
⇡(6) =�0.407 0.426 0.167
�
⇡(7) =�0.407 0.426 0.167
�
⇡(8) =�0.407 0.426 0.167
�
⇡(9) =�0.407 0.426 0.167
�
⇡(10) =�0.407 0.426 0.167
�
どのような確率分布から出発しても日数が十分経つと、同一の確率分布に
落ち着くように見える⇡(0) =
�0.5 0.167 0.333
�
⇡(1) =�0.383 0.383 0.233
�
⇡(2) =�0.392 0.415 0.193
�
⇡(3) =�0.401 0.422 0.177
�
⇡(4) =�0.405 0.424 0.171
�
⇡(5) =�0.406 0.425 0.168
�
⇡(6) =�0.407 0.426 0.167
�
⇡(7) =�0.407 0.426 0.167
�
⇡(8) =�0.407 0.426 0.167
�
⇡(9) =�0.407 0.426 0.167
�
⇡(10) =�0.407 0.426 0.167
�
⇡(0) =�1 0 0
�
⇡(1) =�0.5 0.4 0.1
�
⇡(2) =�0.43 0.43 0.14
�
⇡(3) =�0.415 0.429 0.156
�
⇡(4) =�0.410 0.427 0.162
�
⇡(5) =�0.409 0.426 0.165
�
⇡(6) =�0.408 0.426 0.166
�
⇡(7) =�0.408 0.426 0.166
�
⇡(8) =�0.407 0.426 0.167
�
⇡(9) =�0.407 0.426 0.167
�
⇡(10) =�0.407 0.426 0.167
�
実際、ある条件下では同一の確率分布に落ち着く!
定理:既約かつ非周期的なマルコフ過程において、 はある唯一のベクトル に収束する.
⇡(n) ↵
↵ = ↵P
Pの固有値1に属する固有ベクトル
定常分布
【問題3】天気の例題の定常分布を求めよう
基本的には、以下の連立1次方程式を解けばよい:
要素の総和を1に規格化することに注意
↵ = ↵P
�x y z
�=
�x y z
�0
@1/2 2/5 1/102/5 1/2 1/101/5 3/10 1/2
1
A
Webページの相互関係を考えよう!
Webページの相互リンク(ハイパーリンク)の例(図2)
2つの仮定
仮定1:各webページから自分以外のすべてのwebページに到達可能
仮定2:これらのwebページ以外からのリンクの出入りはない
Webページのリンク関係を有向グラフで考える(図3)
Page 1 Page 2 Page 4
Page 3
Page 5
Page 6
Page 7
ノードエッジ
天気の推移図との対応関係
Page 1 Page 2 Page 4
Page 3
Page 5
Page 6
Page 7�
1/2 �2/5
�1/10
2/5
1/2
1/10
1/5
3/10
1/2
天気 Webページ天気の推移 Webページ間のリンク
天気が推移する確率 ??? 何を与える?
Random Surfer Model
n個のハイパーリンクから1個を無作為に選んで進む(確率1/n)
1/n
1/n
1/n
1/n
Random Surfer Model による推移図(図4)
Random Surfer Model による確率過程の計算
確率分布ある時点で “Page 1”, ... , “Page 7” それぞれを閲覧している確率を順に並べた行ベクトル
各要素は非負で、それらの総和は1
( , , ... , )
確率分布がマルコフ過程に従うと仮定し、推移確率行列を求める
【問題4】推移確率行列 P を求めよう!
P =
0
BBBBBBBB@
? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?
1
CCCCCCCCA
マルコフ過程の既約性と非周期性を仮定すると、定常分布が求まる
↵ = ↵P
定常分布
( , , ... , )
定常分布から各webページのPageRank を定める
定常分布十分な回数の試行の後
各webページを訪問している確率
各webページを訪問する確率をPageRank と定義する!
( , , ... , )
PageRank の意味(1)
被リンク数がより多いほど
PageRank はより大きい傾向がある
PageRank の意味(2)PageRank がより大きなwebページからのリンク数が多いほど
PageRank はより大きい傾向がある
【問題5】PageRankを求めてみよう!
↵ = ↵P
定常分布
( , , ... , )
要素の総和を1に規格化することに注意
現実のwebページの相互関係に即したモデルの修正
「仮定1:各webページから自分以外のすべてのwebページに到達可能」
「仮定2:これらのwebページ以外からのリンクの出入りはない」
仮定が成り立たない例(1)
入るリンクがあっても
出ていくリンクがない
仮定が成り立たない例(2)
出ていくリンクがあっても入るリンクがない
仮定が成り立たない例(3)
リンクの相互関係が一部で閉じていて、他のwebページからの出入りがない
このようなwebページがあるとマルコフ過程の既約性や非周期性が必ずしも
成り立たない。どうする!?
Random Surfer Model を一部修正
n個のハイパーリンクから1個を無作為に選んで進む(確率1/n)
1/n
1/n
1/n
1/n85%
15%全く異なるwebページを無作為に選んでジャンプする!(確率1/N)
一部修正した Random Surfer Model の推移確率行列
P 0 = 0.85P + 0.15
0
B@1/N · · · 1/N
......
1/N · · · 1/N
1
CA
もともとのRandom
Surfer Model
15%の部分
N: 行列の次元
85%の部分
【問題6・レポート課題】
Random Surfer Model(またはその修正)に対する意見や改善のためのアイデアなど
現実世界でのPageRankの計算とwebページ検索に求められる技術
巨大次元の行列の固有ベクトルの計算
実際の推移確率行列の次元
P 0 = 0.85P + 0.15
0
B@1/N · · · 1/N
......
1/N · · · 1/N
1
CA
↵ = ↵P 0
行列の次元 (=N) は全世界に存在するweb
ページの個数に等しくする必要がある
これまでにGoogleが処理したwebページ数(単位:百万)
0100,000200,000300,000400,000500,000600,000700,000800,000900,000
1,000,000
1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008
1000000
100026
これだけの個数のwebページをどうやって集めるか?
実際の推移確率行列の次元
P 0 = 0.85P + 0.15
0
B@1/N · · · 1/N
......
1/N · · · 1/N
1
CA
↵ = ↵P 0
これだけの次元の推移確率行列から定常分布をどのように効率的に計算するか?
Webページの検索技術
検索語の候補となるキーワードの抽出と整理
実用的なインデックス(索引)の構築
高速な検索とPageRankに沿った検索結果の並べ替え
効率的かつ安定なサービス提供のための技術
大量の検索要求に対する負荷分散と応答性の保持
データの分散と共有
障害時のデータ保持と迅速な復旧
地球環境保護と省エネルギー
アイデアの実現にはありとあらゆる知恵が必要
数学が知恵を生み出すための力になる
知恵を生み出す力を身につける:大学で学ぶ意義の1つ
レポート課題
配布資料の最終ページを切り取って提出
Thank you!