パターンマイニングの新しい落としどころ -クラスタリングを用いたパターンマイニング- 宇野 毅明 (国立情報学研究所 &総合研究大学院大学) 2010年9月5日 IBISML,PRMU,CVIM パターンマイニング • 大規模データを入力し、そのデータに良く現れるパターンを全て見 つける問題 • データから、特徴的な部分を「発見」したいときに、その「候補」を見 つける手法として有益 • データマイニング分野の中心的な問題。たくさんの研究あり • しかし、最近は閉塞感も漂う 本発表 パターンマイニングに新しいパラダイムを導入 (したいですね) パターン マイニング データベース 実験1 ● ● ● ▲ ● 実験2 ▲ ● ● ● ● ● ▲ ▲ 実験3 ▲ 実験4 ▲ ▲ ▲ ▲ ▲ 実験結果 ▲ ● ● ● ● ATGCGCCGTA TAGCGGGTGG TTCGCGTTAG GGATATAAAT GCGCCAAATA ATAATGTATTA TTGAAGGGCG ACAGTCTCTCA ATAAGCGGCT ゲノム情報 パターン • 実験1● ,実験3 ▲ • 実験2● ,実験4● • ATGCAT • 実験2●, 実験3 ▲, 実験4● • 実験2▲ ,実験3 ▲ • CCCGGGTAA . • GGCGTTA . • ATAAGGG . . . . パターンマイニングを総括 (私見です。ご了承下さい) 原始的なモチベーション • もともとのモチベーションは、たぶん、 (大きな)データの局所的な特徴を捉えたい • 全体的に均質ではなく、多種の要素が混在する巨大なデータの解 析が必要になってきたから 単に全体的な分布を捕らえてしまうと、 局所に際だつ特徴は全て埋もれてしまう • 局所的な特徴が得られれば、マイノリティーに対応できる 嗜好的な商品の販売戦略 異常事例の特徴解析 顧客分類、データ分類 .... 問題の定式化 • 次にモデル作り。局所的な特徴とは何か 共通の要因が知りたいから、共通する構造にしましょう 顕著なものが知りたいので、多くの項目に含まれる構造を という流れだと思います。 パターンマイニング (巨大な)データの、閾値以上の項目に含まれる(現れる)、 ある決められたクラスの構造を全て見つける問題 • 以後、apriori、深さ優先など多くの探索手法 ビットマップやFP-tree などデータ構造とアルゴリズム 飽和集合と極大頻出集合など、発展させたモデル が出ます。 問題設定:意外とイケてます • 元のモチベーションが「発見」。なので最適化型の問題設定は有用 性が低く、列挙型が適当 ○ • 大規模データを対象とするので、単純なデータから単純な評価値 で解を見つけるようにしている ○ • 最小サポートというパラメータが存在し、それで見つける解をコント ロールできる ○ • 便利にできている アルゴリズムから見ると • パターンマイニングは、データの巨大さと解の多さから、重たい計 算を要求するため、高速アルゴリズムは必須要因 • アルゴリズムから見ると、パターンマイニングは「列挙問題」 • 列挙の中でも簡単な問題になっているため、楽に設計ができる 単調性、閾値(最小サポート)による制約、単純なアイテム集合 • もし「情報量最大のものk個」なら、これほど流行らなかっただろう (アルゴリズムとモデルの間の、いい落としどころを見つけている) 特徴の定義 が複雑 解析モデル パターン マイニング 指数的に時 間がかかる 列挙 アルゴリズム 既存研究の歴史 • いい落としどころ(新しい研究分野)ができたので、研究は発展 多種の構造データへの対応、頻度の定義、パターンの定義(極大) 探索アルゴリズム、データ構造...など • が、今日はアルゴリズムの話はしません • 最近目につく問題点を、深く議論したいと思います。 最近目につく問題点 • 最近、パターンマイニングの研究は、たこつぼにはまっている気が します。やり尽くされているので、新規の研究は難しいと言うことです いいモデルがなかなか出てこない。いい技術も 出てこない。既存のものを大きく超えることは難しい モデルの単純さゆえに直接的に利用ができない。 副次的に利用するには、道具が複雑すぎる 有益なものを見つけようとすると、解が沢山出てくる。 大量の似た解を処理できない • 昔はきっと、「これができれば」という希望があったと思います また距離が開いてしまった • パターンマイニングは、いい落としどころだったはずだが、いつの まにかアルゴリズムのほうに入ってしまっている (最近の研究はモデルでなく「アルゴリズムの拡張」になっている) • いつの間にか、また「モデルとアルゴリズムの距離」が開いた! • ということは、また新しい「落としどころ」が必要 新たな落としどころを、計算とモデルの両面から考える 特徴の定義 が複雑 解析モデル パターン マイニング 指数的に時 間がかかる パターン マイニング 列挙アル 列挙 ゴリズム アルゴリズム 新しい問題設定とその解法 もう一度モチベーションから • 立ち戻ってみると、もともと「局所的な」「特徴」が見つけたかったの だが、「大量の局所」と「大量の特徴」が見つかってしまっている。 • 少しの(代表的な)局所の、代表的な特徴がわかれば十分だろう • しかし、代表のみを残すために、パターンに制約を付ける、というア プローチは今ひとつうまくいっていない。 多くの面白い局所のパターンを切ってしまう可能性があるため • 飽和集合のように、完全性 を保証しようとすると、少し しか減らせない (臆病すぎ) データ パターンへの制約は妥当か? • 「局所」とは、パターンマイニングの言葉で言えば、 「パターンが出現する項目の集合」 • 「出現集合が他と違うもの」を残したくて、「出現集合が似ているも の」はまとめたい パターンに対する制約ではない!!! パターンに対する制約でうまくゆく訳がない • もっと「出現集合」に 注目して計算すべき 代表は、出現集合に制約 を与えて定義すべき データ 複雑なモデル・手法は、、、 • こういう方向性で問題を考えると、ついつい複雑なモデルを複雑 な手法を使って解く、というパターンになる。 あるいは、ある程度強い仮定を置いて問題を解くことになる (アルゴリズム的な意味です) • 数理的にはいい結果が出せるかもしれないが、利用者にとって は親切でない • だんだん、何をしているのか分からなくなってくる、、、 (最適化の分野、アルゴリズムの分野などで、こういうトピックをいく つか見てきました。) 格言をマネました • 「簡単な問題を解く途中で、難しい問題を解いてはならない。なぜな ら、そこでノイズが発生し精度が減少するからである」 by Vapnik という格言があるそうです。そこで、 • 「単純で頑強な解を求める途中で、複雑で不定な計算を用いては ならない。なぜなら、そこで単純性と頑強性が失われるからである」 by うの • この方針にしたがって、添え字順や計算の順序に振り回されない 手法を考えよう 単純な 構造 難しい 不安定 単純•安定 な解 「見つけ方」の逆転 ・ 頻出パターンは、「局所的」な「特徴」であるが、その見つけ方は、 まず特徴候補を列挙して、どの局所に現れるかを計算している。 定義の流れと逆なので、よく考えると気持ち悪い • まず、「共通な要因を持つ項目の集合」を見つけてから、 「それらに共通する特徴」を見つけるようにできるといい。 定義の流れに合っているので、自然な感じ 「無駄なパターンを見つけなく」なってくれるとうれしい データ データ もう、あるんじゃないですか? • この方法、とどのつまりは類似性に基づいてクラスタリングして、 共通するパターンを見つけよう、ということ。 Q: すでにあるんじゃないですか? • A: あります。データをクラスタリングして、その中心を取って代 表とするような、パターン学習は多くあります。 • が、心意気が違います。 「クラスタリング」が「分類」なの が問題です 思考実験 • Webページ(サイト)を、リンク先の類似性でクラスタリングする + g○ogle, Yah○o, amaz○n にリンクしているページ、という巨 大クラスタができそう。で、これら3サイトが特徴 これら3サイトにリンクしていると、このクラスタに吸収されて しまい、マイナーなトピックで類似している人々が全滅してしまう • 宇野のページは、どのページも、トップページ、英語版、NII、にリ ンクしているので、強力に全部似ているわけですが、「アルゴリズ ム関係にリンクを張っているサイト」でくくって欲しいのです • マイニングの基本「自明でない、深いパターンを見つけたい」とい う心意気が否定されるモデリングになっているので、流行らない (?) なんとかしようとすると • 例えば、クラスタ数を変えれば、隠れたクラスタも見つけられるかも しかし、クラスタ数をあらかじめ決めるのが難しい • 雰囲気的には、頻度を決めうちしてパターンマイニングをしている ようなもの。全てのクラスタ数でのクラスタを列挙すればいいか。 • この問題、たぶんマルチラベルクラスタリングだが、ちょっと雰囲気 が違う感じがする (ラベルではなく、グループ分けが知りたい) (マルチラベル自体、研究が少なく、 単純でぱっとした手法は難しそう) クリークによる局所構造発見 • 共通した構造を持つ項目の集合 どの2つの項目も共通する構造を持つ (類似性、と呼んでおく) どの2つの項目も類似性を持つ項目集合を見つけよう • 「類似する項目」の間に枝が張ってあると思うと、 局所的な項目集合 (極大)クリーク • 極大クリークを列挙することで、 「類似する項目集合」を見つけてしまおう (クリークは高速列挙できる) クリークマイニングの弱点 • クリークは基本的に局所構造を表すが、歓迎されないものもある ★ とてもよく似たクリークは不要 ▲ クリークとクリークを橋渡しする構造も(小さければ)不要 • それぞれ、★ クリークに枝欠損があるとき、▲ クリーク同士が近 いとき、に多発する クリーク クリーク クリーク クリ ーク クリ ーク クリ ーク クリ ーク 類似構造を考えると • ★ クリークの枝欠損、▲ 近いクリーク、は多発しないだろう ★ A と B は多くのC に対して共に共通の構造を持つ A と B も共通の構造を持つ可能性が高いだろう ▲局所構造の多くが互いに共通の構造を持つ 全体が共通の構造を持ちそうだ • つまり、共通の構造を持つもの(似ている もの)が結ばれたグラフには、それほど多く の極大クリークはないだろう、と推測される クリーク クリ ーク クリ ーク データクリーニング • 逆に、積極的に不利な構造をグラフから取り除くと、より局所をはっ きりさせられる (小さなクリークにしか含まれない枝は消していい) -A と B 両方に隣接する頂点が多数あるなら、AB 間に枝をはる ★ クリークの枝欠損がなくなる -A と B 両方に隣接する頂点が少しなら、AB 間の枝を切る ▲ 近いクリークを結ぶ枝が無くなる クリーク • 極大クリークの数が非常に小さい グラフができるものと期待される クリ ーク クリ ーク 共通部分を取ってパターンを作る • 局所的な項目グループが得られたら、それら項目の共通部分を 取ればパターンが得られる、 だろう。 • 共通部分が素直に取れないと、共通部分取得自体が一つの選 択問題になるが、ここは自然に行うことを目指す (例えば頻度チャートとか、多数決による決定がある) 1, 2, 3, 4, 5, 6 1, 2, 3, 5 1, 2, 3, 4 ------------1,2,3,(4),(5) 1, 2, 3, 4 1, 2, 5, 6 3, 4, 5, 6 -------------------------(1),(2),(3),(4),(5),(6) 計算的な課題 • 類似する項目の組を全て見つけ、近接グラフを作る アイテムセットマイニングの場合、大きさ2のアイテム集合 を見つける問題になる A: 1, 2, 3, 4, 5, 6 B: 1, 2, 3, 5 C: 1, 2, 3, 4 • 極大クリーク列挙は、いろいろな方法で高速に列挙できる • 共通部分を取るところは、多数決を取っているだけなので、たいし た時間はかからない というわけで、高速計算が可能なモデル アルゴリズム的な特性 • アルゴリズムから見た解法の特性は、と言うと、 ① 仕組みがシンプル 類似性の列挙・クリーク列挙・多数決、どれも比較的単純 なので、 ② 変化への対応が簡単 類似項目の列挙と多数決を組み込めばすぐに改良できる ① 結果がロバスト 変数の添え字順などによる変化がない パラメータの変化による解の変化も、ある程度少ないだろう。 (クリークが大きくなったり小さくなったりするだけなので) ねらっているところに、うまく着陸できている、か? 計算実験1:Webリンクデータ •日本のWebリンクデータ (from 東大喜連川研究室) - ノード数 550万、枝数1300万 (サイト単位に加工済み) • Web はデータが大きいために、手法にある程度流れがある + データ全体を簡単な手法で解析 ((k)連結成分、強連結成分、ページランク、最大流、、) + データをしぼって深い解析 (評判分析、リンク予測、、、) (Webテキストマイニングは、リンク解析ではない) • クリークを列挙して、コミュニティーを見つける研究もある (が、解の多さが問題) 計算実験1:Webリンクデータ • クラスタリングしようと思って極大クリークを列挙すると、 数が大きすぎて列挙できない リンク先の類似性でデータを作り直してみる • 20個以上のリンク先を共有するものを「似ている」とし、大きさ 20以上の極大クリークを列挙 極大クリーク数が約 8000個に減少! ほとんどがスパムのグループ、、、 • 計算時間はおよそ10分(大きさ2の頻出集合を見つけているの と等価)。実用に十分耐えうる 解の分布 • 通常のパターンマイニング(極大クリーク列挙)では、解が大 きくなるにつれ指数的にその数が増える • 本手法の場合、非常に緩やかに解数が増加し、さらに非常に 大きな解がぽつぽつと見つかる 大きな解を見つけるために要する時間は格段に短い 非自明な解を見つけやすい??? 極大クリーク数 • ある程度、情報をアブストラクト することに成功しているのだろう 解の大きさ 実験2:BMS-WebView2 (クリック) • KDDで使われたクリックストリームのベンチマークデータ - アイテム数3300,トランザクション数 7.7万 平均サイズ 5 • 頻出度100で、頻出集合が1万個ほど、50で7万個ほど • まずは、アイテムの類似性によるクラスタを見てみる • 100(50)以上のトランザクションに共通して含まれていたら「似て いる」として本手法を適用 極大クリークが1個だけ! (全部が含まれる) ある程度頻出するアイテム全てが似てしまっている • 計算時間も意外と長い(10分。頻出集合は10秒) 原因の推測 • クリックストリームデータには、ある種の特徴があるだろう - トップページから順にリンクをつついてページをたどる - だいたいのサイトはツリー構造をしている ほとんどの項目に共通して含まれるページが自然と多くなる (ツリーの根に近いページは、多くの項目に含まれる) 必然的に、多くのページが、多くの項目に共通して含まれてし まう 対策 • たくさんの項目に含まれるページがあって、それが良くない 頻出度がある程度以上高いアイテムは無視しよう • でもやっぱりだめ。極大クリークは一個だけ (主要なページは、行き来する人がたくさんいて、自然と 同一クラスタに入ってしまうのであろう。) • こちらではうまくいかない。やはり「特徴のある局所を見つける」 ほうがいいのだろう。 トランザクションをクラスタリングして、その共通部分を取る トランザクション クラスタリング • 10個のアイテムを共有するトランザクションが似てるとして実行 • でもやっぱりだめ。極大クリークは一個だけ (主要なページは、行き来する人がたくさんいて、自然と 同一クラスタに入ってしまうのであろう。) • また、頻出度が高いアイテムを無視してみる (頻出度100以上) 大きさ10以上のクリークは1900個ほど • データクリーニングをすると、余計に個数が増えてしまう。。。 54000個ほど。中途半端に頂点をつなぐことで、かえって似 たクリークが増えてしまっているようだ 共通部分を取る • 各クラスタの共通部分を取って、頻度チャートを作る (1916:0.91) (1180:0.91) (1898:0.73) (1916:1.00) (1180:0.82) (847:0.73) (1898:0.64) (2272:1.00) (2382:0.91) (2258:0.91) (2628:1.00) (2247:1.00) (2789:1.00) (1551:1.00) (2342:0.90) (2775:0.80) (2469:0.70) (2797:0.60) (3047:0.60) (2704:0.50) (2841:0.50) (2247:1.00) (2342:0.90) (2789:0.90) (2628:0.80) (2775:0.80) (1551:0.80) (2469:0.70) (2214:0.50) (3047:0.50) (2797:0.50) • 共通性が高いものが多い、パターンも大きめ • 100% 近いものが多いので、比較的安定しているだろう • 同一なパターンで頻度チャートがビミョーに違うものが沢山出る (同一なものを除くと個数が半分ぐらいになる) まとめ • 既存のパターンマイニングの定式化に問題定義 • クラスタリングを用いて共通部分を取るという、新しいパラダイム の提案 • アイテムセットマイニングでの実証 単純な手法の連結+α (マジョリティ計算)で実現可能 • 計算実験 (テールの長い解分布、頻出アイテムの無視) 今後の課題 • 哲学の浸透 • 他のパターンマイニング問題での応用 • (マルチラベル)クラスタリングへの展開 頻出文字列の発見 頻出文字列 • (巨大な)文字列データから、頻出する文字列を見つけたい (頻出する=あちこちに現れる) • suffix array やradix sort などで、ほぼ線形時間で、多数現れる 部分文字列は見つけられる (閾値以上の回数現れる者の中で 極大なもの、といった設定もOK) • しかし、アイテムセットのように、「現れる」ことが包含関係で表 されているものに比べると、自由度が低い ( = きっちりと全体が現れるものしか見つけられない) • ゲノムなどエラーのあるデータ、ひな形や定型文書のような一 部変化するデータでは、今ひとつ あいまい性の導入 • エラーや、部分的な変化に対応するには、厳密に一致する文 字列だけでなく、曖昧マッチングの意味であちこちに現れる文字 列を見つける必要がある • 曖昧性の尺度は、ハミング距離、編集距離、固定回数のギャ ップ、マルチプルアラインメントのスコアが小さい、など • しかし、こうすると、短い頻出文字列がたくさん存在してしまう • いくら高速なアルゴリズムを作っても、これらを全部列挙する のは無理だし、そもそも見つけてもうれしくない • 困った困った、ので、違うアプローチを考える 不都合をたっぷり享受 • あいまい頻出文字列問題は、パターンマイニングの負の側面 をたっぷりと享受している 解数の爆発、 解の類似・冗長性、 無意味な解の氾濫 長さ固定 & 多数決 • 長さを固定すれば、今回の枠組みには収まる 文字列の各所から、固定長の文字列を取得 類似する文字列の組を列挙してクラスタリング 全部に共通する構造(マジョリティ)を見つ ABCDHFG けて、それをパターンとみなす。 AABDEFH ABCDEFH • パターンは多数決で決めれば良い BBHDEGH ABHDHFG • 長さはある程度短くないと、挿入削除が面倒 AAHDEFG 短い類似部分列の発見には sachica を利用 ------AB*DEF[GH] 類似する部分列の発見 (sachica) 問題: 各項目が同じ長さ l の短い文字列(50文字程度)であるデ ータベースを入力したときに、文字列のペアで異なり数(ハミング 距離)が d 文字以下である組を全て見つけよ • 長い文字列の比較には、各ポジションを先頭とする長さ l の部 分文字列を全てに対してこの問題を解く。 (似ている部分列はペアを沢山含むところとして見つかる) ATGCCGCG GCGTGTAC GCCTCTAT TGCGTTTC TGTAATGA ... • ATGCCGCG と AAGCCGCC • GCCTCTAT と GCTTCTAA • TGTAATGA と GGTAATGG ... 実験してみると • クリーク数は意外と小さく、大きさ/個数のヒストグラムも特殊 (ロングテールよりテールが立っている) • 同じもの、続いているものが沢山ある GAATAGAATCGAATGGAATGGCATCGAATGGAATGGAATG AATAGAATCGAATGGAATGGCATCGAATGGAATGGAATGG ATAGAATCGAATGGAATGGCATCGAATGGAATGGAATGGA TAGAATCGAATGGAATGGCATCGAATGGAATGGAATGGAA AGAATCGAATGGAATGGCATCGAATGGAATGGAATGGAAT GAATCGAATGGAATGGCATCGAATGGAATGGAATGGAATG GGAATAGAATGGAATGGAGTGTAATGGAAAGATATCGAAT GAATAGAATGGAATGGAGTGTAATGGAAAGATATCGAATG AATAGAATGGAATGGAGTGTAATGGAAAGATATCGAATGG ATAGAATGGAATGGAGTGTAATGGAAAGATATCGAATGGA TAGAATGGAATGGAGTGTAATGGAAAGATATCGAATGGAA ・・・・・ • 同じものは1つに、続いているものはつなげてしまいたい クリークをつなげる • 重なっているクリークとは { 1, 6, 30, 51, 85 } { 2, 31, 52, 74, 86 } のように、中身を1つずらしたら多くの位置が同一になるもの • クリークの集合と、クリークの中身を1増じたものを比較し、共 通部分が大きいものの組を見つけると、重なるものの検出がで きる • 共通部分の大きいペアの発見 大きさ2の頻出集合発見 なので、簡単・短時間 ヒューリスティックによるつなげ方 • 重なり方の関係は、有向グラフになる • クリークに対して、そのクリークが出枝で隣接するクリークの集 合を、続きクリーク集合と呼ぶ • つなげるときには ① 入り次数が0の頂点 v を見つけ、v と続きクリーク集合をある 程度(半分以上)共有するクリークの集合を見つける(S とする) ② S の続きクリーク集合の和集合を求める。S のクリークの続 きクリーク集合の最大値が、和集合の半分より小さければ、分 岐していると見なす。(そこまでの共通部分を出力) ③ 分岐していなければ、S を和集合として ② へ つながった解 • ヒトY染色体頭から200万文字、50文字中違い2、頻出度10 GTGGCGGGCGCCTGTAGTCCCAGCTACT#GGGAGGCTGAGGCAGGAGAAT GTGGTTTTGATTTGCATTTCTCTGATGGCCAGTGATGATGAGCATTTTTTCATGTGT GTTTCTTTTGCTGTGCAGAAGCTCTTTAGTTTAATTAGATCCCATTTGTCAATTTTG GTTTTTTTCTTGTAAATTTGTTTGAGTTCATTGTAGATTCTGGATATTAGCCCTTTGT CAGATGAGTAGGTTGC TAAAAAATGATAAAGGGGATATCACCACCGATCCCACAGAAATACAAACTACCA TAAGTCTTTAATCCATCTTGAATT#ATTTTTGTATAAGGTGTAAGGAAGG TACCATTCAGGACATAGGCATGGGCAAGGACTTCATGTCTAAAACACCAAAA • 全部で122個。この手の問題としては、解の数が非常に小さい つながった解2 • 日本語webテキスト、100万文字、20文字中違い2、頻出度20 #まじめに恋人#結婚相手を探している#のための出会い系サイトです。# #・#105(フリーダイヤル)052・48#・75#7 ##700 1,000 2,000 3,000 10,000円以## ###All #ights #eserved.## ・・・・・・・・・・・・・・・・・・・・ ス腕時計激安通販|格安最安値通販へ【ポールスミス 腕時計 PS#0 金土123456789101112131415161718192 02122232425262728293031 年10月200#年09月200#年08月200 名:女性1#名のご参加で、5組の成立となりました。お • 解は38個 ところが • データが大きくなると、うまく動きません。 ずれたクリークが沢山あるので、列挙が大変。 ネットワークも必然的に密 • クリーク発見が大変 クラスタリングが大変 • もう少し楽なクラスタリング手法を用いよう ☆ 連結成分? すごく大きなクラスタが見つかってしまう ☆ ニューマンクラスタリング等? 密な部分を固まりと見なすため、すごく大きな クラスタが出てきそう 簡単に解決 • 安定的ではないが、もっと単純に行ってみよう 次数最大の 部分文字列(似たものが最も沢山ある) を芯に据えて、そこから左右に伸ばしてみよう 分布の山の真ん中にある頂上をとらえているイメージ • まず芯と似ている部分列を全て並べ、似ているものが多い間 左右に伸ばす。似ているものが少なくなったら、その時点でやめ る。 • 伸ばしきったところで、一つパターンが得られる。その部分列と なってしまったものは除去し、同じように繰り返す。 頻出文字列を核にする ① 最も似ている物が多いもの S を見つける ② S と似ている物を全て集める ( S1,…,Sm) ③ それらをそろえて並べ、文字が共通している部分を抜き出す 次に進む • 一番良く現れる物について頻出文字列を見つけたら、次に「2番 目に良く現れる文字列」について同じことをする • ただし、頻出文字列を見つけるときに使った文字列の部分列で、 「見つけた頻出文字列」の一部になっているものは「もう使ったよ う」という意味を込めて消去 • どんどん候補が消されるので、それほど多くの解は見つからない • 仕組みが単純で、計算も速い • それなりに似通っていない解が見つかる 計算結果 • マウス13番染色体 Genic1 での実験結果(150万文字)。長さ30異 なり数2、多数決の閾値は 70%。10回以上現れるもののみ注目 #T#GCAAAGGCTTT#CCACATTGATTACATTCATAAGGTTTCTCTCCAGTATGGGTTCTTTTATGATATCTGA #TTGCAAAGGCTTTACCACATTGATTACATTCATAAGGTTT#TCTCCAGTATGG#TTCTTTTATGATATCTGA GAC#A#TGTGACAGGAAAAGGCTTTACCACATTGATTACATTCATAAGGTTTCTCTCCAGTATGGGTTCTTTT GATTACTGTGA#AGGAAAAGGCTTTACCACATTGATTACATTCATAAGGTTTCTCTCCAGTATGGGTTCTTTT #TGATATCTGAGACTA#TGTGACAGGAAAAGGCTTT#CCACATTGATTACATTCATAAGGTTTCTCTCCAGTA ATGA#ATTGGAGAT#A TGGGTTCTTTTATGATAT#TGAGAC#A #TCTCTGAA#AAAGAAAT#AAAGAAGATCTCAGAAGATGGAAAGATCTCCCATGCTCAT#GATTGGCAGGATC AATATAGTAAAAATGGCTATCTTGCCAAAAGCAATCTACAGATTCAATGCAATCCCCATCAAAAT#CCAACT# AATTCTTCA • # は多数決が決まらない場所、計算時間は10秒ほど 計算結果 日本語テキスト • さきほどと同じ日本語テキスト、100万文字、20文字異なり2、次 数(頻出度)20以上 ##,000円までの商品#,000円までの商品#,000円までの商品 #,000円までの商品#,000円までの商品# ###月日月火水木金土12345678910111213141516171 819202122232425262728293031## ###月日月火水木金土12345678910111213141516171 819202122232425262728293031## ###Category:激安ポールスミス腕時計激安通販|格安最安値 通販へ【ポールスミス 腕時計 PS#0# • 解は17個。だいぶ様相が変わりました。よりざっくり取っているの で、解が減っているのでしょう 計算結果 日本語テキスト • 異なりを4に、次数(頻出度)を10に変更したら、出てきました。 #組の成立となりました。## #月1#日(土)男性12名:女性1#名のご参 加で、5組の成立となりました。## 4月7日(土)男性#0名:女性# ##,###円(税別、送料別)Paul Smith Men’s/ポールスミス メンズ サイズフェイス:H約4.5cm×W約3.#cm、厚み約#.#cm(リューズ除 く)ベルト:幅約2.#cm腕まわり:最大約### #年0#月200#年0#月2006年0#月2006年0#月2006年0#月2006 年0#月2006年0#月200#年0#月200#年12月2005年… • 解は29個。感度が落ちるので、少し低い頻出度、大きな異なり数 で行う必要があるようです。 調子に乗って • 調子に乗って、さらに大きな問題を解いてみました。 - 日本語Webテキスト 500MB(2.5億文字程度) - 頻出度10 長さ20、異なり2 • 計算時間30分ほどで、頻出文字列が6000個ほど。使用メモリは 600MBほど (入力データの1.3倍ほど) • ほとんどはなんらかのテンプレートで、完全に一致しているようだ • ときどき、日付などのゆらぎを吸収したパターンが見つかる • 異なり数を4にすると2時間。ちょっと大きな異なりも見つける #####[アウトレットセール]メーカー販売価格#,##0円(税込)acc aplus特価#,##0円(税込)# まとめ • 類似部分列の組を使って、頻出文字列発見問題を、クラスタリン グを用いて解く方法を明確化 • 極大クリーク列挙を用いた解法と、次数最大部分列を芯にしたよ り単純かつ高速な解法の提案 • 計算実験での良好な結果 今後の課題 • 「安定的な、重なりを許すクラスタリング」をベースにした頻出パ ターン発見の拡大 (系列、グラフ、幾何データ、、、) • 他のアプローチ(落としどころ)はないですか? • 数理や応用では、どう解釈するのだろう???
© Copyright 2024 ExpyDoc