• 沒有找到結果。

第三讲 矩阵特征值计算

N/A
N/A
Protected

Academic year: 2021

Share "第三讲 矩阵特征值计算"

Copied!
30
0
0

加載中.... (立即查看全文)

全文

(1)

第三讲

矩阵特征值计算

—— 应用: Google 网页排

(2)

2

网站排名是网络搜索引擎的核心

本讲主要介绍 PageRank 算法的基本思想与模 型,以及如何使用该算法对网站进行排名

PageRank

PageRank 是著名网络搜索引擎 Google 用于评测一个网页

“重要性” 或 “影响力” 的一种方法。通过该方法, Google 将 各个网站进行排名。用户进行相关搜索时, Google 会将符 合条件的网站按排名顺序输出。

PageRank 算法中使用的数学知识包括:正矩阵性质、特征

值和特征向量、幂迭代算法、 Gauss-Seidel 迭代算法等

PageRank 得分越大表示网页越重要。

(3)

有 向 图

(4)

4

有向图的定义、相关术语和部分性质

例:右图为一个有向图,记为 D 其顶点组成的集合记为

V(D) = { u, v, w}

边组成的集合记为

A(D) = {(u,w), (w,u), (u,v)}

有向图介绍

有向图是指由有限个元素的非空集合和它的不同元素构成的 有序数对组成的结构。

注: (u,w) (w,u) 表示不同的边。

图的基本元素:顶点(节点)和边(线、弧、枝)

(5)

有向图 D 的顶点集的基数称为 D 的阶,记作 p(D)

边组成的集合的基数称为 D 的大小,记作 q(D)

顶点 v 的出度 (out-degree) 是指从 v 邻接的顶点的个 数,或以 v 为起点的边的条数,记作 od(v)

顶点 v 的入度 (in-degree) 是指 D 中邻接到 v 的顶点的个 数,或以 v 为终点的边的条数,记作 id(v)

有向图相关术语

(6)

6

例:右下图为一个有向图,记为 D ,则 p(D)=3

D 的阶 :

D 的大小 :

顶点 u 的出度 :

顶点 u 的入度 :

顶点 v 的出度 :

顶点 v 的入度 :

q(D)=3

od(u)=2 id(u)=1 od(v)=0

id(v)=1

有向图举例

(7)

p(D)=6 , q(D)=9

序号 顶点 入度 出度

1 alpha 2 1

2 beta 1 2

3 gamma 1 3

4 delta 2 1

5 rho 1 1

6 sigma 2 1

例:左图中

有向图举例

(8)

8

为研究需要,我们定义邻接矩阵

例:对于右边的有向图,其邻接矩阵为

邻接矩阵

(9)

性质一:定义行和 和列和 ,则第 i 行的行和 ri 就是第 i 个顶点的入度,第 j 列的列和 nj 就是第 j 个顶点的出度。

性质二: = 边的个数

邻接矩阵的性质

行和 入度,列和 出度

i ij

j

r g j ij

i

n g

i j ( )

i j

r n q D

 

(10)

10

PageRank

数学模型

(11)

Google PageRank 是基于这样一个理论:

若 B 网页上有连接到 A 网站的链接 ( 称 B 为 A 的导入链 接 ) ,说明 B 认为 A 有链接价值,是一个“重要”的网站,此 时 A 网站可从 B 网站分得一定的级别 ( 重要性 ) 。

同时 A 的级别将平均分配给 A 网站上的所有导出链接。

导入链接:链接到你网站的站点,即“外部链接”;

导出链接:网站上指向另外一个站点的链接。

在 PageRank 模型中,一个网站的级别(重要性)大致由下 面两个因素决定:导入链接的数量和导入链接的级别(重要

PageRank 的决定因素

(12)

12

如果我们将下面的有向图中的每个顶点看成一个网站,并把每 条边看成是网站间的 “超链接”,则此有向图就代表一个小型的 网络,其中有 6 个网站和 9 个超链接。

例:这 6 个网站中哪个最重要

重要性的决定因素:

导入链接的数量

导入链接的重要性 看谁的导入链接多?

不太合理

哪个网页最重要

(13)

u 是某个网页,其级别(重要性)为 r(u) ,记 Fu u 的导出链接的集合, Bu u 的导入链接的集合, nu = |Fu | 即是 u 的导出链接总数。

v u 的一个导入链接,根据 PageRank 理论, u v 处分得的级别(重要性)为 r(v)/nv 。将 u 从所有导入链接 处分得的重要性相加,即为网页 u 的最终级别

简化的 PageRank 算法

( ) ( )

v B v

r u r v

n

(14)

14

设共有 m 个网页,分别编号为 1 2 3 、 ... 、 m ,它们的级别

(重要性)分别记为 r1 r2 r3 、 ... 、 rm G 表示由这些网页组

成的有向图的邻接矩阵。根据有向图理论:

G 中第 j 列的列和

矩阵形

简化的 PageRank 模型

其中

( ) ( )

v Bu v

r u r v

n

1

m ij

i j

j j

r g r

n

r G r m r ( , , , )r r1 2 rm T { / }

m ij j

G g n

(15)

易知 r Gm 的对应于特征值为 1 的特征向量

矩阵 Gm 一定有特征值 1 吗?即上面的方程是否有 解?

如果 ,则 r1 = r2 ,此时就无法进行排名

因此,我们需要对简化的 PageRank 进行改 进!

简化 PageRank 的问题

0 1 G 1 0

 

r G r m

(16)

16

(u) 是网页 u 的所获得的基本级别,则

改进的 PageRank

基本思想:首先给每个网页设置一个基本级别

其中: x(u) 表示网页 u 的最终级别

p 是一个加权系数,通常取 0.85 左右

(u)= (1 – p )/m

( ) ( ) ( )

v Bu v

x u p x v u

n

(17)

矩阵 形

与前面的讨论相类似,将所有网页进行编号:

1 2 ... m

改进的 PageRank

于是可以把右式改写为:

x  p G   xe x ( , , ,x x1 2 xn)T

1

n ij

i j

j j

x p g x

n

(i 1, 2,, m)

( ) ( ) ( )

v Bu v

x u p x v u

n

(18)

18

改进的 PageRank

其中:

x  p Gm   xe

{ / }

m ij j

G g n Gm  G D

diag

1 2

1 1 1

( ij ),

m

G g D , , ,

n n n

x      p G D x

e

(19)

规定:

x A 的对应于特

改进的 PageRank

x      p G D x e 1 1

n i i

x

1 p G D x e

      

p G D x e e xT

      

p G D e eT

x

     1

1

n T

i i

x e x

x A x  

A p G D     eeT

(20)

20

改进的 PageRank

矩阵 A 的两个重要性质:

(1) A>0 ,即所有元素都是正数

(2) A 的各列的列和等于 1 = (1 – p )/m

11 12 1

1 2

21 22 2

1 2

1 2

1 2

m m

m m

m m mm

m

g

g g

p p p

n n n

g

g g

p p p

n n n

A

g g g

m m

p p p

n n n

 

j ij

i

n g

(21)

若矩阵 G 中存在 0 列,即存在 j 使得对所有的 i gij = 0 ,则将导致 nj = 0 , 此时规定:

改进的 PageRank

( 1, , , )

1 2

gij i m



1

11 12

1 2

2

21 22

1 2

1 2

1 2

m m

m m

m m mm

m

g g g

n n n

g

g g

n n n

A p

g g g

n n n

 

(22)

22

问:上述方程组的解是否存在?

答:上述方程组存在唯一的解!(且均为正数)

理由: Perron-Frobnius 定理(证明略)

x 满足:

改进的 PageRank

x A x  

1

1

n

i i

x

(23)

A 的谱半径

A 的各列的列和等于 1

= 1 A 的特征值

事实上,我们有结论: = 1 是 A 的惟一的模最大特征

问: = 1 A 的特征值吗?

T T

e  A e

( ) 0

e IT A

| I A | 0

(24)

24

序号 顶点 入度 出度

1 alpha 2 1

2 beta 1 2

3 gamma 1 3

4 delta 2 1

5 rho 1 1

6 sigma 2 1

例:用改进的 PageRank 算法计算下面的小型网络中各网 页的排名,其中取 p=0.85

网页排名举例

(25)

clear; % Eig11.m

p = 0.85; % 此处 p 也可以取其它数值

G = [0 0 0 1 0 1; 1 0 0 0 0 0; 0 1 0 0 0 0; ...

0 1 1 0 0 0; 0 0 1 0 0 0; 0 0 1 0 1 0];

n = size(G,1);

sn = sum(G); % 提取每列的列和 D = diag(1./sn); % 生成对角矩阵 delta = (1-p)/n;

A = p*G*D + delta;

[v,d] = eig(A); % 计算 A 的特征值与特征向量 r = v(:,idx); % 最大特征值所对应的特征向量 r = r./sum(r); % 归一化

[x,index] = sort(r,'descend'); % 排序

网页排名举例

(26)

26

数值算法

(27)

幂法

当矩阵 A 的阶数很大时,无法直接计算其特征值和特征向 量,此时需要使用迭代算法。

x = A x x 满足:

幂法

1) 输入矩阵 A 和初始向量 v0 > 0 ,以及精度 tol

2) 计算:

3) 如果 |vk+1 - vk |< tol 则令 x = vk+1 并停机 ,

1

1

n i i

x

1

1 1

1

, sum( )

k

k k k

k

u Av v u

u

(28)

28

例:采用幂迭代法计算下面各网页的排名,其中 p=0.85

幂法举例

(29)

clear; % Eig12.m

tol = 1e-4; p = 0.85;

G = [ 0 0 0 1 0 1; 1 0 0 0 0 0; 0 1 0 0 0 0;

0 1 1 0 0 0; 0 0 1 0 0 0; 0 0 1 0 1 0 ];

n = size(G,1);

sn = sum(G,1); D = diag(1./sn);

delta = (1-p)/n;

A = p*G*D + delta;

x = ones(n,1)/n; % 迭代初始向量 z = zeros(n,1);

k = 0; % 记录迭步数

while max(abs(x-z)) > tol % 幂法 z = x;

x = A*x;

k = k+1;

幂法举例

(30)

30

在前面给出的程序中,如果矩阵 G 中存在某一列的列和 为零,怎么办?

一个修改后的 Matlab 程序( Eig13.m

另一个解决方案见 Eig14.m ,它充分利用稀疏矩阵的性 质,当矩阵规模较大时,能大大减少运算量。

一个问题

此时规定:

( 1, , , )

1 2

ij j

g i m

n m





參考文獻

相關文件

某项货物的单位价格是指该项货物的贸易货值与其货量之比。季度单位价格指数是计算当季各

某项货物的单位价格是指该项货物的贸易货值与其货量之比。季度单位价格指数是计算当季各

某项货物的单位价格是指该项货物的贸易货值与其货量之比。季度单位价格指数是计算当季

對於每一個重數為 的特徵值,求一組有k個線性.

 lower triangular matrix: 下三角矩陣.  upper triangular matrix:

復為落實政府醫療政策,共享醫療資源,結合健保制度改革,本 基金依據 99 年 7 月 14 日行政院院臺榮字第 0990039235

復為落實政府醫療政策,共享醫療資源,結合健保制度改革,本 基金依據 99 年 7 月 14 日行政院院臺榮字第 0990039235

样条插值的算例 三次样条的概念.