A recommender system (RecSys), or a recommendation system (sometimes replacing system with terms such as platform, engine, or algorithm) and sometimes only called "the algorithm" or "algorithm",[1] is a subclass of information filtering system that provides suggestions foritems that are most pertinent to a particular user.[2][3][4] Recommender systems are particularly useful when an individual ne
レコメンダシステム(英: recommender system)は、情報フィルタリング (IF) 技法の一種で、特定ユーザーが興味を持つと思われる情報(映画、音楽、本、ニュース、画像、ウェブページなど)、すなわち「おすすめ」を提示するソフトウェアエンジン。通常のレコメンダシステムは、ユーザーのプロファイルを何らかのデータ収集基準と比較検討し、ユーザーが個々のアイテムにつけるであろう評価を予測する。基準は情報アイテム側から形成する場合(コンテンツベースの手法)とユーザーの社会環境から形成する場合(協調フィルタリングの手法)がある。 ユーザーのプロファイルを構築するとき、データ収集の明示的部分と暗黙的部分を区別する。 明示的データ収集には次のようなものがある。 ユーザーにあるアイテムの評価を付けてもらう(例えば5段階評価)。 ユーザーに一群のアイテムを好きか嫌いかランク付けしてもらう。 ユーザ
コサイン類似度について 概要 コサイン類似度とは、ベクトル空間モデルにおいて、文書同士を比較する際に用いられる類似度計算手法。 コサイン類似度は、そのまま、ベクトル同士の成す角度の近さを表現するため、三角関数の普通のコサインの通り、1に近ければ類似しており、0に近ければ似ていないことになる。 だいたいは、tf-idfの値で計算を用いて計算される場合が多いと思います。 コサイン類似度計算式 以下の式で計算できる。 正規化された単位ベクトルについての計算は、以下で可能。 計算例 正規化後の値 ターム 文書1 文書2 文書3
研究でコサイン類似度を求めなくてはならなくなりました。コサイン類似度ってなんだ??どうやるんだ??まったく検討つかない!というレベルから、計算式はわかった!とりあえず値を出す関数まで作ろう!というレベルに達したのでメモしておきます。あんまりコサイン類似度自体の本質はわかってないかもしれませんが、遅延評価勉強法というかんじです。 コサイン類似度とは 2つのデータが似ているかどうかを、文字列が似てるのを調べる分野では距離などで換算します。ちょっとよくわからないかもしれませんが、ぴいことぴいたろう君の類似度は、なんらかの測定器を使うと60mくらいの距離です。ぴいこと弟の類似度は、その測定器では30mくらいの距離でした。弟とぴいこは近いので、ぴいたろう君より似ています。 みたいなかんじ。 コサイン類似度ではベクトルというものを使います。ベクトルってなんだ!!わけわかんねーこと言うな!!!と思ってい
In data analysis, cosinesimilarity is a measure ofsimilarity between two non-zero vectors defined in an inner product space. Cosinesimilarity is the cosine of the angle between the vectors; that is,it is the dot product of the vectors divided by the product of their lengths.It follows that the cosinesimilarity does not depend on the magnitudes of the vectors, but only on their angle. The cos

Inmachine learning and pattern recognition, a feature is an individual measurable property or characteristic of a data set.[1] Choosing informative, discriminating, and independent features is crucial to producing effective algorithms for pattern recognition, classification, and regression tasks. Features are usually numeric, but other types such as strings and graphs are used in syntactic patter
本の方では del.icio.us のブックマークを取得して,自分(じゃなくてもいいんだけど)と似ている人を探し,その人のリンクでまだ自分が登録していないものをお勧めするプログラムが出てくる。それを,はてなに対応させてみた。こっちもやや長いけどhatena_rec.rb。 require 'open-uri' require 'rss' require 'uri' def init_dict(tag, count=5, users=30) result = Hash.new # 指定のキーワードのブックマーク一覧(rss形式 人気順/新着順) # sk = 'hot' # 注目 # sk = 'eid' # 新着順 sk = 'count' # 人気順rss_uri = "http://b.hatena.ne.jp/t/#{URI.encode(tag)}?mode=rss&sort=

_ [PFI]はてなブックマークの関連エントリー機能開発そろそろこの日記がプライベートなものなのかパブリックなものなのかの位置づけを考えなくてはいけなくなって来ましたが…。 先日、株式会社はてなの皆さんと共同で開発合宿を行いました。その時の様子はnaoyaさんの日記に詳しいので、そちらに譲ることにします。naoyaさんがオフィスをスキップしながらデータのダンプをされていたのが印象的でした。 PFIには色々な自然言語関連の技術が溜まっているのですが、それをWikipediaのような限定的なデータではなく、はてなブックマークやその他を通して日本語のWebデータ全体に適用させることが出来たのはとてもエキサイティングな経験でした。各技術を実装した時に、Web全体に使えたらこういうことが出来るのになぁと妄想してたことのうちいくつかが実現しそうで、そのうちの一つが今回の関連エントリー機能です。 まず

協調フィルタリングとはAmazonのお勧めのように「この商品を購入した人はこんな商品も購入しています」という情報を用いて推薦をする手法です。グラフィカルモデルはベイジアンネットワークとも呼ばれ、最近一部で流行している機械学習の手法です。今回は、協調フィルタリングをグラフィカルモデルで表現したらどのようになるだろう、と考えて思いついたアイデアを紹介します。 今、ユーザuとアイテムiの組{u,i}のデータが大量に与えられているとします。例えばソーシャルブックマークならユーザとブックマークしているページの組み合わせ、E-commerseならユーザと購入した商品の組み合わせ、などです。ここではSBMを例に考えるので、はてブと同様にユーザはマイナスの評価を付けることはできないものとします。 このときユーザuに対してお勧めのページを推薦することを考えると、ユーザuがまだブックマークしていないページiに

さっそく時間を作って読んでいるわけですが,コードがPython なんですよね.僕はRuby の人なのでRuby でやりたいなと思っていまして,読みながらその場で同時通訳しています.その過程でRuby のコードができるわけですが,せっかくなのでココで紹介しますね.現状,2.5 の最後 (p.20) まで読みましたので,それを載っけましょう.ファイル名は recommendations.rb です. まずは p.8 のデータセットです.recommendations.rb は load で読み込むことを前提にしています.Ruby はファイルスコープを持っていて,ローカル変数はファイルの外からは見えません*1.そのため本文中の変数 critics は,Ruby では手っ取り早くグローバル変数にしました. #映画の評者といくつかの映画に対する彼らの評点のディクショナリ $critics
「集合知プログラミング」の「推薦する」のプログラムをrubyで書いてみました。でも、私のruby力不足から、うまく書けずに先人の知恵を借りてみました。変数の初期化とか関数を引数にする方法あたりを参考にしました。 『集合知プログラミング』をRuby でCommentsAdd Star - ドレッシングのような "Collective Intelligence"のサンプルをrubyに移植してみた - ma2の日記 配列をぶんぶんまわすあたりは、私のプログラムよりも上記のリンク先の方が洗練されています(笑) ちなみに、deliciousの自分向けのおすすめを計算したら、あまりにも傾向が似ていなかったため、何も推薦してくれませでした(泣) # coding:utf-8 # ユークリッド距離を計算する defsimDistance prefs, person1, person2 si = pre
Programming Collective Intelligence:Building Smart Web 2.0 Applications 作者: Toby Segaran出版社/メーカー: O'Reilly Media発売日: 2007/08/26メディア: ペーパーバック購入: 3人 クリック: 117回この商品を含むブログ (31件) を見る「集合知」を解説するこの本にはいろんな実例とサンプルが出てくる。サンプルはpython なのでruby に書き換えてみた。書き換えたのは第二章の "Making Recommendations" の一部です。なんらかのアイテム(本とか映画とか)とその評価(Amazonレビューの★とか)を複数の人間が行った場合に,その情報を元に「似た傾向の評価者」を探し,似た傾向の評価者のリストから自分が未評価のアイテム(つまり未読の本とか未見の映画とか


火曜日のHadoopの話に続き、土曜日には「楽天テクノロジーカンファレンス」でROMAとfairyの話を聞いてきました。fairyはようするに楽天版MapReduce、ROMAは楽天版memcached(よりストレージ寄り)という感じのソフトです。 以下、メモ。 レコメンド&パーソナライゼーション(楽天技研 西岡氏) (emasaka注:これはROMAとfairyのセッションの直前のセッションだけど、関連性が強いので、関連する部分のみ切り出し)楽天でレコメンデーションをやる場合、規模が膨大という特徴がある。何千万もの会員と2,500万の商品の組み合わせ。その対策として、Locality Sensitive Hashingなどアルゴリズムを改良すると同時に、多数のマシンを組みあわせている。そのために、現時点ではHadoopを使ってMapReduce処理をし、k-meansのクラスタリングや


"集合知プログラミング" という本が出たらしい. 私の積読には元本の "Programming Collective Intelligence" があって, 途中まで読んだまま放置していたら日本語訳が出てしまった. (オライリーのアンチパターンと命名.) 悔しいので本は処分. そのうち日本語版で続きを読もう.... 興味を持っていたのは推薦エンジン(協調フィルタ)だった. 私の中では検索エンジンに匹敵するウェブのハイテクという位置付けなんだけど, 草の根には普及しておらず悲しい. 検索エンジンでの Hyper Estraier や senna に相当する協調フィルタの立ち位置は デッドヒートが予想される...とだいぶ前から思ってるんだけど, いまのところ閑古鳥気味. まったく, 出し抜くだけの実力があればなあ. 先の皇帝ペンギン本では, 一章にさっそく協調フィルタが登場する. 読んでみると

小川 明彦, 阪井 誠 : チケット駆動開発 日本のソフトウェア開発の現場で生み出された「チケット駆動開発」という概念を、数多くの実例を元にモデル化・体系化を試みた最初の本。 小川 明彦, 阪井 誠 :Redmineによるタスクマネジメント実践技法Redmineによるチケット駆動開発の実践技法に関する最初の本。アジャイルなソフトウェア開発への適用方法、TestLinkによるテスト管理手法についても言及。 清水 吉男: 「派生開発」を成功させるプロセス改善の技術と極意 組込システム開発をベースとして、ソフトウェア開発特有のスタイルである派生開発、特にXDDPについて解説した世界でも稀な本。既存製品を保守するのではなく継続的に機能追加していく昨今の開発では、派生開発特有の問題を意識しなければならない。XDDPはプロセス論だけでなく、要件定義などの上流工程の品質改善にも役立つので注意。 Le


リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く