• 検索結果がありません。

大規模データを対象とした分析処理の高速化に関する取り組み Papers & Presentations Onizuka Laboratory

N/A
N/A
Protected

Academic year: 2018

シェア "大規模データを対象とした分析処理の高速化に関する取り組み Papers & Presentations Onizuka Laboratory"

Copied!
89
0
0

読み込み中.... (全文を見る)

全文

(1)

大規模 対象 た 析処理

高速化 関 取 組

鬼塚 真

主幹研究員(特別研究員)

NTTソ ン ン

(2)

自己紹

所属

NTT ソ ン ン 主幹研究員 特別研究員

群馬県出身,ワ ン ン大(911 時)

過去 研究開発

DBMS 研究開発

XML 処理/DBMS 高速化

CBoC type2 散 開発

現在 研究

MapReduce 高速化

機械学習 高速化 ( ン , ン 等)

画像検索 ン検索

番組通知

配信

検索

(3)

管理情報区分:B 関係者限り

分散処理による大規模デ タ分析の背景 狙い

大規模 高速 処理 析 短期間 開

発 技術 確立

情報爆発 言わ 時代 迎え、情報処理

大規模 処理 対 高 い

NTT 各社 い 、各種 情報 大量

活用 う 動 進 い

背景

狙い

(4)

管理情報区分:B 関係者限り

分散処理による大規模デ タ分析の概要

技術目標:

単一 ン向 析 (機械学習 統計処理)

適 散処理 出

技術課題

1. 抽象言語 散 出 最適化 NII 胡教授

2. 散処理 高速処理

統計処理 集約処理,結合処理 高速化

機械学習( ン 推薦) 高速化

3. 最新 利用 た高速化 省電力 東 大横田教授

select m.source, m.dest, m.count, c.rank

from (select n.dest, sum(n.rank/n.count) as rank

from Graph as n

group by n.dest) as c,Graph as m 最適化

高速 散処理

実行計画

(5)

大規模

析処理 高速化 取 組

MapReduce 高速化 (HW2011)

Map Multi-Reduce: reduce 事前実行

PJoin: 事前 準結合 利用

機械学習 高速化

K-dash: Random Walk with Restart 高速

top-k 検索 (PVLDB2012)

ン 高速化

(6)

大規模 析

大規模 MapReduce高速化 機械学習高速化

(7)

大規模 析 適用例

n-gram/

: web ン ン /SNS

目的: 頻出 学習

用途: 音声認識,日英翻訳

歴 用いた ソ

: web 視聴

目的: RWR, 学習

用途: 検索

解析

40Gbps

serve as the incoming 92

serve as the incubator 99

serve as the independent 794

4-gram

大規模 MapReduce高速化 機械学習高速化

(8)

MapReduce 高速化

大規模 MapReduce高速化 機械学習高速化

(9)

MapReduce ?

散処理 ン &

高 性: 1万 ( ン),

ン API: map関数/reduce関数

散処理特有 複雑さ(負荷 散 用性) 隠 い

Google 開発

web 検索 ン ン 用途 た 開発

PageRank 計算,転置 構築

2008年時点 20PB/day MapReduce 処理

[Dean et al., OSDI 2004, CACM Jan 2008, CACM Jan 2010]

大規模 MapReduce高速化 機械学習高速化

(10)

MapReduce

MapReduce: 散処理

DFS 構築

DFS: GFS (Google FS), HDFS (Hadoop DFS)

2 + Shuffle

Map : 入力 毎 map関数 実行

ン : ン毎 独立 た処理

Shuffle: 同一key (key, value) 群 束

Reduce : た結 reduce 関数 実行

ン : 複数 ン た 必要 処理

大規模 MapReduce高速化 機械学習高速化

(11)

MapReduce (続 )

User

Program

Input Data

Split 1

Split 0

Split 2

Split 3

fork fork

fork

assign

map

assign

reduce

Output

File 0

Output

File 1

node

process

file

worker

Master

worker

worker

worker

worker

worker

Map

Map Map task Reduce Reduce task

shuffle

大規模 MapReduce高速化 機械学習高速化

(12)

例: wordCount

入力文書毎 map関数 適用

単語毎 (word, 1) 出力

単語毎 頻度 積算

大規模 MapReduce高速化 機械学習高速化

(13)

MapReduce 設計思想

以 要素

関数型言語

• map (f) [r1,...,rn] = [f(r1),...., f(rn)]

• reduce (⊕) [r1,...,rn] = r1 ⊕ .... ⊕ rn

散環境 適用

• map: ン内 処理,reduce: ン間 処理

• 論理 ン = 物理

• (key, value) + partition 関数 処理

処理 散特有 処理 隠

間通信 (高速 )

MapReduce 高速化 研究動向 高速化 取 組 研究 方向性

(14)

MapReduce: ン 実施例

MapReduce

Local Aggregation

Pairs and Stripes

Computing Relative Frequencies

Secondary Sorting

Relational Joins

MapReduce 利用例

転置 ン

(幅優先探索 )

EM

大規模 MapReduce高速化 機械学習高速化

(15)

MapReduce 高速化 取 組

1. Map Multi-Reduce:

MapReduce extended with reduce pushdown

大規模 MapReduce高速化 機械学習高速化

(16)

Motivation

Performance problems in MapReduce [DeWitt, 2009]

no schema, no index, ignoring data skew,

communication cost, materialization cost

In particular materialization/communication costs

(17)

Overview of Map Multi-Reduce

Idea:

Pushing down reduce function and iteratively

applying it so as to reduce intermediate data.

Efficiency:

2.4 times more efficient than original MR in real

dataset

Limitations and opportunities

• reduce function needs to be associative and commutative

 : summation, count sum(2,3,1) = sum(sum(2,3),1)

 : average avg(2,3,1) != avg(avg(2,3),1)

(18)

BTW, what is the pushdown?

A well-know technique in DBMS

pushdown reduces intermediate data size,

while ensuring the correctness of query result

Usually effective for single query optimization

SELECT person.name, dept.name

FROM dept, person

WHERE person.age > 20

AND person,deptid = dept.id

Query

person

join

selection

projection

dept person

join

selection

projection

(19)

Technique 1: incremental reduce

hashmap<key, value> is used for record structure

reduce function is applied before buffering at map task

Split N Map

function MapOutputBuffer sort&spill Spill files mergeParts Output file

Original MapReduce

(20)

User

Program

worker

worker

Input Data

fork fork

fork

Master

worker

assign

map

assign

reduce

Output

File 0

Output

Split 1

Split 0

Split 2

Split 3

worker

worker

worker

assign

local reduce

Technique 2: Local reduce

node

process

file

local reduce task applies the reduce function

to the map outputs of the same node

Master also controls local reduce tasks

Local Reduce

Local Reduce Local reduce task

(21)

Experiments

Hardware/software settings

Linux (CentOS5.4, 2.8GHz, main memory 8GB)×90 nodes

Java1.6, Hadoop 0.19.2

Workload

Datasets:

Trec terabyte dataset

0.5TB, # of unique terms 86,500k, 678 terms/input record

synthetic datasets (with uniform term distribution)

0.5-7TB, # of unique terms 100-400k, 62 terms/input record

Analysis pattern: wordCount

Purpose

Comparison: Map Multi-reduce variations vs MapReduce

IO reduction effect by record/local reduce

(22)

Response times (Trec terabyte)

response time is improved by 58%, 2.4 times faster.

effect of local reduce

with record & local reduces, performance of map phase is

improved, however 6% gets worse as a whole caused by

local reduce overhead.

52% 58% With record reduce

Without local reduce

with record reduce &

local reduce

(23)

Effect by record reduce (Trec terabyte)

Size of data put into buffer is reduced to 1/30

Size of spill files reduces to 1/3 (63% reduction)

Performance improved mostly by IO cost reduction

1/30

1/12

Map function

Reduce function

Record reduce

Split N MapOutputBuffer sort&spill Spill files mergeParts Output file

Reduce function is applied incrementally

67% 63%

(24)

Related work

Local aggregation

combiner: does not reduce the data put into the buffer

in-mapper combining design pattern [Lin et al., 2010]

complicates the mapper and may run out of memory.

Split N Map

function MapOutputBuffer

sort&

combine&

spill

Spill files

mergeParts

(combine)

Output file

(25)

Summary of Map Multi-Reduce

Idea:

Pushing down reduce function and iteratively

applying it so as to reduce intermediate data.

Efficiency:

2.4 times more efficient wordCount than original

MR in Trec terabyte

1.9 times than original MR in web N-gram

On going work:

Extend Map Multi-reduce to support semantic

compression on keys (stripes design pattern)

(26)

MapReduce 高速化 取 組

2. PJoin:

Efficient join processing with MapReduce

for OLAP applications

大規模 MapReduce高速化 機械学習高速化

(27)

技術 概要

PJoin (pre-partition-based join)

[到達点] 多 元 析(OLAP)処理 い ,

量 1/3 削減 処理時間 ,従

来技術 42.8% 高速化

[ 戦略] 複数 析処理 い 共通

処理 前 実行(事前処理) , 析処

理時 削減

(28)

背景: 多 元 析(OLAP) ?

統計的 析処理 典型的 手法

歴 ン ン 格納 fact (大)

fact 多角的 元 集約演算 実施 た

,複数 dimension

PARTKEY

NAME

MFGR

BRAND

TYPE

SIZE

CONTAINER

COMMENT RETAILPRICE

PARTKEY

SUPPKEY

AVAILQTY SUPPLYCOST

COMMENT

SUPPKEY

NAME ADDRESS

NATIONKEY PHONE

ACCTBAL COMMENT

ORDERKEY

PARTKEY

SUPPKEY

LINENUMBER

RETURNFLAG

LINESTATUS

SHIPDATE

COMMITDATE

RECEIPTDATE

SHIPINSTRUCT SHIPMODE

COMMENT

CUSTKEY

ORDERSTATUS

TOTALPRICE ORDERDATE ORDER- PRIORITY

SHIP- PRIORITY CLERK

COMMENT CUSTKEY

NAME ADDRESS

PHONE

ACCTBAL MKTSEGMENT

COMMENT PART (P_)

SF*200,000

PARTSUPP (PS_) SF*800,000

LINEITEM (L_) SF*6,000,000

ORDERS (O_) SF*1,500,000

CUSTOMER (C_) SF*150,000

SUPPLIER (S_) SF*10,000

ORDERKEY

NATIONKEY

EXTENDEDPRICE

DISCOUNT

TAX QUANTITY

NATIONKEY NATION (N_)

25

REGION (R_) 5

集約演算

結合処理

(29)

結合 方法:

量 起因 通信 IO

通信 IO 削減 最重要課題

背景: 従来 MapReduce 結合処理 課題

orders 1

hash(x)

mapper

lineitem n

lineitem 1

Join

reducer

hash(x)

Join

hash(y)

製品単

伝票

(30)

[方針] 結合処理時 量 削減

[前提] OLAP ,更新 参照処理 性能 重要

1対多 関係 結合処理

[戦略]

複数 析処理 共通的 処理

事前処理 , 析処理時 削減

• 結合条件(主キ ) 事前

• 準結合 活用 + 中間 事前生成

複数MapReduce 間 量 削減 結合計画

[効 ]

析処理時 量 削減

PJoin 概要

(31)

BTW, what is the semi-join?

A well-know technique in distributed DBMS

Natural join ( ڇ)

(32)

BTW, what is the semi-join?

A well-know technique in distributed DBMS

Natural join ( ڇ)

(33)

BTW, what is the semi-join?

A well-know technique in distributed DBMS

Natural join ( ڇ)

(34)

BTW, what is the semi-join?

A well-know technique in distributed DBMS

Semijoin ( ڈ)(ډ)

Natural join ( ڇ)

(35)

BTW, what is the semi-join?

A well-know technique in distributed DBMS

Semijoin ( ڈ)(ډ)

Natural join ( ڇ)

(36)

BTW, what is the semi-join?

A well-know technique in distributed DBMS

Semijoin ( ڈ)(ډ)

Natural join ( ڇ)

(37)

BTW, what is the semi-join?

A well-know technique in distributed DBMS

Semijoin ( ڈ)(ډ)

Natural join ( ڇ)

(38)

BTW, what is the semi-join?

A well-know technique in distributed DBMS

Semijoin ( ڈ)(ډ)

Natural join ( ڇ)

(39)

BTW, what is the semi-join? (cont.)

A well-know technique in distributed DBMS

semi-join is used before the original join, so as to

reduce communication cost between DB severs

Employee ڇ Dep

(40)

BTW, what is the semi-join? (cont.)

A well-know technique in distributed DBMS

semi-join is used before the original join, so as to

reduce communication cost between DB severs

(Employee ڈ Dept ) ڇ Dept

Employee ڇ Dep

(41)

BTW, what is the semi-join? (cont.)

A well-know technique in distributed DBMS

semi-join is used before the original join, so as to

reduce communication cost between DB severs

(Employee ڈ Dept ) ڇ Dept

Employee ڇ Dep

(42)

[方針] 結合処理時 量 削減

[前提] OLAP ,更新 参照処理 性能 重要

1対多 関係 結合処理

[戦略]

複数 析処理 共通的 処理

事前処理 , 析処理時 削減

• 結合条件(主キ ) 事前

• 準結合 活用 + 中間 事前生成

複数MapReduce 間 量 削減 結合計画

[効 ]

析処理時 量 削減

PJoin 概要

(43)

PJoin 特徴 : 量削減

事前 実行

lineitem

orders

hash(x)

hash(y)

lineitem b

lineitem a

lineitem z

orders 1

DFS read

shuffle

製品単

(44)

PJoin 特徴 : 量削減

事前 実行,準結合中間 事前生成

lineitem

orders

hash(x)

hash(y)

lineitem b

lineitem a

lineitem z

orders 1

lineitem_

orders 1

hash(y)

lineitem primary key &

foreign key (orders primary key)

DFS read

shuffle

製品単

(45)

PJoin 特徴 : 量削減

lineitem a

orders processing

+

準結合

mapper

lineitem_

orders n

lineitem_

orders 1

orders 1

orders processing

+

準結合

Joining with

liteitem

reducer

Joining with

liteitem

事前 実行,準結合中間 事前生成

mapper 準結合処理後 ,reducer 残処理 実行

lineitem

orders

hash(x)

hash(y)

lineitem b

lineitem a

lineitem z

orders 1

lineitem_

orders 1

hash(y)

lineitem primary key &

foreign key (orders primary key)

DFS read

shuffle

製品単

(46)

従来手法 PJoin 比較

lineitem a

orders processing

+

準結合

mapper

lineitem_

orders n

lineitem_

orders 1

orders 1

orders processing

+

準結合

Joining with

liteitem

reducer

Joining with

liteitem

削減

削減

DFS read

shuffle

orders 1

hash(x)

mapper

lineitem z

lineitem a

Join

reducer

hash(x)

Join

Join

hash(y)

DFS read 増加

(47)

PJoin 特徴 : N 結合

PJoin

型 キ 場合

複数 mapper 実行

全 mapper 結 S 主キ

reducer 処理

mapper (T 主キ 結合処理) reducer (S 主キ 結合処理)

T

one many

S

T 1

one many

S

T N

one

many

T 主キ 結合処理

製品単

伝票 売

製品単

伝票 売

売店

(48)

PJoin 特徴 : 結合計画

型 キ

dimension 処理 開始 ,fact

後 実行 ,中間 削減

lineitem

orders

partsupp part

supplier

*

*

* *

*

lineitem,

orders,

$J2

partsupp,

part,

$J1

supplier,

nation

J1

J2

J3

J1

J2

J3 fact 結合 最後 実行

(49)

評価実験

評価環境

Linux (CentOS5.4, 2.8GHz, 主記憶 8GB)×50

Java1.6, Hadoop 0.19.2

: TPC-H

[ ] 104GB, 207GB, 311GB

準結合中間 : 83GB, 167GB, 250GB

[ ] TPC-H 結合演算 利用 17

評価観点: PJoin 従来 Join 手法 比較

• 全体: PJoin ,従来 2 Join 手法 応答性能比較

• PJoin vs reduce-side join ( 型結合計画, Hive 計画)

• 詳細

• PJoin 量,HDFS read/write 量 影響

(50)

応答時間 (104GB, 50 )

従来手法 33.4% (star plan比), 42.8% (Hive plan比)

改善 : MapReduce job 数削減 ,HDFS+ 量削減

性能 = (HDFS r/w) + 0.5×(local r) + (local w) + 1.5×(shuffle)

1

2

3

4

5

6

respo nse tim e (m in)

PJoin

reduce-side join (star plan)

reduce-side join (Hive plan)

(51)

(104GB, 50 )

従来手法 62.6% (star plan), 62.2% (Hive plan)改善

Q18 悪化: WHERE条件 選択効 原因

5

10

15

20

25

30

35

40

45

Shuff le (G B)

PJoin

reduce-side join (star plan)

reduce-side join (Hive plan)

(52)

HDFS read量 (104GB, 50 )

従来手法 51.4% (star plan), 52.2 % (Hive plan)増加

PJoin 準結合中間 参照

10

20

30

40

50

60

H DFS Rea d (G B)

PJoin

reduce-side join (star plan)

reduce-side join (Hive plan)

(53)

PJoin

特徴:

処理 事前実行(pre-partitioning),準結

合中間 事前生成

準 結 合 mapper 実 行 , 残 結 合 処 理

reducer 実行

:

TPC-H い 30-40%応答性能 改善

1/3 削減

後 取 組 :

更新 対 更新

(54)

機械学習 高速化

大規模 MapReduce高速化 機械学習高速化

(55)

機械学習 高速化

1. K-dash: Random Walk with Restart

高速 top-k 検索

大規模 MapReduce高速化 機械学習高速化

(56)

D3-1

• Random Walk with Restart (RWR)

類似度 計算方法

– 起点 繰 返 た定常状態

確率 類似度

• 本研究 目的

0.15

0.16

0.54

0.07

0.03

0.03

0.01

0.01

処理手順

以 処理 定常状態 得 繰 返

対象 起点

隣接 ン

一定確率 .そう ば

(57)

D3-1

応用例

人 た 購買 作成

– 推薦対象者 RWR 類似度 計算

– 類似度 高い 推薦

– 協調 既存技術 高精度 拡張性 高い

推薦 購入済

(58)

D3-1

類似度 計算

• 類似度 行列 繰返 計算 定義さ

A

p

q

c

 

 

p ( 1 c )

 

 

A

 

 

p c

 

 

q

:類似度 対応 列

隣接行列

:起点 戻 確率

:対象 対応 成 ,そ 他 列

 

 

p

 

 

p

 

 

p

高い計算

1. 類似度 収束 繰返 計算 必要

K

(59)

D3-1

提案手法 概要

1. 行列 計算 繰 返 計算不要

– 隣接行列 疎 角行列 角行列 解 ,

類似度 計算

• 疎行列 用い高速 類似度 計算

• 特定 類似度 正確 計算

2. 類似度 限値 計算 探索範囲 足

– 類似度 計算 類似度 限値 推定

限値 類似度 計算

 1

L U 1

q

L

cU

p 1 1

類似度

計算 必要 あ

K

(60)

D3-1

行列 解:類似度 計算

• LU 解 用い 類似度 計算

– 逆行列 計算 特定 類似度 正確 計算

行列 わち行列 疎 あ 逆行

列 , 必 疎

行列 密 場合,類似度 高速 計算

 c

 

 

U 1

 

 

q

 

 

p

 

 

L 1

I

:単 行列, LUWI  ( 1  c ) A

A

 1

1 U

L

W

(61)

D3-1

行列 解:基本的 考え方

• , 成 / 計算

• , 成 対応 計算

わち / ば逆行列

 1

1 U

LL U

U

L W

A

 

 

j i

k ik kj

ij ij ij

j

i

L

L

L

j

i

L

j

i

L

1

1 1

)

(

/

1

)

(

/

1

)

(

0

 

 

1

L

ij

 

 

L

ij

 

 

 

( )

/

1

)

(

1

)

(

0

1

1

L U i j

W

U

j

i

j

i

L

j

k ik kj

ij jj ij

 

 

L

ij

 

 

W

ij

(62)

D3-1

行列 解:疎行列 計算方法

• 疎行列 隣接行列 /

素 0 ば い

• 疎行列 得 た 手法 考案

1. 複数 割 並 替え

2. 最後 移動

3. 各 さい順 並 替え

 1

1 L

UA



 

 



 

 



 

 



 

 



 

 



 

 

(63)

D3-1

類似度 推定

• 類似度 限値 推定 検索 打ち

• 類似度 限値 推定



 



 

 

 

 

( 1) ( )

max max

max

( ) ( ) 1

u u s

l V

v v V l v V

v v

v

u

c p A v p A v p A

p

類似度 伝搬 最大値

類似度 伝

搬量 最大値

類似度 伝 搬量 最大値

類似度 推定値

:類似度 計算済 集合

幅優先木 番号

: 番号 類似度 計算済 集合

: 重 最大値

: 重 最大値

p

u

V

s

)

( l

u

V

l

u

)

max

( v

A

A

max

u

u

l

u

v

(64)

D3-1

評価実験:実験条件

• 実験

– 4 3.3 GHz Intel Xeon 32GB

• 実験 – 辞書

ン辞書 FOLDOC

• あ 単語 説明 そ 他 単語 用い ,そ 単語間

• Oregon Route Views Project

– 共著

• Condensed Matter E-Print Archive 投稿さ た論文 共著関係

• 比較手法

– Tong 提案さ た近似手法*

(65)

D3-1

評価実験:検索時間 精度

• 検索時間 検索精度 い 実験

– 提案手法 従来手法 数万倍 高速化 達成

– 提案手法 従来手法 異 検索結 正確

0.00001 0.0001 0.001 0.01 0.1 1

処理時間[s]

提案手法 K=5 提案手法 K= 5

提案手法 K=5 従来手法 特異値

従来手法 特異値

0.2 0.4 0.6 0.8 1 1.2

検索精度

提案手法

従来手法 特異値

従来手法 特異値

(66)

D3-1

評価実験:

• 辞書 用いた類似語 検索結

– 提案手法 検索結 良好

– 従来手法 近似精度 く, K 検索 適さ い

1 2 3 4 5

提案手法 Microsoft Windows W2K Windows/386 Windows 3.0 Windows 3.11 従来手法 Microsoft Windows Microsoft Networking Microsoft Network W2K Thumb

提案手法 Mac OS Macintosh user interface

Macintosh file

system multitasking Macintosh Operating System

従来手法 Mac OS Rhapsody SORCERER Macintosh Operating

System

PowerOpen Association 提案手法 Linux Linux Documentation

Project Unix lint

Linux Network

Administrators' Guide 従来手法 Linux Linux Documentation

Project SL5 debianize SLANG

ンキン

Microsoft Windows

Mac OS

Linux

検索語 手法

(67)

D3-1

• 問題設定

– 大規模 ,RWR 基 対象 類似

個 高速 正確 検索

• 提案手法

– 行列 解

• 特定 類似度 高速 正確 計算

– 類似度 推定

• 類似度 計算 類似度 限値 推定

• 実験結

– 正確 検索結 保証 ,従来手法 数万倍 高速

化 達成

K

(68)

機械学習 高速化

2. 高速化

大規模 MapReduce高速化 機械学習高速化

(69)

発表 流

1. 研究 背景

2. 既存手法:Louvain法

3. 提案手法

4. 評価実験

5. め 今後 課題

(70)

背景: フ ー

フ ー 大規模化

– Ex) Facebook 2011 ーザ数 5億人,総

会員数 8億人を突破

フ ー ン 技術

ー 中 ー を一定 尺度 自動分類

密 あ , 疎 あ

ン 結果ほ 良い

良い ン 結果

1 2

悪い ン 結果

1 2 3

(71)

ン 結果 評価尺度

ン 指標:Modularity Q [Girvan ら, Phys.Rev.2004]

内 密, 間 疎 あ 程良い値を示

1 2 1 2

(72)

Modularity ン 手法

処理可能

フ 規模

1 万 ー

数百万 ー

数千万~

1 億 ー

Girvan-Newman [ Girvan ら, Phys.Rev.2004 ]

Newman [ Newman, Phys.Rev.2004 ]

CNM [ Clauset ら, Phys.Rev.2004 ]WT [Wakita , WWW2008]

ッ ン 存在 う ッ を削除 手法

貪欲法 ボ ム ッ Modularity を向上させ 手法

ー 導入や ー Newman 法 高速化

ロー ( フ全体) Modularity最適化アプロー

Louvain [ Blondel ら, IOP and SISSA Journal 2008 ]

隣接 ー 同士 Modularity 最適化を行う手法

ローカ (部分 フ) Modularity最適化アプロー

現在,最速 つ高いModularityを示 手法

<Louvain法を用いた近年 研究傾向>

(73)

本研究 目的 貢献

本研究 目的

– Louvain け 問題点

1. 第1 ( 決定処理) け 処理時間 増加

2. ー 選択順 依存 処理時間 増加

⇒ 次数 少 いノー 逐次集約 解決

本研究 貢献

高速性

従来最速 さ Louvain 高速 処理可能

本研究 133 倍 高速化 確認

正確性

• 最 良いModularity 値示 さ 法 同等 Modularityを示

大規模 フ ー を対象

Modularity を用いた ン を高速化

(74)

発表 流

1. 研究 背景

2. 既存手法:Louvain法

3. 提案手法

4. 評価実験

5. め 今後 課題

(75)

既存手法:Louvain法

V D. B ., “F

w ,” J S M , O 2008.

=

第1 ー : ー ローカ ン

順序 ノー を選択 ,選択 ー をModularity 最 高く

隣接 ー 同一

第2 ー : 含 ー 一括集約

同一 内 ノー エッ を一括集約 重 付 フ 変換

1 1 1

12 2 6

集約 重 付 対 Modularity 向上 限 を繰 返

(76)

Louvain 法 問題点

問題点1:第1 け 処理時間 増加

第1 第1

処理時間 99% 以上

フ 規模 直接影響 ため

フ 規模 応 増加

問題点2:ノー 選択順 依存 た処理時間 増加

– Louvain 処理を50回

試行 際 時間頻度分布

ノー 選択順序 依存

処理時間 大幅 変化

0 1 2 3 4 5 6 7 8 9 10

頻度(回)

1 2 3 4 合計

Time

(sec)

857 0.29 0.03 0.03 857

各 毎 処理時間経過

(77)

発表 流

1. 研究 背景

2. 既存手法:Louvain法

3. 提案手法

4. 評価実験

5. め 今後 課題

(78)

基本的 アイ ア

Louvain 法 考察

集約 い こ 計算不要

ッ 多く含 い

提案手法 け アプロー

1. 決定 時点 ノー を逐次的 集約

同一 張

複数 ッ 参照

結果 自明 ー 参照

ー ッ 内部 参照

ー ン ム選択

ッ 参照数 増加

(79)

(1) 計算対象ノー 逐次集約

決定 たノー を逐次 集約

同一 を1 ー , ッ を重 付 ッ 変換

こ ,計算対象 ー ッ を削減

同一 判明

逐次集約

集約処理前

特性:高速 高いModularity ン 可能

2

2

集約さ ー ッ

集約処理後

内: ッ 数 2倍

間: ッ 数 1倍

(80)

(2) ノー 枝刈 (1/2)

自明 2 ーンを逐次的 枝刈

自明 ーンを枝刈 不要 参照を削除

– Modularity 定義 自明 ーン 以下 通

ーン1 枝刈

自明 ーン

隣接 ー ーン2 全 同

あ ー

ーン1 次数 1 ー

(81)

(2) ノー 枝刈 (2/2)

ーン2 枝刈 効率化

ロー 1 逐次集約 ーン2 他 ー 次数

1 表現さ

逐次集約 ーン1 枝刈 を交互 実行

枝刈 可能

隣接 ー 全 同一 あ ッ 本数 1

4

逐次集約処理

(82)

(3) 次数順ノー 選択

次数 少 い順 計算対象ノー を選択

ー 中 他 ー 次数 少 い ー を優先選択 こ

ッ 比較回数を抑制

A

C D

B

ノー A B 同一 場合

ノー A 選択

ノー B 選択

ッ 参照数3

ッ 参照数2

次数 少 いノー Bを

選択 たほう 効率 良い

A

2

逐次集約

(83)

発表 流

1. 研究 背景

2. 提案手法

3. 既存手法:Louvain法

4. 評価実験

5. め 今後 課題

(84)

評価実験

概要

1. 提案手法 Louvain法 処理速度,処理精度を比較

2. 枝刈 有無,次数順選択 有無 処理速度比較

ー セッ

– Stanford 大学SNAP Project 公開 ー

• HepTh( 論理物理学系論文 共著者関係): ー 数9,877 ッ 数

51,971

• CondMat( 論文 共著者関係): ー 数23,133 ッ 数186,936

• HepPh( ー工学系論文 共著者関係): ー 数12,008 ッ

数237,010

• Email : ー 数36,692 ッ 数367,662

(85)

評価実験1:高速性 精度 評価

ン 処理速度 精度をLouvain法 比較

– 提案手法 Louvain法 対 最大133倍 高速化

エッ 数 多い フ ー ほ 高速 処理

– Modularity 値 同程度を示 い こ を確認

time(msec)

提案手法 Louvain法

10 2 10 3 10 4 10 5 10 6

HepTh CondMat HepPh email

提案手法 0.744 0.703 0.615 0.562

Louvain 0.685 0.644 0.621 0.57

Modularity 比較

(86)

評価実験2:枝刈 有無 評価

処理速度を比較

枝刈 有 方 高速 処理可能

• 特 CondMat,email 高速化効率 良く, 1.34 倍, 1.30

を示 い

2000 3000 4000 5000 6000 7000

time(msec)

(87)

評価実験3:次数順選択有無 評価

処理速度を比較

次数順選択 方 高速 処理可能

• 特 CondMat,email 高速化効率 良く, 1.67 倍, 1.80

を示 い

4000 6000 8000 10000 12000

time(msec)

数順

ン 順

(88)

発表 流

1. 研究 背景

2. 既存手法:Louvain法

3. 提案手法

4. 評価実験

5. め 今後 課題

(89)

提案手法

目的:大規模 高速化

ロー

ノー 逐次集約 ー ・ ッ 参照数 削減

ノー 枝刈 ー ・ ッ 参照数 削減

次数順ノー 選択 参照 ッ 数 抑制

本研究 貢献

高速性: 最大 133 倍 高速化 成功

正確性: 高いModularity 値を示 Louvain法 同等Modularity値

大規模性: 大規模 乗則 従 あ 程 効率的

高速化 可能 あ こ を示唆

今後 課題

参照

関連したドキュメント

[r]

機械物理研究室では,光などの自然現象を 活用した高速・知的情報処理の創成を目指 した研究に取り組んでいます。応用物理学 会の「光

焼却炉で発生する余熱を利用して,複合体に外

名の下に、アプリオリとアポステリオリの対を分析性と綜合性の対に解消しようとする論理実証主義の  

張力を適正にする アライメントを再調整する 正規のプーリに取り替える 正規のプーリに取り替える

に文化庁が策定した「文化財活用・理解促進戦略プログラム 2020 」では、文化財を貴重 な地域・観光資源として活用するための取組みとして、平成 32

土木工事では混合廃棄物の削減に取り組み、「安定型のみ」「管理型

・「SBT (科学と整合した目標) 」参加企業 が所有する制度対象事業所の 割合:約1割. ・「TCFD