はじめまして伊藤です。1月から PFI で働いてます。 今回は関連事例の抽出技術についてお話しします。関連事例の抽出は推薦(レコメンド)サービス等で利用される技術です。ここで事例は扱う対象によって異なります。対象が文書集合であれば、事例は文書を表しますし、E-コマースサービスのログデータであれば、サービスを利用するユーザを表します。 関連事例の抽出技術はデータマイニング分野を含め多くの分野で盛んに研究がなされていて、関連文献をリストアップするだけでも大変です。私は学生時代からずっと推薦技術に関する研究をしてきたのですが、卒業後もその年々の重要そうな(自分が興味が持てる)論文を選んで勉強してます。では推薦関係で調査しておくべき会議とはどのようなものがあるでしょうか。私の場合以下の会議で受理された論文をチェックしています(他におすすめがあれば、お知らせいただけると幸いです)。 データベース分野
最近私の周辺で簡潔データ構造に興味を持つ人が増えてきた。簡潔データ構造といえばGoogle日本語入力でも使われている話題の新技術。自然言語処理界隈で機械学習の次にブームになるのはこれだ!と個人的に思っている。 というわけで入門用の資料をまとめてみた。 簡潔データ構造では、すべての基礎である簡潔ビットベクトルがあって、その上に応用として簡潔木(LOUDSなど。Google日本語入力で利用されている)、簡潔文字列(ウェーブレット木など。FM-Indexに利用されている)がある。最近ではこれらより複雑なデータ構造に対する簡潔構造も研究されている。 ということをふまえて以下の資料を読むと良い。 Efficient dictionary and language model compression for input method editors Taku Kudo et al. Google日本語
香川県高松市にて大規模データ処理,特に今年は 簡潔データ構造に重きが置かれた国際会議ALSIP2011(Second Workshop on Algorithms for Large-Scale Information Processing in Knowledge Discovery)が開催されました.ALSIP 2011 私は参加していませんが,招待講演についてはスライドが公開されており,大変興味深い資料となっているので是非一読をお勧めします.定兼 邦彦 - 簡潔データ構造講義資料 - ReaD & Researchmap 文書解析のための簡潔データ構造 : Preferred Research id:echizen_tmさんがブログに参加報告を書かれていて非常に羨ましいです.でも私が行っても事前知識がなさすぎてついていけなかった可能性が高いので,精進します.ALSIP2011に参加し
hello mum");a.close()},find_slide_number:function(e){var c=e.indexOf("#");if(c<0){return 0}var b=unescape(e.substr(c+1));var f=document.getElementById(b);if(!f){var d=/\((\d)+\)/;if(b.match(d)){var a=parseInt(b.substring(1,b.length-1));if(a>this.slides.length){a=1}if(--a<0){a=0}return a}d=/\[(\d)+\]/;if(b.match(d)){var a=parseInt(b.substring(1,b.length-1));if(a>this.slides.length){a=1}if(--a<0){a=
grn_dat - 参照ロックフリーなダブル配列 注意: トライやダブル配列に関する知識があっても何のことやらサッパリ分からないかもしれません. written by Susumu Yata. はじめに grn_dat は,キーと ID の関連付けに用いるモジュール grn_pat, grn_hash の新しい仲間です.Common prefix search と Predictive search をサポートしつつ,高速な参照を実現します.その代わり,メモリ消費が大きいという欠点があります.特性を簡単にまとめると以下のようになります. モジュール名 データ構造 検索機能 時間効率 空間効率 grn_pat パトリシアトライ ◎ △ ◎ grn_hash ハッシュ表 △ ◎ ○ grn_dat ダブル配列 ○ ○ △ grn_dat の役割は,grn_pat, grn_hash の隙間を埋
今回は集合の簡潔構造について話をする。今回で簡潔構造の初歩的な話は一段落となるので、いままでの話をまとめつつ集合の簡潔構造とは?どういうことに使えるのか?という話をする。 集合の簡潔構造は大変重要で、ここを理解すれば簡潔構造の基礎はだいたいOKといえる。 前回までの記事: 簡潔データ構造超入門 〜つくって学ぶ簡潔ビットベクトル〜 - EchizenBlog-Zwei 簡潔データ構造超入門II 〜ちょっとだけ実用的な簡潔ビットベクトル〜 - EchizenBlog-Zwei 簡潔データ構造超入門III 〜簡潔ビットベクトルで転置インデックスを効率的に実装する〜 - EchizenBlog-Zwei 簡潔データ構造超入門IV 〜LOUDSというメモリ効率のよい木構造の話(準備編)〜 - EchizenBlog-Zwei 簡潔データ構造超入門V 〜LOUDSというメモリ効率のよい木構造の話(本編
最近スマートフォンに乗り換えました。徳永です。 C++は世に数あるプログラミング言語の中では比較的メモリを食わない方ですが、それでもメモリ使用量が問題となる場合はあります。そのような場合の対処方法はいくつか有りますが、手軽に選択できる方法として、今日はSTLのmapやunordered_mapと同じ感じで使えるデータ構造をいくつか紹介したい思います。 以下、計算量の表記をする際には、要素数をnとします。 Loki::AssocVector LokiはModern C++ Designという本の作者であるAndrei Alexandrescuが開発したライブラリです。AssocVectorはその中の一つとして提供されているクラスで、vector<pair<key, value> >という型のベクターをkeyでソートした状態で持つ事により、二分探索による要素の探索を可能にしたデータ構造です。こ
ACL2011の論文で「Faster and Smaller N-Gram Language Models」というのが気になったので読んでみた。 ACL Anthology » P11 Faster and Smaller N-Gram Language Models Adam Pauls, Dan Klein; 2011 本論文はこれまで提案されている言語モデルの圧縮・高速化の手法を実装して比較したよ、というもの。各種法が丁寧に解説されており、性能比較もよく知られているツールであるSRILMをベースラインとして行っているので参考になる。サーベイ論文として優れていると感じた。 本論文で紹介されている手法はモデルのサイズ圧縮と高速化の2点に関するもの。 まずはサイズ圧縮について。これはTRIEを使うことで各Nグラムの共通したプレフィクスを圧縮するのが基本らしい。でTRIEについてはノードの持
I did not read the paper yet, but COW btrees are interesting for practical reasons since it is possible to update the tree just writing in append-only mode, that is nearly the only way to avoid fsync (or alike) but still avoiding trivial corruptions (the new root node is always written at the end of the update). Otherwise you either use fsync as a write barrier or live with the problem that from t
博論終わったので仕事の合間にfujimapというライブラリを作ってみました。 fujimap project fujimapは作業領域が非常に小さい連想配列で、文字列からなるKeyを利用して、整数値もしくは文字列からなるValueを登録・参照することができるライブラリです。 今巷では大規模なKey Value Stroe (KVS)が流行っていますがFujimapは一台のマシンのメモリ上で動作することを想定して作成されています.Fujimapの特徴は必要な作業領域量が非常に小さいことです.キー自体を明示的に保存しないため、作業領域は値を格納するのに必要なサイズと、許容するfalse positive(後述)にのみ依存します。 例えば、google N-gramのunigramの約1300万キーワードとそれらの頻度の対数を記録する場合、false positiveを気にしないなら、一キーワー
約半年間の沈黙を破ってOSSの世界に戻ってきつつあるmikioです。先日、Tokyo Cabinet(以下「TC」と呼びます)というデータベースライブラリをリリースしました。今回から数回に分けて、TCの設計と苦労話について連載してみます。 DBMとは TCは、いわゆるDBMの系譜のデータベースライブラリで、単純なハッシュテーブルをファイル上で永続化するだけの機能を提供します。DBMはAT&Tの古代UNIXの時代から受け継がれる伝統芸能なのですが、私はそういう枯れた技術が大好きなのです。 プログラマの皆さんは、PerlやRubyではハッシュ(連想配列)と呼ばれ、JavaやC++ではmapと呼ばれるような、何らかのキーに関連づけてなんらかの値を記録するデータ構造って実によく使いますよね。例えばmixiでは、ユーザアカウントに関連する情報(名前とかニックネームとか)は、ユーザIDをキーにしたハッ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く