クリークマイニングとその応用 ~ 大規模データの活用 ~

Slides:



Advertisements
Similar presentations
組合せ最適化輪講 2.3 連結性 川原 純. 2.3 連結性 内容 – グラフ上の節点をすべてたどるアルゴリズム 計算機上でのグラフの表現 – 強連結成分を求めるアルゴリズム トポロジカル順序を求める方法も – k- 連結、 k- 辺連結について – 2- 連結グラフの耳分解について.
Advertisements

授業展開#12 コンピュータの扱いにくい問 題. 扱いにくい問題  処理時間がかかる。  メモリを大量に必要とする。  プログラムの優劣、アルゴリズムの優劣 を比較するためには、標準的なコン ピュータで比較する必要がある。  処理時間を計るのに、コンピュータのモ デルとして、チューリングマシンを考え、
A Simple Constant Time Enumeration Algorithm for Free Trees 中野 眞一 宇野 毅明 群馬大学 情報学研究所 2003 年 9 月 19 日 アルゴリズム研究会.
J: Magical Switches JAG 模擬地区予選 2013 原案:保坂 解答:保坂・楠本 解説:保坂.
到着時刻と燃料消費量を同時に最適化する船速・航路計画
区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
いいプログラムは コーディング技術だけではない
極小集合被覆を列挙する 実用的高速アルゴリズム
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
ラベル付き区間グラフを列挙するBDDとその応用
ファイルやフォルダを検索する ①「スタート」→「検索」→「ファイルとフォルダ」とクリックする。
On the Enumeration of Colored Trees
サブグラフ列挙と頻出パターンマイニング - データサイエンスで活躍する列挙アルゴリズム
頻出集合列挙アルゴリズムに対する 実用的高速化技術について
An Algorithm for Enumerating Maximal Matchings of a Graph
Permutationグラフと Distance-Hereditaryグラフの 再構築アルゴリズム
「データ学習アルゴリズム」 第3章 複雑な学習モデル 3.1 関数近似モデル ….. … 3層パーセプトロン
列挙問題 列挙問題の定義 アルゴリズムの速度 バックトラッキング 分割法 逆探索.
遺伝アルゴリズムによる NQueen解法 ~遺伝補修飾を用いた解探索の性能評価~
リンク構造を考慮したベクトル空間法によるWebグラフ分割手法に関する研究
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
情報科学科 ネットワークシステムコース 西関研究室.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
宇野 毅明 国立情報学研究所 2002年3月 東北大大学院 情報科学研究科ワークショップ
疑似頻出アイテム集合の 多項式遅延列挙アルゴリズム
最短路問題のための LMS(Levelwise Mesh Sparsification)
動詞の共起パターンを用いた 動作性名詞の述語項構造解析
頻出パターン発見アルゴリズム入門 - アイテム集合からグラフまで - Part 1
大規模データに対する 効率的な列挙アルゴリズム
二分探索木によるサーチ.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
MPIを用いた並列処理 ~GAによるTSPの解法~
生命情報学入門 配列のつなぎ合わせと再編成
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
動的依存グラフの3-gramを用いた 実行トレースの比較手法
近年の列挙技術の進展 ー 計画立案と解法 ー 宇野 毅明 (情報学研究所) 有村 博紀 (北海道大学) 中野 眞一 (群馬大学)
利用関係に基づく類似度を用いたJavaコンポーネント分類ツールの作成
第3回 アルゴリズムと計算量 2019/2/24.
生物統計学・第3回 全体を眺める(1) R、クラスタリング、ヒートマップ、各種手法
トーリックイデアルの グレブナ基底を求める アルゴリズム – F4およびF5 –
頻出集合発見問題に対する アルゴリズム技術
25. Randomized Algorithms
A Simple Algorithm for Generating Unordered Rooted Trees
Webコミュニティ概念を用いた Webマイニングについての研究 A study on Web Mining Based on Web Communities 清水 洋志.
数独の解生成と 解に対する番号付け 理学部 情報科学科 渡辺研究室 戸神星也.
GPGPUによる 飽和高価値 アイテム集合マイニング
頻出・飽和・極大頻出集合の効率的な列挙アルゴリズムとその実装
新しい高速相同検索アルゴリズムを用いたゲノム解析ツールの開発
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
問題作成、解説担当:中島 副担当:坪坂、松本
列挙問題 列挙問題の定義 アルゴリズムの速度 バックトラッキング 分割法 逆探索.
宇野 毅明 (国立情報学研究所 &総合研究大学院大学)
重み付き投票ゲームにおける 投票力指数の計算の高速化
短い部分文字列の ミスマッチトレランスを 高速計算するアルゴリズム
大規模ネットワークに対する 実用的クラスタ発見アルゴリズムの開発
構造的類似性を持つ半構造化文書における頻度分析
アルゴリズムとデータ構造 2011年6月16日
情報工学概論 (アルゴリズムとデータ構造)
大規模データ処理に対する 列挙アルゴリズムの活用
擬似クリークを列挙する 多項式時間遅延アルゴリズム
大規模データ処理に対する アルゴリズム理論からのアプローチ
平面走査法を使った 一般線分の 交点列挙アルゴリズム
アルゴリズムとデータ構造 2013年6月20日
確率的フィルタリングを用いた アンサンブル学習の統計力学 三好 誠司 岡田 真人 神 戸 高 専 東 大, 理 研
グラフの列挙 中野 眞一    (群馬大学) 2019/9/14 列挙学校.
無向グラフが与えられたとき、最大位数の完全部分グラフを求める問題
2008年度 情報数理 ~ 授業紹介 ~.
2012年度 情報数理 ~ 授業紹介 ~.
Presentation transcript:

クリークマイニングとその応用 ~ 大規模データの活用 ~ 宇野 毅明  (国立情報学研究所         &総合研究大学院大学) 2011年3月2日 情報処理学会 湊ERATOシンポジウム

どうして大規模データ? • Web サーチのように「全てのデータを取っておくこと」に意味があるのでない限り、データを大量に保存せずともいいんじゃない?   データ解析して全体的な傾向を見るのなら、ある程度たくさんあつまれば十分でしょう。(世論調査、出口調査、、、) • 統計理論が発達してるので、少ないデータでも全体の傾向を十分に捕らえられるようになってきている  (1億件  1万件)   大規模データの蓄積は不要??? • 全体的なものに関しては、確かにその通り。  でも、部分的な特徴は、大規模データが必要

エラーの訂正 • OCR(スキャナ)で文章を読みました 「実は大規撲データの解析で、、、」  まちがってる  「実は大規撲データの解析で、、、」    まちがってる • と思いきや、 「実は大規撲データの解析で大関の、、、」だったりすると、 「実は大相撲データの解析で大関の、、、」 となるべき   前後を見ないと、何が正解か分からない   意味を解析しないと分からない??? • でも、事例があれば推測はできる  「先月の大相撲データの解析で大関の取り組みが、、、」  「実は大相撲データを解析を大関の成績にあてはめて、、、」 • 「大の次に何が来る可能性が高いか」程度の統計では難しい

数の暴力 • ゲノム情報の読み取りはエラーがつきもの。いろいろな方法で精度を高めようとするが、、、   ….ATCCGCTAGGTGAATATGCGC…   ….ATCCGCTAGGAGAATATTCGC…   ….ATCCGCTAGGAGAATATGCGC…   ….TTCCCCTAGGGGAATATTCGC…   ….ATCCGCAAGGAGAATATTCGC…   ….ATCCGCTAGGAGAATATCCGC… • 気にせずに、たくさん読んでしまえばいい!! 自信がない 自信がない

どうして使わないの? + 大規模データの利用で (ある種自動的に) 精度を高められる + 非常にまれな(1万分の1)事象でも、1億件のデータでは1万件もある (解析するのに十分) • なのに、それほど大規模データをがんがんと解析しているわけではない (企業には、眠っているデータが山ほど) • 大きな理由は、「計算が大変だから」   1億件のデータの、どれとどれが似ているかを調べるには、1億×1億/2のチェックが必要。一秒に1億回比較しても2年くらいかかる • 実際はもっといい方法を使うが、それでも1週間とか。  (大量の似たものグループを見つけるなど、とてもとても、となる)

似たものグループ • 「数の暴力」をするには、似たものグループを作る必要がある  「クラスタリング」 という問題   「クラスタリング」 という問題 • しかし、通常の「クラスタリング」では、データを完全に分割してしまう (2つ以上のグループに属する人がいない) • 重なりを許したグループを列挙したい

クリーク • 似たものの間に線を引いて、グラフを作る  同じグループに属するものは、線で結ばれているだろう   同じグループに属するものは、線で結ばれているだろう   全てのペアがお互い結ばれているもの達がグループ?     (こういう頂点の集合をクリークという) • 他のクリークに含まれない、極大なクリークを見つければ、グループが見つけられるだろう  問題    与えられたグラフの極大クリークを全て列挙せよ   

一個見つけるだけでも… • 極大クリークは、O(n2) 時間で見つかる (多項式時間) (全ての頂点に隣接する頂点を1つずつ追加する)  (全ての頂点に隣接する頂点を1つずつ追加する) • しかし、大規模データでは、n2 時間はとんでもなく長い • 現在のクリークに隣接する頂点の集合を保持する  頂点を追加したら、その頂点に隣接するものだけ残す • O(平均次数2) 時間程度になるので、疎なグラフなら大丈夫 • あとは、探索の工夫が必要   適当に探すと、同じのばかり何回も   見つけてしまって、いつまでたっても   全部見つけられない

クリークの単調性 • クリークの部分集合はクリーク  単調性が成り立つ 111…1  原点を出発して山を登り、クリークでなくなったら、戻って、他の方向に登る、というバックトラック式の探索で列挙できる • しかし、極大が少なくても、たくさ んのクリークが含まれることが多 く、現実的な時間で終わらない • 極大クリークだけ見つけるには、 なんらかの工夫(うまくジャンプする、 不要なところをスキップする)が必要 111…1 クリーク 000…0 φ 1,3 1,2 1,2,3 1,2,4 1,3,4 2,3,4 1 2 3 4 3,4 2,4 1,4 2,3 1,2,3,4

工夫をする • 工夫の仕方はいくつかあるが、代表的なもの + 富田アルゴリズム (元電気通信大学 富田悦次先生)  + 富田アルゴリズム (元電気通信大学 富田悦次先生)  (先の探索を改良し、効果的な枝刈り法を組合わせる)  + 牧野宇野アルゴリズム (with 東京大学 牧野和久先生)   (極大クリークの隣接性を上手に定義し、効率良く探索) • 世界的に見て、優秀なのはこの2つと思って良いだろう  (大規模グラフデータでも、現実的に高速に動く、という意味で) • 両方とも、実装(プログラム)が宇野のホームページにある  (http://research.nii.ac.jp/~uno/codes-j.html) 「宇野毅明」「公開プログラム」「データマイニングの簡単」「mace クリーク」などで検索

隣接性の導入 • クリークに「えらい順」を決める (頂点添え字の辞書順) • 極大クリーク Kの頂点を、添え字(ID)の • クリークに「えらい順」を決める (頂点添え字の辞書順) • 極大クリーク Kの頂点を、添え字(ID)の 大きい方から順に抜いていく   自分よりえらい極大クリークに含まれる   ようになったら、それを隣(親)とする • (一番偉いクリーク以外)、どの極大クリーク にも一つ親がある  巡回的でない (木型の)探索路が できる

「逆探索」 • こういう探索ルートが(暗に)決まっているのなら、あとはこのルートをなぞればよい • なぞるには、(今訪れている頂点の)子供が見つかればよい (実は、子供を見つけるのは普通簡単ではなく、だから効率的な列挙は難しい • この親子関係の場合、「頂点を追加、邪魔者を削除」で求まるのでうまくいく

頂点を追加して子供を見つける • 「親」 に1つ頂点を追加する • つながっていない頂点はじゃまなので、消す • それを含む一番偉い極大クリークを見つける   (「子供の候補」になる) • 「子供の候補」の「親」が自分だったら、  それは自分の子供である   (「子供候補」が他人の子供である    可能性もある、ということ) • 一般に、現実データでは、クリークにつながる頂点は少ない 子供候補が少ないので効率的に計算できる (クリークにつながる頂点だけ)

• 列挙は、各反復で複数の再帰呼び出しをする  計算木は、下に行くほど大きくなる  計算時間を支配するのは一番下の数レベル 末広がり性 • 列挙は、各反復で複数の再帰呼び出しをする   計算木は、下に行くほど大きくなる  計算時間を支配するのは一番下の数レベル ・・・ 計算時間 長い 計算時間 短い 平均してしまうと、1つあたりの計算時間は非常に短くなる。 そのため、1秒間に1万個以上の極大クリークを見つけることが可能。(どんな大きさのデータでも、だいたい)

新旧アルゴリズムの比較

クラスタ マイニング • 類似する部分に線を引いたグラフの極大クリークを見つけ、クラスタの列挙を行う  + 現実データでは、似ている物は似ているし、似ていないものは似ていない、ということが多く、データにムラがあるため、比較的キレイにまとまることが多い  (アイテムセット、画像、文字列、ゲノム・・・)  + (2乗時間かけないグラフ作成が重要)

Webテキストからデータマイニング • Webテキストの、類似する部分に線を引いてグラフを作り、クリークを見つけて多数決を取ると (200万文字、10分) #年0#月200#年0#月2006年0#月2006年0#月2006年0#月2006年0#月2006年0#月200#年0#月200#年12月2005年… ##,###円(税別、送料別)Paul Smith Men’s/ポールスミス メンズサイズフェイス:H約4.5cm×W約3.#cm、厚み約#.#cm(リューズ除く)ベルト:幅約2.#cm腕まわり:最大約### #組の成立となりました。## #月1#日(土)男性12名:女性1#名のご参加で、5組の成立となりました。## 4月7日(土)男性#0名:女 • 面白い物が見つかる。既存のデータマイニング手法では、ちょっとずつ違う解が大量に出るし、何年かかっても計算が終わらない

• 2部グラフのクリークは、2部それぞれの頂点集合をクリークにすることで、クリークと1対1の対応が付く 2部クリークの列挙 • 2部グラフのクリークは、2部それぞれの頂点集合をクリークにすることで、クリークと1対1の対応が付く 1 2 3 4 5 6 7 8 9 A B C D E F 1 2 3 4 5 6 7 8 9 A B C D E F • 変換したグラフの極大クリークを列挙   極大2部クリークの列挙 • クリーク化でグラフが密になると困るので、仮想的に枝を追加

アイテム集合マイニングができる • 多く(閾値以上)の項目に含まれるアイテム集合を頻出アイテム集合という • アイテム、項目を頂点とし、包含関係を枝とした2部グラフで、 項目側が閾値以上の頂点を含む2部クリークは、頻出アイテム集合に対応 • データベースの再帰的縮約操作が末広がり性と実に良くフィットするため、非常に高速で列挙できる A: 1,2,5,6,7,9 B: 2,3,4,5 C: 1,2,7,8,9 D: 1,7,9 E: 2,7,9 F: 2 1 2 3 4 5 6 7 8 9 A B C D E F D=

クリックストリームデータ(疎) 頻出:nonodrfp&LCM 飽和:LCM 極大: LCM

ZDD に “ピッタリ” • 頻出アイテム集合や極大クリークは比較的似た共通の構造、規則的な構造を沢山持つ   ZDD と相性が良い。出力は ZDDでかなり小さくなる • 複数のデータの頻出アイテム集合の間で、差分をとったり様々な演算ができる   多様な解析が可能になる 

まとめ • 大規模データの「数の暴力」で効果的なデータ利用をしよう • 何も知識がないところでは、「相互関係」しか頼るものがない。 似たものグループを見つけて利用しよう • 似たものグループを見つけるために、極大クリークを列挙しよう • 隣接性をうまく定義して、上手に探索しよう • 変化球で、頻出文字列や頻出アイテム集合を見つけよう • ZDDとの組合せで、多様で深い解析を効率的に行おう