データ構造と情報検索と言語処理勉強会でお話してきました。データ構造と情報検索と言語処理勉強会でお話してきました。係数などのいわゆる「類似度計算」の時間/空間計算量的に効率的な処理を実現する方法についてお話してきました。発表スライドはこちらです。発表後に頂いた質問はこんな感じだったはず。寝不足ゆえの言語認識力がだいぶ低下した状態で受け答えしたので、質問/回答は超意訳になってます。購買ログなどからバスケット分析的な方法で類似度計算しようとすると、ユーザごとにログを集約しなければならないという追加処理が必要となるものの、計算量的にはあんまり問題になってない。問題になるのはアイテムの数。アイテム数の2乗に応じて空間計算量が必要になってしまうため、アイテム数が多い場合にはこの方法は向かない。係数とかコサイン類似度ってどうなのよ?ビジネス的には、類似度計算によって得られる精度よりもドメイン知識を使ったフィルタリングを良くする方が大事だと考えてる。あと弊社の事情となってしまうが、精度のよい弊社独自の類似度計算のロジックは社外秘的な扱いとなっているためしゃべれない(ので、あえて精度の話は触れなかった)。特性がまだ把握しきれていないので、もうちょっと追求してみたいですね。現状の実装は以下のとおりです。https://gist.github.com/komiya-atsushi/6414548あと、他の方の発表の感想と今回の反省です。ダブル配列の実装テクニック的な話が熱かった。組み込もうかという検討をしたことがあって、そのときのことを思い出してちょっと感慨深いものがあった。説明が不足しているゆえに理解が追いつかない状態だったっぽい。魅力的な発表テーマ&必要十分な説明を心がけたいですね。いうソルバーを使ってみましたよ、というメモ。手順を参考にインストールを試してみる。データ構造と情報検索と言語処理勉強会でお話してきました。