• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
PFI Seminar 2012/03/15 カーネルとハッシュの機械学習
 

PFI Seminar 2012/03/15 カーネルとハッシュの機械学習

on

  • 6,115 views

 

Statistics

Views

Total Views
6,115
Views on SlideShare
6,022
Embed Views
93

Actions

Likes
22
Downloads
98
Comments
0

4 Embeds 93

https://twitter.com 81
http://us-w1.rockmelt.com 10
https://si0.twimg.com 1
http://twitter.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    PFI Seminar 2012/03/15 カーネルとハッシュの機械学習 PFI Seminar 2012/03/15 カーネルとハッシュの機械学習 Presentation Transcript

    • カーネルとハッシュの機械学習 PFIセミナー 2012/03/15 得居 誠也
    • 自己紹介得居 誠也 | Tokui, Seiya東京大学 理学部 数学科 @beam2d同 情報理工 数理情報学 M2 近傍探索のためのハッシュの学習PFIアルバイト(一年半くらい) 来月から正社員
    • 今日のおはなしハッシュ• 近傍探索:クエリに類似したデータを 効率良く取り出す• 機械学習:分類や回帰を効率良く学習するあると良い知識• 線形学習器を一つでも知っていると わかりやすいと思います
    • 内容• カーネルの簡単な説明(復習)• ハッシュ関数の導入• 近傍探索に使えるハッシュ – データのハッシュ – いろいろな手法を紹介 (LSH系, カーネル, ハッシュの学習)• 機械学習に使えるハッシュ – 素性のハッシュ – ハッシュされたデータの学習
    • 特徴ベクトルデータを実ベクトルで表す Feature ゲーム hashing 面白い おいしい ……( 1 0 1 1 0 …… )特徴空間で線形演算と内積を使って学習を行う
    • 特徴ベクトルの抽象化データを特徴空間の元に写像 ここに数式を入力します。 は explicit に表せるとは限らない (e.g. 無限次元)
    • 内積の抽象化(カーネル)カーネル関数特徴空間での内積を直接計算するカーネルトリック (kernel trick)データの線形とカーネルだけを使って学習を行う (特徴空間を陽に扱わない)
    • カーネルの例線形カーネル(ふつうの内積)多項式カーネルRBFカーネルJaccard係数 (resemblance)
    • ハッシュ関数ある集合の元を何らかの性質をだいたい保ちながら低次元な離散ベクトルにつぶす関数e.g.) “いわゆる”ハッシュ関数異なる元の区別をだいたい保つ(上の定義の特殊なケース)注意関数なので, ハッシュ関数は決定的(同じ元を同じ値にうつす)
    • 紹介するハッシュ今日のはなしは二つにわかれます近傍探索に使えるハッシュ類似度・類似関係をだいたい保つ機械学習に使えるハッシュ内積(カーネル)をだいたい保ついろいろな手法を紹介します
    • 類似度・類似関係をだいたい保つ近傍探索に使えるハッシュ
    • ハッシュを使った近傍探索生データではなく, ハッシュを探索• メモリ効率がよい• 類似度計算が高速 – 単純なハミング距離ならXOR, POPCNT• 決まった範囲だけ探索すれば O(1) 時間 – e.g. ハミング距離 ≦2 の範囲だけ探索
    • 近傍探索に使えるハッシュ (ごく一部) 乱択, データ非依存 LSH MinHash, b-Bit MinHash Kernelized LSH Anchor Graph Hashing Spectral Hashing Self-Taught Hashing 最適化, データ依存
    • Locality Sensitive Hashing (LSH) [Indyk+, STOC’98; Charikar, STOC’02]Arccos類似度の場合• 原点を通る超平面を一様に r 個サンプリング• 特徴ベクトルが各超平面のどちら側にいるかで 0/1 ベクトルに変換する ランダムな超平面が 二つの点の間を通る確率は 他の類似度関数に対するバージョンもある [Andoni & Indyk, ‘08]
    • MinHash, b-Bit Minwise Hashing [Broder, SEQUENCES’97; Li+, WWW’10]Jaccard係数を近似するLSHとその変形• 単語にランダムなIDを振る• 各文書中の単語の最小IDを求める (MinHash)• 最小IDの下位 b ビットだけ保存する• これを r/b 回行う (ハミング距離は r/b 次元ベクトルとして計算) ランダムIDの最小値が一致 する確率は
    • Kernelized LSH [Kulis+, ICCV’09]カーネルの特徴空間でのLSH• : カーネル関数• をランダムに選ぶ• を計算する• 次のようなハッシュ関数を r 個つくる := ( のランダムな t 列の和) として (できた r 次元ベクトルを正負で二値化する)
    • Spectral Hashing [Weiss+, NIPS’08]Self-Taught Hashing [Zhang+, SIGIR’10]類似度グラフの最小バランスカットを使う 類似度行列 次数行列 グラフラプラシアン または 重み付き無向 k-近傍グラフ or 重みなし無向 ε-近傍グラフ の, 小さい方から 2, …, r+1 番目の固有値に対応する固有ベクトルを使う (0 または中央値で二値化する) ハッシュ関数は SVM で学習する (Self-Taught)
    • Anchor Graph Hashing [Liu+, ICML’11]アンカーグラフを使った Spectral Hashing K-Means で m 個のアンカーを配置, サンプル・アンカー間の k近傍グラフをつくる この2部グラフの重み行列 (各行の和を 1 に正規化しておく) を主成分分析(PCA)して正負で二値化するアルゴリズム全体がデータ数の線形時間
    • 内積(カーネル)をだいたい保つ機械学習に使えるハッシュ
    • 復習:カーネルデータを特徴空間に写像カーネル関数特徴空間での内積を直接計算するカーネルトリックデータの線形結合とカーネルだけを使って学習を行う (特徴空間を陽に扱わない)
    • ハッシュを使った機械学習 高次元で疎なデータ カーネル ハッシュを 近似 使った変換 内積 低次元で疎なデータ
    • Feature Hashing [Weinberger+, ICML’09]素性をハッシュする (cf. Count(-Min) Sketch) 素性 ハッシュ値 Feature + 0 ゲーム + 1 hashing - 2 + 面白い 3 - おいしい …… …… m 内積 内積 期待値が一致, 分散もバウンドあり
    • Hashing trick!高次元な素性ベクトルを作る必要がない(単語を直接ハッシュしちゃう)カーネルトリック高次元 (or 無限次元) な特徴ベクトルを作らずに,カーネルを使ってメモリベース学習ハッシングトリック高次元な特徴ベクトルを作らずに,カーネルを近似する空間で線形学習
    • ハッシュ値の特徴ベクトル化 [Li+, NIPS’11]b-Bit MinHash のハッシュ値をベクトル化 b = 2 で長さ r = 10 の場合の例 01 00 11 10 010010 0001 1000 0100 001011 10 01 00 11 10 01 00 11 10 01 00 11 10 01 00 11 10 01 00 次元のベクトルに変換
    • ハッシュ値の特徴ベクトル化 [Li+, NIPS’11] b = 2 で長さ r = 10 の場合の例 01 00 11 10 010010 0001 1000 0100 001011 10 01 00 11 10 01 00 11 10 01 00 11 10 01 00 11 10 01 00• 変換後のベクトルの内積 = b ビット毎のハミング距離• 普通のハミング距離でも b = 1 とみなせば適用できる• 「ハミング距離カーネル」の特徴ベクトル
    • 適用例 [Li+, NIPS’11][Li+, NIPS’11] では b-Bit MinHash に対して特徴ベクトル化を行い, LIBLINEAR にかけている• 線形だが, Jaccard係数カーネルでの学習になる• スパム判定に用いている – 元データは 24GB, 1660万次元 – b=8, r/b=200 でデータは 70MB に – このサイズで元データの線形学習と同じくらいの 精度が出せる• ランダム置換が空間・速度的にボトルネックになる – 1660万次元で 200 個の置換だと 12GB – ランダム置換をランダムハッシュに置き換えれば解消, オンライン化もできる (精度がどれくらい落ちるかは未検証)
    • まとめ近傍探索に使えるハッシュがある• 乱択アルゴリズム (LSH系)• カーネル化 (Kernelized LSH)• 最適化を使う (Spectral Hashing系)ハッシュは機械学習にも使える• Feature Hashing は線形な内積を保存• ハッシュのベクトル化を使えば, 類似度を 保存するハッシュを線形学習できる
    • ご清聴ありがとうございました
    • 参考文献A. Andoni and P. Indyk. Near-optimal hashing algorithms for approximatenearest neighbor in high dimensions. Comm. of the ACM, vol.51, no. 1, pp.117-122, 2008.A. Broder. On the resemblance and containment of documents. SEQUENCES,1997.M. Charikar. Similarity estimation techniques from rounding. STOC, 2002.P. Indyk, R. Motwani. Approximate nearest neighbor: towards removing thecurse of dimensionality. STOC, 1998.B. Kullis and K. Grauman. Kernelized locality-sensitive hashing for scalableimage search. ICCV, 2009.P. Li and A. C. König. b-Bit minwise hashing. WWW, 2010.P. Li and A. Shrivastava. Hashing algorithms for large-scale learning. NIPS,2011.W. Liu, J. Wang, S. Kumar and S.-F. Chang. Hashing with graphs. ICML, 2011.K. Weinberger, A. Dasgupta, J. Langford, A. Smola and J. Attenberg. Featurehashing for large scale multitask learning. ICML, 2009.Y. Weiss, A. Torralba and R. Fergus. Spectral hashing. NIPS, 2008.D. Zhang, J. Wang, D. Cai and J. Lu. Self-taught hashing for fast similaritysearch. SIGIR, 2010.