DEIM Forum 2014 D1-2 分散 NMF における Adaptive,Incremental 計算手法の適用 牧野 浩之† 鬼塚 真† † 日本電信電話株式会社 NTT ソフトウェアイノベーションセンタ 〒 180–8585 東京都武蔵野市緑町 3-9-11 E-mail: †{makino.hiroyuki,onizuka.makoto}@lab.ntt.co.jp あらまし 非負値行列因子分解 (NMF: Non-negative Matrix Factorization) は,行列表現で表されるテキスト,画像, 音声など様々なデータに対し,指定した基底数に行列を分解し,低ランク表現によって特徴抽出を行う行列近似手法 である.数百万次元以上の大規模な行列を用いて NMF を行うユースケースにおいては,MapReduce 上での処理が不 可欠である.しかし既存の MapReduce における分散 NMF 実装では,全体で数百回の多段 Job となるため,膨大な 処理時間を要する.本研究では分散 NMF 処理において処理時間を改善するため,収束したレコードの処理をスキッ プして処理を高速化する Adaptive 計算手法と Incremental 計算手法を提案する.提案手法を適用した実験の結果,処 理時間を最大で 1/4 に削減できることが分かった. キーワード 大規模分散処理, MapReduce, データマイニング, 行列分解 1. は じ め に NMF(Non-negative Matrix Factorization: 非負値行列因子 分解) は,行列を指定した基底数に分解し,低ランク表現を行 う行列近似手法である [1].テキスト,画像,音声など様々な データが行列形式で表現でき,これらの行列が持つ潜在的な特 図 1 NMF 徴を抽出することを目的とする. 例えば,オンラインショッピ 後の行列は,W(n 行 k 列) の基底行列と,H(k 行 m 列) の重 ングサイトにおける購買履歴をユーザと購入商品という軸で み行列 (各列は基底をどれだけの重みで結合するかを表現) と 隣接行列を作成し,NMF を適用すると,商品カテゴリとそれ なる.W と H を掛け合わせると元の行列 A の近似値が得られ に属するユーザ群を抽出でき,ユーザに対し次に購入候補とな るが,完全に一致する W,H の値を求めるのは困難であるため, る商品の推薦に利用するといったことが可能である.また,扱 A と WH の距離 (コスト) 関数を用いて,距離を最小化する探 えるデータ量や種類の増加に伴って,数百万次元以上の大規模 索問題として解かれる.この探索問題の例として式 (1) は数学 な行列を用いて NMF を行うユースケースが一般的となってき 的距離規範におけるフロベニウスノルムの最小化問題として解 た.Liu らは大規模な行列に対応できるよう,MapReduce 上 かれる.NMF の解法にはいくつかの数学的解法が提案されて で NMF を行う分散 NMF 手法を提案し,数億次元の大規模な いる.ALS(Alternating Least Squares) [3] や乗法的更新ルー 行列においてもスケールすることを確認した [2].この手法で ル [4],Gradient Descent 法を用いた手法 [5] などが提案されて は NMF の 1 回の更新ルール適用イテレーションにつき 10 個 いる.補助関数と Jensen の不等式により導出した乗法的更新 の MapReduce Job で多段処理となるため,数十回の更新ルー ルールは最も広く利用されている.更新式の例を式 (2) に示す. ル適用イテレーションを繰り返し処理し,結果を得るまでに膨 大な処理時間を要する.本研究では MapReduce を用いた分散 NMF 処理において処理時間を短縮するため,大半のレコード が数イテレーション後に収束するという特徴を利用できないか Wnew = min||A − W H||2F s.t.W, H > (1) =0 T T AH W A W. × Hnew = H. × T (2) W HH T W WH 検討した.そこで,収束したレコードの処理をスキップして処 NMF では,W と H をランダムな値で初期化し,更新式に 理を高速化する Adaptive 計算手法と更新差分を用いて加法的 従って W と H を交互に更新し,コスト関数が収束するまでイ に更新ルールを適用する Incremental 計算手法を提案し,その テレーションを継続することで最適な解が得られる.乗法的更 有効性について実データを用いて評価,考察を行った. 新ルールにおいては,数百万次元以上の大規模な行列に対応で 2. 事前知識: NMF と分散 NMF の計算手法 2. 1 NMF NMF とは行列が持つ潜在的要素を分析するために用いられ きるよう,分散処理基盤 MapReduce を用いた分散 NMF [2] が Liu らによって提案されている.次節で分散 NMF の詳細につ いて述べる. 2. 2 分散 NMF る低ランク近似手法の一つであり,非負値行列を 2 つの非負値 MapReduce を用いた分散 NMF 計算手法では,NMF の 1 行列に分解する行列分解アルゴリズムである.具体的には,図 イテレーション処理を 10 個の MapReduce Job へのフェーズ 1 に示すように分解前の行列を A(n 行 m 列) とすると,分解 分割によって処理できる.式 (2) に示した更新式では,図 2 に 示す処理フローで反復的に計算される. 1 W と H をランダムな値で初期化. 2 イテレーションを r 回繰り返す { 3 //Update H 4 Phase1 Job(H1),Phase2 Job(H2): X = W T A の計算 5 Phase3 Job(H3): Q=W T W 6 Phase4 Job(H4): Y=QH 7 Phase5 Job(H5): H=H. ∗ X/Y 8 //Update W 9 Phase1 Job(W1),Phase2 Job(W2): X=AH T の計算 10 Phase3 Job(W3): Q=HH T 11 Phase4 Job(W4): Y=WQ 12 Phase5 Job(W5): W=W. ∗ X/Y 図 3 各フェーズの平均処理時間 13 } 図 2 分散 NMF の MapReduce 実装 2. 2. 1 分散 NMF のボトルネック解析 本研究では,分散 NMF の処理を高速化する手法を提案する が,どの処理に高速化手法の効果的な適用が可能かを考える上 で,分散 NMF のボトルネックについて述べる.まずは,それ ぞれの MapReduce Job について,どのフェーズの処理が処理 上のボトルネックとなるか,机上での処理アルゴリズムの解析 と実際のデータセットを用いた実験により解析した. はじめに,処理アルゴリズムについて机上での解析を行 う.Phase1, Phase2 Job で は ,そ れ ぞ れ ,X = W T A と X = AH T の計算を行うが,行列 W および行列 H は密行 列であり,MapReduce 実装における行列同士の乗算では n 行 分の和を m 列分繰り返すため,計算量が O(nm) で変化する. Phase1, Phase2 の Job を詳細に分析する. Phase1 Job の Map Input/Output, Reduce Input/Output は,Update H の場合, Map < n,wn >, < (n, m),Anm > → < n, wn ,(m, Anm )∀m ∈ On > 理時間を示したものである. 測定結果から,Phase1, Phase2 の処理 (H1,H2,W1,W2) が全体の 54%(doc user 行列), および 94%(doc word 行列) を占めており,非零要素率の変化による 影響が大きいことが分かった. 2. 2. 2 分散 NMF の課題 NMF で収束解を求めるためには数十から数百回のイテレー Reduce < n,wn , (m, Anm )∀m ∈ On > → < m, Anmwn T > Phase1 の Output である < m, Anm wn T > は要素ごとの乗算 となるため,CPU intensive な処理となる.同様に Phase2 Job の Map Input/Output, Reduce Input/Output は, ションを繰り返す必要があり,数百万次元の規模の大きな行列 の処理では,結果を得るまでに数時間から数日の処理時間を 必要とする.2. 2. 1 で述べたように Phase1, Phase2 Job では, それぞれ,X = W T A と X = AH T の計算処理を行うが,計 Map < m, Anmwn T > → < m, Anmwn T > Reduce < m, Anmwn T > → < m, xm > ∑ xm = n∈Om Anm wn T ∑ Phase2 の Output である xm = Anm wn T は,Shuffle 量が 多くなり I/O intensive な処理となる. Phase3 以降の処理は,Phase1,Phase2 と比較すると処理 オーバーヘッドは小さい.Phase3 の処理は Map 側で分散して Q = wnT wn が行え,出力が k × k の行列となり,Phase4 でも Map 側で Qhm の処理が行える.Phase5 においても,同じ m 列を集約して処理できる. 次に,実際のデータセットを用いて処理特性を解析した.実 験に用いたデータセットとして,doc user 行列,Adoc 図 4 doc word 行列におけるイテレーション毎のコスト値 テレーションを処理した際の 1 イテレーションあたりの平均処 user ∈ R350,469×2,663,167 非 零 要 素 率 0.0013%と ,doc word 行 列 , + Adoc word ∈ R350,256×397,676 非零要素率 0.11%の行列データを + 用いて,従来手法の各フェーズの平均処理時間を測定した.デー タセットの詳細については,4. 1. 2 で詳述する.図 3 は,50 イ 算結果が密行列 (k × m 行列,n × k 行列) になる上,基底数 k や行列 A のスパース性に依存して,計算量や出力が変化する. また,この傾向は大規模な行列を用いた処理においては顕著な ボトルネックとなる.一方で,式 (1) で表される距離関数の値 (コスト値) はイテレーションを経るごとに単調減少し,収束す ることが知られている [4].doc word 行列において,式 (1) で 評価したイテレーション毎のコスト値の例を図 4 に示す. 式 (1) の ||A − W H||2F が収束することから,WH において, W,H の各要素も変化量が小さくなる可能性が高い.そこで,イ テレーション間での W,H の各要素の変化量を観測するため, ∑ (j) (j+1) イテレーション間の差の絶対値総和, n,k |Wn,k − Wn,k |, ∑ (j) (j+1) k,m |Hk,m − Hk,m | を集計したものを図 5 に示す.NMF の 更新式は,W と H について交互に更新を行うが,図 5 の結果 から W, H それぞれの更新式について,一定の収束傾向がある ことが分かる. → ンク関係行列 A の並び替えと PageRank ベクトル − x (k) の全 要素を用いて計算を行う. 3. 1. 2 NMF 計算への Adaptive 計算手法適用 PageRank 計算では式 (3) に示すように,リンク関係行列 → A と PageRank ベクトル − x (k) の乗算であるが,本研究では, Adaptive 計算手法を NMF の更新式の行列演算に一般化する. ここで行列演算を行う際の行列演算子と計算を行う際の基本 ルールを表 1 と表 2 に定義する. 図 5 W, H 各要素のイテレーション間の差の絶対値総和 以上で述べた行列の収束傾向を利用して,計算量や中間デー 表1 タの入出力量を削減し,イテレーション処理を高速化する手法 を提案する. 3. 提 案 手 法 2. 2. 2 で述べた MapReduce 処理の課題に対して,イテレー 行列演算子 行列演算子 セマンティクス × 行列乗算 zij = .× 要素単位の乗算 zij = xij × yij / 要素単位の除算 zij = xij /yij 表2 ∑ k xik × ykj 計算ルール 計算ルール 計算式 ションを経るごとに分解後の行列も収束する特徴を利用して, AM(Arithmetic Multiplication) ルール (X. × Y )i∗ = Xi∗ . × Yi∗ 計算を省略する手法を検討する.提案手法は,Adaptive 計算手 AM(Arithmetic Multiplication) ルール (X. × Y )∗i = X∗i . × Y∗i AD(Arithmetic Division) ルール (X/Y )i∗ = Xi∗ /Yi∗ AD(Arithmetic Division) ルール (X/Y )∗i = X∗i /Y∗i CMM(Column Matrix Multiplication) ルール (X × Y )∗i = X × Yi RMM(Row Matrix Multiplication) ルール (X × Y )i∗ = Xi × Y 法と Incremental 計算手法である.Adaptive 計算手法は,W および H 行列において各イテレーションごとに収束した行ベク トル,列ベクトルの更新式適用をスキップし,Incremental 計 算手法は W および H 行列の変更差分を用いて更新式を適用す 式 (2) に示す乗法的更新ルールにおいて,Adaptive な W の る手法である.それぞれの手法について詳しく述べる. 更新式は,収束判定を行ごとに適用し,収束行を C,非収束行 3. 1 Adaptive 計算手法 Adaptive 計算手法は一度閾値以下に収束した要素は,変化 しない前提で,前イテレーションの値を再利用することで計算 量・入出力量を削減する手法である.計算全体としては,収束 を N とすると,k + 1 イテレーション目の w(k+1) ベクトルは, { ( )} T (k+1) wN = w(k) . × WAH HH T N を行あるいは列単位 (以降ベクトルと呼ぶ) でスキップできるた AM ルール適用 ( ) T (k) = wN . × WAH T HH め,収束傾向に基づいて Phase1 から Phase4 の処理コストを AD ルール適用 判定を行うための計算量は Phase5 で増加するが,更新式適用 N 削減できる. (k) = wN . × 3. 1. 1 Adaptive 計算の基本方針 RM M ルール適用 収束要素の計算をスキップし処理を高速化する手法として, PageRank 計算では Adaptive PageRank 手法が提案されてい る [6].Adaptive PageRank 計算は乗法的更新ルールに基づい て,次のように計算される.k イテレーションの計算を行った → PageRank ベクトルを − x (k) ,PageRank ベクトルの収束要素 (k) → を C, 非収束要素を N とすると,収束したベクトルは − x C ,非 (k) − → 収束ベクトルは x と表せる.またリンク関係行列を A とし, N PageRank ベクトルの収束要素と非収束要素に対応するように A 行列を並び替えると,収束部分行列 AC , 非収束部分行列 AN (k) = wN . × (k+1) wC (k+1) − → xN (k+1) − → x C ) (k) = wC 収束列を C,非収束列を N とすると,k + 1 イテレーション目 の h(k+1) ベクトルは, { ( T )} (k+1) (k) hN = hN . × WWT WAH N AM ルール適用 ( T ) (k) = hN . × WWT WAH ( ) ( (k) ) − → AN xN = · − (k) → A x C AN H T wN HH T となる.同様に,H の更新式は,収束判定を列ごとに適用し, と表せる.k + 1 イテレーション目の PageRank ベクトルは, ( (AH T )N (W HH T )N N AD ルール適用 C (k) (k+1) → → と表せ,− x C はすでに収束しているため,− xC の再計算を (k) = hN . × 行わない.従って, (W T A)N (W T W H)N CM M ルール適用 (k) (k+1) − → → xN = AN − x (k) (3) (k+1) (k) − → → xC =− xC (4) = hN . × (k+1) (k+1) → となる.Adaptive PageRank 手法では,− xN の計算に,リ hC W T AN W T W hN (k) = hC となる.本提案手法では,収束判定に基づき,非収束なベクト ルに対応する AN n ,AN m のみ Phase1 Mapper で出力し,非 T T 収束ベクトルに該当する AN n H ,W AN m の計算を行い, 3. 2. 1 実 装 まず,Liu らによって提案された分散 NMF 計算手法 [2] を 収束したベクトルは前のイテレーションと同じ値を用いる.イ 比較手法として実装し,これを拡張し,提案手法である Adap- テレーション間での収束ベクトルの再利用は,一度収束したベ tive 計算手法,Incremental 計算手法,両方の手法を組み合わ クトルは変化しないという前提を置いているため,誤差が生じ せた Adaptive+Incremental 計算手法を実装した.それぞれ る.そこで,一定のイテレーション回数ごとに収束判定を行い, の手法の実装上の工夫について述べる.Adaptive 計算手法で 収束ベクトル wC , hC と非収束ベクトル wN , hN に分ける.何 は,数イテレーションごとに,一つ前のイテレーションとの イテレーションごとに収束判定を行うかをパラメータとして与 差,W (k+1) − W (k) , H (k+1) − H (k) を計算し,全要素が閾値 えることで,許容すべき誤差をトレードオフにし,収束ベクト ε 以下になったベクトルを収束部分としてマークする.この処 ルのイテレーション間での再利用による高速化が可能である. 理を bitset を用いて,Phase5 の処理の中で実装した.また, 3. 2 Incremental 計算手法 この bitset を Phase1 の A 行列 Mapper 処理時に Distribut- Incremental 計算手法の基本的なアイデアは,W, H の更新 edCache で全ノードに配布し,収束ベクトルに対応する A 行 式を適用する際に,W, H の差分計算により変更差分を用いて 列の要素 < (n, m), Anm > を出力しないようにした.Incre- 計算する手法である.W, H の更新について,具体例を述べる. mental 計算手法では,Phase5 で,∆W = W (k+1) − W (k) , N 回のイテレーション処理を行った後の W,H の値,WN ,HN ∆H = H (k+1) − H (k) を計算するよう拡張し,イテレーショ は以下のように表現される.∆WN ,∆HN はイテレーション ン間の差分計算により,差が収束判定閾値 ε を超える要素のみ ごとの更新差分となるため,行列の収束の有無を任意の収束判 を非収束要素として取り出す.この差分を Mapper の入力とし 定閾値 ε で判定し非収束要素を対象に更新する.イテレーショ て,Phase1 では,∆W T A, A∆H T の計算を行い,Phase2 の ンを経るごとに収束要素が増加するため,計算すべき差分 ∆ は Reducer で,(W T A)(k−1) + ∆W T A, (AH T )(k−1) + A∆H T 小さくなる. を計算する実装とした. WN = W0 + ∆W1 + ∆W2 + ... + ∆WN 4. 評 価 実 験 HN = H0 + ∆H1 + ∆H2 + ... + ∆HN 通常の計算では,W や H は密な行列になるが,Incremen- 本章では,Adaptive 計算手法と Incremental 計算手法を分 tal 計 算 手 法 で は ,非 収 束 要 素 を 取 り 出 す こ と で 疎 な 行 列 散 NMF に適用し,Job の処理時間,通常の分散 NMF との誤 を構築し,乗算する計算コストを削減できる.特に Phase1 差について評価を行う. T では,(n, hT m Anm ),(m, Anm wn ) の乗算となるため,行列 4. 1 実 験 条 件 の収束に伴って計算量を削減できる.ただし,Phase2 では, 4. 1. 1 実 験 環 境 AH T + A∆H T ,W T A + ∆W T A の加算を行うため,shuffle 実験には,1 台の Master ノードと 10 台の Slave ノード 量が増加するというトレードオフがある. を用いた.個々のマシンスペックは,CPU: Intel Core2Duo Incremental 計算を行うにあたり,NMF の更新式全体を対 E7400 @ 2.8GHz,RAM: 8GB,SATA HDD(I/O: 93.5∼104.1 象に Incremental 計算を行う手法と,更新式の一部を Incre- MB/sec), Gigabit Ethernet, OS: CentOS 5.6 x86 64 となっ mental に計算する手法が考えられる.本実験では,Phase1, ている.また,ミドルウェアには,Apache Hadoop 1.0.3,Or- Phase2 Job の処理ボトルネック解消のため,更新式の一部に acle JDK 1.6.33 を用いた. Incremental 計算手法を適用した.Incremental 計算手法にお ける更新式を以下に示す. A(H T +∆H T ) W (k+1) = W (k) . × W (H +∆H)(H T +∆H T ) = W (k) .× W (HH T T A(H T + ∆H T ) +H∆H T +∆HH T +∆H∆H T ) T H∆H + ∆HH + ∆H∆H T ≈ 0 とし, AH T に前イテレーションの値を用いると ≈ W (k) . × H (k+1) = H (k) . × (AH T )(k−1) + A∆H T W HH T (W T 実験データセットには,ソーシャルキュレーションサービスで ある Togetter から得たデータを利用した.Togetter はユーザが Twitter 上の発言を集約して,まとめページを作成できるサー ビスである.各記事におけるユーザの発言頻度を bag of words として表現した doc user 行列,Adoc user 350,469×2,663,167 ∈ R+ 非零要素率 0.0013%と,各記事における単語頻度を出現するド キュメント数で除算し TF-IDF 化したスコアを bag of words と して表現した doc word 行列,Adoc (W T +∆W T )A +∆W T )(W +∆W )H word 350,256×397,676 ∈ R+ 非 零要素率 0.11%のデータを用いた.それぞれのデータは,行列 インデックスを key とし,要素の値を value とした Key Value 形式 < (n, m), Anm > を SequenceFile Format で格納した. (W + ∆W )A (W T W +W T ∆W +∆W T W +∆W T ∆W )H 4. 1. 3 実 験 条 件 T = H (k) .× 4. 1. 2 データセット T W T ∆W + ∆W T W + ∆W T ∆W ≈ 0 とし, W T A に前イテレーションの値を用いると ≈ H (k) . × T (k−1) T (W A) + ∆W A WTWH 実験ケースとして,Adaptive 計算手法,Incremental 計算手 法,Adaptive と Incremental 計算を組み合わせた手法をそれぞ れ,Adoc user 行列と Adoc word 行列について実施した.予備実 験の結果からイテレーション数は 50 とし,行列分解する基底数 図 7 合計処理時間 (doc user 行列) 図 6 イテレーションごとの処理時間 (doc user 行列) k は k = 200 とした.Adaptive 計算手法については,収束判定 の頻度を 5 イテレーションごとに設定した.また,Incremental 計算手法においては,初めのイテレーションから適用した場合, 差分 ∆ が大きくなり,通常の分散 NMF より I/O が増加するた め,Incremental 計算を開始するイテレーションを設定し,処 理時間と従来手法との誤差 (L2 ノルム) の比較を行った.測定 バリエーションと収束判定閾値 ε(閾値 ε),Incremental 計算開 始イテレーション (開始 Itr.) を表 3 と表 4 に示す. 表 3 doc user 測定バリエーション 手法 従来 Adaptive Incremental 1 Incremental 2 Adaptive + 閾値 ε - 1.0E-9 1.0E-9 1.0E-9 1.0E-9 - 1 15 15 Incremental 開始 Itr. - 図 8 イテレーションごとの処理時間 (doc word 行列) 表 4 doc word 測定バリエーション 手法 従来 Adaptive Incremental 1 Incremental 2 Adaptive + 閾値 ε - 1.0E-9 1.0E-9 1.0E-9 1.0E-9 - 1 15 1 Incremental 開始 Itr. - 4. 2 実 験 結 果 各イテレーションの処理時間を図 6 と図 8 に,50 イテレー ションの合計処理時間を図 7 と図 9 に示す. 実験の結果,W,H 行列の収束傾向に応じて,Incremental 計 算開始イテレーションを調整する方が処理時間が短くなった. これは,W, H 行列が十分に収束していない場合は差分行列の I/O が増加すること,W T A + ∆W T A を加算するコストが増 図 9 合計処理時間 (doc word 行列) 処理時間の改善率が 74.9%と高かった,doc word 行列の Adaptive+Incremental について,各のフェーズの平均処理時 間 (50 イテレーションの平均) を図 10 に示す. えることが原因である. フェーズごとに比較すると,W Phase1, W Phase2 の処理時 表 5 doc user 実験結果 間が大きく改善されているが,H Phase1, H phase2 の改善率 手法 従来 Adaptive Incremental 1 Incremental 2 Adaptive + 処理時間 (分) 667.61 586.8 627.05 616.27 585.96 改善率 - 12.1% 6.1% 7.7% 12.2% 誤差 (従来比) - 0.000079% -0.023% 0.000011% 0.000044% Incremental は W 更新式と比較して小さくなっている.この原因を W, H の要素ごとの収束状況から分析する.図 11 に W 行列, H 行列 のイテレーションごとの差を収束判定閾値 (ε=1.0E-9) で非収 束要素をカウントしたものを示す. H 行列は 5 イテレーショ ンまでに非収束要素の割合が 2%と十分収束し,H 行列の差分 表 6 doc word 実験結果 手法 従来 処理時間 (分) 3838.01 2739.78 1765.15 1968.55 963.32 改善率 - 28.6% 54.0% 48.7% 74.9% 誤差 (従来比) - 2.32% -4.28% 0.66% -1.70% Adaptive Incremental 1 Incremental 2 Adaptive + Incremental を入力とする W 更新式の計算量は減少したが,収束傾向の緩 やかな W 行列は,20 イテレーション前後でも非収束要素の割 合が 35%となっており,W 行列の差分を入力とする H 更新式 の計算量の削減率が低いことが分かった. 図 13 Phase2 Job の Shuffle 量 (doc word 行列) 図 10 各フェーズの平均処理時間 (doc word 行列) 4. 3 考 察 Adaptive 計算手法,Incremental 計算手法によって,行列の 収束傾向に基づいた高速化が行えた.言い換えると,処理時 間は収束傾向に依存するが,Incremental 計算の開始イテレー ションや収束判定閾値の設定が重要であると考えられる. Adaptive 計算手法では,収束要素に対応する A 行列の再構 築を行うことで,W T A や AH T の計算処理を効率化できるが, MapReduce では I/O をディスクに依存するため,行列再構築 のオーバーヘッドが大きい.このオーバーヘッドは,I/O が高 速なディスクを用いたり,Spark(注 1)などのインメモリアーキテ 図 11 イテレーションごとの非収束要素の割合 (ε=1.0E-9) クチャを用いる必要がある. Incremental 計算手法では,Reduce 側で前イテレーション の W T A を読み込み,W T A + ∆W T A の処理を行うため,収 束傾向が緩やかな場合,加算によるオーバーヘッドが増加する. そのため,Incremental 計算を開始するイテレーションを収束 状況により判断するメカニズムが必要である. 5. 関 連 研 究 NMF をはじめとする行列計算の高速化,分散処理手法につ いて関連研究を整理する. 乗法的更新ルールのようにイテレーション処理を効率化する 手法には,大きく分けると,行列の分割やデータ構造の変更, イテレーションの集約,処理オペレータの最適化が挙げられ る.行列の分割について,Liu らは行列のパーティショニングス 図 12 Phase1 Job の CPU 処理コスト (doc word 行列) キーマとパーティションの効率的なシャッフル方法を工夫するこ 次に,2. 2. 1 で述べた Phase1 の CPU コスト,Phase2 の とで NMF や SVM(Support Vector Machine),PageRank と Shuffle I/O について考察する.各イテレーションごとの Phase1 いった機械学習アルゴリズムを MapReduce 上で効率的に処理 の CPU Time Spent(ms) を図 12 に,Phase2 の Reduce shuffle できる手法を提案した [7].Nagy らも同様に分散 NMF につい bytes(MB) を図 13 に示す. てブロック単位で行列を分割することで大規模行列にも対応可 Phase1 の CPU time spent(ms) の比較では,従来手法は行 能な分散 NMF の処理手法を提案した [8].また,Li らは Spark (列) ベクトルを配列で保持し処理していたが,差分処理の効率 上でのデータ構造を Carousel Maps に変えることで大規模な 化のため,行 (列) ベクトルごとに ArrayList 形式で保持する 行列分解に対応する手法を提案している [9]. 実装としたため,差分 ∆ の多いイテレーションの前半で CPU 次に,イテレーションの集約について,MapReduce のスキー コストが従来より増加した.また,Phase2 の Reduce shuffle ムを用いながらイテレーション処理を高速化する手法も研究 bytes(MB) においても,差分 ∆ の多いイテレーションの前半 されている.Myung らは数回のイテレーション処理をデータ で I/O が増加するが,行列の収束に伴って,I/O が削減できた. (注 1):http://spark.incubator.apache.org/ ベースにおける JOIN 処理として集約する手法を提案した [10]. Kamvar らは,PageRank 処理を Adaptive に更新することで 収束ベクトルを複数のイテレーション間で用いることで計算コ ストを削減している [6].Adaptive PageRank では,PageRank ベクトルがリニアとなるが,本研究では,行列同士の乗算に応 用する手法を検討し,NMF の更新式の計算を Adaptive に行 う手法を提案した. 行列の傾向に応じた処理やオペレータを最適化する研究に は,Zhang らによる補助行列を用いて計算処理を効率化する手 法 [11] や Sindhwani らによる,辞書学習を用いて行列分解を最 適化する手法がある [12].Yan らは Job 間の Incremental 処理 のデータフローに着目し,ローカリティコントロールを効率化 することで Incremental 処理を高速化する手法を提案した [13]. Ewen らもデータフローに着目し,処理プランを書き換え最適 化を行う手法を提案した [14].本研究では,収束傾向によって Incremental 計算の入力となる更新差分がイテレーションごと に減少する前提を置いているため,ローカリティコントロール を行っていないが,収束傾向が緩やかな行列の処理を行う際に は shuffle 時の偏りが生じるためローカリティコントロールが 有効になる可能性がある.また,Ghoting らは機械学習処理を DML(Declarative Machine learning Language) として定義し, よりプリミティブな処理オペレータに分解して MapReduce 上 での処理を効率化する手法を提案した [15].さらに,Low らは 行列をグラフ表現にし,グラフの並び替えと非同期処理により 処理効率化を図っている [16]. 6. 結 論 分散 NMF は行列分解処理を並列分散環境で行う手法である が,行列のスパース性や基底数に応じて,処理コストが O(nm) で変化する.本研究では分散 NMF 処理において処理時間を改 善するため,Adaptive 計算手法と Incremental 計算手法を提 案した.Adaptive 計算手法では,乗法的更新ルールを適用す るイテレーション処理の過程で行列が収束する性質を利用して, 収束ベクトルの更新ルール適用処理をスキップし,Incremental 計算手法では,前イテレーションで計算した要素の値をベース に,更新差分が発生する非収束要素を加法的に更新する手法で ある.本提案手法を分散 NMF の処理に適用し,Job の処理時 間,従来の分散 NMF との誤差について評価を行った.実験の結 果,行列の収束傾向に基づいた処理時間削減が行え,doc word 行列を用いた実験では従来手法と 1.70%の誤差で 74.9%の処理 時間の改善効果が得られ,従来の約 1/4 の時間での処理が可能 となった. 6. 1 今後の課題 本提案手法の今後の課題として,差分 ∆ の大きさに応じて, Incremental 計算手法の適用を開始するイテレーションを自動 決定するアルゴリズムを導入すること.A 行列の再構築を効率 的に行えるよう,インメモリアーキテクチャやグラフ処理ミド ルウェアを用いるなど,ディスクの I/O に依存しない仕組みを 構築することなどが挙げられる. 文 献 [1] D. Seung and L. Lee, “Algorithms for non-negative matrix factorization,” Advances in neural information processing systems, 2001. [2] C. Liu, H.-c. Yang, J. Fan, L.-W. He, and Y.-M. Wang, “Distributed nonnegative matrix factorization for web-scale dyadic data analysis on mapreduce,” Proceedings of the 19th international conference on World wide web - WWW ’10, p.681, 2010. [3] P. Paatero and U. Tapper, “Positive matrix factorization: A non-negative factor model with optimal utilization of error estimates of data values,” Environmetrics, vol.5, no.2, pp.111–126, 1994. [4] D.D. Lee and H.S. Seung, “Algorithms for non-negative matrix factorization,” In Advances in Neural Information Processing Systems, pp.556–562, 2000. [5] P.O. Hoyer, “Non-negative matrix factorization with sparseness constraints,” J. Mach. Learn. Res., vol.5, pp.1457– 1469, Dec. 2004. [6] S. Kamvar, T. Haveliwala, and G. Golub, “Adaptive methods for the computation of PageRank,” Linear Algebra and its Applications, vol.386, pp.51–65, 2004. [7] S. Liu, P. Flach, and N. Cristianini, “Generic Multiplicative Methods for Implementing Machine Learning Algorithms on MapReduce,” CoRR, 2011. [8] A. Nagy, M. Coppola, and N. Tonellotto, “Parallelization Strategies for Distributed Non Negative Matrix Factorization,” world-comp.org, 2012. [9] B. Li, S. Tata, and Y. Sismanis, “Sparkler: Supporting large-scale matrix factorization,” Proceedings of the 16th International Conference on Extending Database Technology, pp.625–636, 2013. [10] J. Myung and S.-g. Lee, “Matrix chain multiplication via multi-way join algorithms in mapreduce,” Proceedings of the 6th International Conference on Ubiquitous Information Management and Communication, p.53, 2012. [11] Y. Zhang, M. Zhang, Y. Liu, S. Ma, and S. Feng, “Localized matrix factorization for recommendation based on matrix block diagonal forms,” Proceedings of the 22Nd International Conference on World Wide Web, pp.1511–1520, 2013. [12] V. Sindhwani and A. Ghoting, “Large-scale distributed nonnegative sparse coding and sparse dictionary learning,” Proceedings of the 18th ACM SIGKDD international conference on Knowledge discovery and data mining - KDD ’12, p.489, 2012. [13] C. Yan, X. Yang, Z. Yu, M. Li, and X. Li, “IncMR: Incremental Data Processing Based on MapReduce,” 2012 IEEE Fifth International Conference on Cloud Computing, pp.534–541, June 2012. [14] S. Ewen, K. Tzoumas, M. Kaufmann, and V. Markl, “Spinning fast iterative data flows,” Proc. VLDB Endowment, vol.5, no.11, pp.1268–1279, July 2012. [15] A. Ghoting, R. Krishnamurthy, E. Pednault, B. Reinwald, V. Sindhwani, S. Tatikonda, Y. Tian, and S. Vaithyanathan, “SystemML: Declarative machine learning on MapReduce,” 2011 IEEE 27th International Conference on Data Engineering, pp.231–242, April 2011. [16] Y. Low, D. Bickson, J. Gonzalez, C. Guestrin, A. Kyrola, and J.M. Hellerstein, “Distributed graphlab: A framework for machine learning and data mining in the cloud,” Proc. VLDB Endowment, vol.5, no.8, pp.716–727, 2012.
© Copyright 2024