Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

jubarecommenderの紹介

11,627 views

Published on

jubarecommenderの紹介

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

jubarecommenderの紹介

  1. 1. jubarecommenderの紹介 Jubatus Casual Talks #4 2016/06/18(土) NTTソフトウェアイノベーションセンタ 東羅 翔太郎 Copyright©2016 NTT corp. All Rights Reserved.
  2. 2. jubarecommenderとは  近傍探索ベースの推薦をJubatus上で行う エンジン  近傍データ(あるデータと類似したデータ)の 探索、および推薦(あるデータの値を、近傍 のデータを元に類推)する機能 Copyright©2016 NTT corp. All Rights Reserved.
  3. 3. 推薦のイメージ1: ユーザベース  例えばECサイトの場合  全ユーザの購買履歴  ユーザ間の類似度(どれくらい嗜好が似ているか) を計算する  類似度の高いユーザの購入した商品を薦める 商品A 商品B 商品C 商品D 商品E ユーザ1 1 1 0 0 1 ユーザ2 0 0 1 1 0 ユーザ3 0 1 1 0 0 ユーザ4 1 1 0 0 0 Copyright©2016 NTT corp. All Rights Reserved.
  4. 4. 推薦のイメージ2: アイテムベース  例えばECサイトの場合  全ユーザの購買履歴  商品間の類似度を計算する  類似する商品を推薦する ⇒ 「この商品を買った人はこんな商品も買って います」 ユーザ1 ユーザ2 ユーザ3 ユーザ4 商品A 1 0 0 1 商品B 1 0 1 1 商品C 0 1 1 0 商品D 0 1 0 0 商品E 1 0 0 0 Copyright©2016 NTT corp. All Rights Reserved.
  5. 5. Jubatus の推薦アルゴリズム  主なアルゴリズム(類似度の計算方法)  詳細は公式サイトを御覧ください  ※ inverted_index, inverted_index_euclid は厳密な 距離計算を行います。他は近似計算を行う代わり に高速です。 アルゴリズム名 尺度 備考 inverted_index コサイン類似度 厳密 inverted_index_euclid ユークリッド距離 厳密 minhash Jaccard係数 近似、省メモリ lsh コサイン類似度 近似、省メモリ euclid_lsh ユークリッド距離 近似、省メモリ Copyright©2016 NTT corp. All Rights Reserved.
  6. 6. クライアントAPI  利用頻度が多いと思われるAPIを紹介します  update_row (id, datum)  キーがid、バリューがdatumの行を追加します  datumとはJubatusで用いるkey-value形式のデータ形式で す  similar_row_from_id (id, size)  id行の近傍データを size 個探索して返します  complete_row_from_id (id)  id行の近傍データから、id行の欠けている値を予測して、 補完したデータを返します  他は公式サイトを参照  http://jubat.us/ja/api_recommender.html Copyright©2016 NTT corp. All Rights Reserved.
  7. 7. 簡単なサンプル: プログラミング言語のレコメンド  プログラミング言語の特徴から、クエリに 近い言語を推薦  Wikipediaの「Comparison of programming languages」を参考にデータを作成  https://en.wikipedia.org/wiki/Comparison_of_prog ramming_languages Copyright©2016 NTT corp. All Rights Reserved.
  8. 8. データ概要 Language Intended use Imperative Object- oriented Functional Procedura l Generi c Reflectiv e Event- driven Other paradigm(s) Standardized? ActionScript 3.0 Application, client-side, web Yes Yes Yes 1996, ECMA Ada Application, embedded, realtime, syste m Yes Yes[2] Yes[3] Yes[4] concurrent,[5]di stributed,[6] 1983, 2005, 2012, ANSI, ISO, GOST27831- 88[7] Aldor Highly domain- specific, symbolic computing Yes Yes Yes No ALGOL 58 Application Yes No 今回使う部分  言語毎に用途が書かれたカラムと、各パラダイムを 含んでいればYesが入ったカラムが並んでいます  今回は列ごとに文字列としてスペース区切りで特徴 ベクトルを作成するようにします Copyright©2016 NTT corp. All Rights Reserved.
  9. 9. デモ Gist • https://gist.github.com/torash/d17709aca00d53c20d4 a82c61ca28f03 Copyright©2016 NTT corp. All Rights Reserved.
  10. 10. まとめ  Jubatusの推薦機能 jubarecommender を紹介  近傍探索ベースのエンジン  jubarecommender を用いたサンプル、プログラ ミング言語の推薦を紹介  アイテムベースの推薦  前処理をほとんど行わずに処理が可能  「使えそうだな」「動かしてみたいな」と 思われたら、まずは是非 jubatus-example を 触ってみてください!  https://github.com/jubatus/jubatus-example Copyright©2016 NTT corp. All Rights Reserved.

×