85
平成24年度 筑波大学総合科目「数学の美しさと奥深さ」 計算数学の挑戦 —Webページの重要度を定めるPageRankの技術照井 章 (筑波大学 数理物質系 数学域) 20121112

計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

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

Page 1: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

平成24年度 筑波大学総合科目「数学の美しさと奥深さ」

計算数学の挑戦—Webページの重要度を定めるPageRankの技術—

照井 章(筑波大学 数理物質系 数学域)

2012年11月12日

Page 2: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Who is 照井?

http://researchmap.jp/aterui

Page 3: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

配布資料の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

アドレスはここ

Page 4: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

きょうのお題

World Wide Web

Page 5: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Webサーフィンには検索(サイト)が必要不可欠

数学の美しさと奥深さ 検 索

Page 6: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

筑波大学総合科目が上位にヒット

検索結果が約3万件

Page 7: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

大量の検索結果からより重要なwebページを優先的に取り出すにはどうすればよいか?

Page 8: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

PageRank

定量的なwebページの重要度の指標

≤ ≤ ≤ ≤ ≤⋯ ⋯

の話をします!

Page 9: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

数学の美しさと奥深さ

+ 泥臭さ

Page 10: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

アイデア実現のステップ

モデル化 開 発 実 装

Page 11: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

アイデア実現のステップ

モデル化 開 発 実 装

対象を観察し、問題を数学の言葉で表す

Page 12: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

アイデア実現のステップ

開 発 実 装モデル化

モデル化した問題の解法をつくる

Page 13: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

アイデア実現のステップ

計算機のプログラムやシステムを作って動かす

モデル化 開 発 実 装

Page 14: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

今回の話の流れ

モデル化 開 発 実 装

マルコフ過程 線形代数 いろいろ

Page 15: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

マルコフ過程

確率論で扱われる確率過程の一つ

Page 16: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

例:ある地方の明日の天気

今日の天気

毎日、今日の天気からある決まった確率で推移

Page 17: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

今日が晴のとき明日の天気の確率

0%

20%

40%

60%

80%

100%

Page 18: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

今日が曇のとき明日の天気の確率

0%

20%

40%

60%

80%

100%

Page 19: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

今日が雨のとき明日の天気の確率

0%

20%

40%

60%

80%

100%

Page 20: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

時間の推移に伴う日々の天気の確率の推移

今日 明日 あさって

確率過程

Page 21: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

 注 意実際の気象予報は

このように行われているわけではありません!

Page 22: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

今後の仮定(2つ)

Page 23: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

仮定1: マルコフ性

今日 明日

あさって3日前

おととい 昨日

明日の各天気の確率は今日の天気にのみ依存する

「マルコフ過程」

Page 24: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

仮定2: 時間について一様

今日 明日

あさって3日前

おととい 昨日

翌日の各天気に推移する確率は、毎日常に一定

Page 25: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

確率過程を計算しよう

Page 26: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

推移図(有向グラフ)

1/2 �2/5

�1/10

2/5

1/2

1/10

1/5

3/10

1/2

ノード(節) エッジ(辺)

Page 27: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

推移図を表にまとめる

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】表を完成させよう!

Page 28: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

明日の天気明日の天気明日の天気

今日の天気

今日の天気

今日の天気

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】表を完成させよう!

Page 29: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

表から推移確率行列を定義する

明日の天気明日の天気明日の天気

今日の天気

今日の天気

今日の天気

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 を完成させよう!

Page 30: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

確率分布ある時点での「晴」「曇」「雨」それぞれの確率を

順に並べた行ベクトル

(  ,   ,   )

各要素は非負で、それらの総和は1

Page 31: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

例:「今日の天気は晴」の確率分布

⇡(0) =�1 0 0

Page 32: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

明日の天気の確率分布を計算すると

⇡(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

Page 33: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

あさっての天気の確率分布を計算すると

⇡(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

Page 34: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

n日後の天気の確率分布を計算すると

⇡(n) = ⇡(n� 1) P

= ⇡(n� 2) P 2

...= ⇡(0) Pn

Page 35: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

例:水戸における1981年~2010年の30年間の11月12日の天気出現率

⇡(0) =�0.7 0.1 0.2

Page 36: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

⇡(4) = ⇡(0) P 4

=�0.407 0.426 0.168

4日後の天気の確率分布を計算すると

Page 37: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

定常分布

Page 38: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

今日の天気を「晴」と仮定して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

Page 39: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

水戸における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

Page 40: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

どのような確率分布から出発しても日数が十分経つと、同一の確率分布に

落ち着くように見える⇡(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

Page 41: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

実際、ある条件下では同一の確率分布に落ち着く!

定理:既約かつ非周期的なマルコフ過程において、   はある唯一のベクトル  に収束する.

⇡(n) ↵

↵ = ↵P

Pの固有値1に属する固有ベクトル

定常分布

Page 42: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

【問題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

Page 43: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Webページの相互関係を考えよう!

Page 44: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Webページの相互リンク(ハイパーリンク)の例(図2)

2つの仮定

Page 45: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

仮定1:各webページから自分以外のすべてのwebページに到達可能

Page 46: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

仮定2:これらのwebページ以外からのリンクの出入りはない

Page 47: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Webページのリンク関係を有向グラフで考える(図3)

Page 1 Page 2 Page 4

Page 3

Page 5

Page 6

Page 7

ノードエッジ

Page 48: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

天気の推移図との対応関係

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ページ間のリンク

天気が推移する確率 ??? 何を与える?

Page 49: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Random Surfer Model

n個のハイパーリンクから1個を無作為に選んで進む(確率1/n)

1/n

1/n

1/n

1/n

Page 50: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Random Surfer Model による推移図(図4)

Page 51: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Random Surfer Model による確率過程の計算

Page 52: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

確率分布ある時点で “Page 1”, ... , “Page 7” それぞれを閲覧している確率を順に並べた行ベクトル

各要素は非負で、それらの総和は1

(  ,   , ... ,   )

Page 53: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

確率分布がマルコフ過程に従うと仮定し、推移確率行列を求める

【問題4】推移確率行列 P を求めよう!

P =

0

BBBBBBBB@

? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?? ? ? ? ? ? ?

1

CCCCCCCCA

Page 54: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

マルコフ過程の既約性と非周期性を仮定すると、定常分布が求まる

↵ = ↵P

定常分布

(  ,   , ... ,   )

Page 55: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

定常分布から各webページのPageRank を定める

定常分布十分な回数の試行の後

各webページを訪問している確率

各webページを訪問する確率をPageRank と定義する!

(  ,   , ... ,   )

Page 56: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

PageRank の意味(1)

被リンク数がより多いほど

PageRank はより大きい傾向がある

Page 57: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

PageRank の意味(2)PageRank がより大きなwebページからのリンク数が多いほど

PageRank はより大きい傾向がある

Page 58: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

【問題5】PageRankを求めてみよう!

↵ = ↵P

定常分布

(  ,   , ... ,   )

要素の総和を1に規格化することに注意

Page 59: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

現実のwebページの相互関係に即したモデルの修正

Page 60: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

「仮定1:各webページから自分以外のすべてのwebページに到達可能」

「仮定2:これらのwebページ以外からのリンクの出入りはない」

Page 61: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

仮定が成り立たない例(1)

入るリンクがあっても

出ていくリンクがない

Page 62: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

仮定が成り立たない例(2)

出ていくリンクがあっても入るリンクがない

Page 63: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

仮定が成り立たない例(3)

リンクの相互関係が一部で閉じていて、他のwebページからの出入りがない

Page 64: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

このようなwebページがあるとマルコフ過程の既約性や非周期性が必ずしも

成り立たない。どうする!?

Page 65: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Random Surfer Model を一部修正

n個のハイパーリンクから1個を無作為に選んで進む(確率1/n)

1/n

1/n

1/n

1/n85%

15%全く異なるwebページを無作為に選んでジャンプする!(確率1/N)

Page 66: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

一部修正した 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%の部分

Page 67: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

【問題6・レポート課題】

Random Surfer Model(またはその修正)に対する意見や改善のためのアイデアなど

Page 68: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

現実世界でのPageRankの計算とwebページ検索に求められる技術

Page 69: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

巨大次元の行列の固有ベクトルの計算

Page 70: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

実際の推移確率行列の次元

P 0 = 0.85P + 0.15

0

B@1/N · · · 1/N

......

1/N · · · 1/N

1

CA

↵ = ↵P 0

行列の次元 (=N) は全世界に存在するweb

ページの個数に等しくする必要がある

Page 71: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

これまでに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ページをどうやって集めるか?

Page 72: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

実際の推移確率行列の次元

P 0 = 0.85P + 0.15

0

B@1/N · · · 1/N

......

1/N · · · 1/N

1

CA

↵ = ↵P 0

これだけの次元の推移確率行列から定常分布をどのように効率的に計算するか?

Page 73: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

Webページの検索技術

Page 74: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

検索語の候補となるキーワードの抽出と整理

Page 75: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

実用的なインデックス(索引)の構築

Page 76: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

高速な検索とPageRankに沿った検索結果の並べ替え

Page 77: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

効率的かつ安定なサービス提供のための技術

Page 78: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

大量の検索要求に対する負荷分散と応答性の保持

Page 79: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

データの分散と共有

Page 80: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

障害時のデータ保持と迅速な復旧

Page 81: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

地球環境保護と省エネルギー

Page 82: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

アイデアの実現にはありとあらゆる知恵が必要

Page 83: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

数学が知恵を生み出すための力になる

Page 84: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

知恵を生み出す力を身につける:大学で学ぶ意義の1つ

Page 85: 計算数学の挑戦 – Webページの重要度を定めるPageRankの技術 –(2012年11月12日)

レポート課題

配布資料の最終ページを切り取って提出

Thank you!