レコメンドという言葉が流行りだしてから、数年が経ちます。
レコメンド機能を搭載したECパッケージもたくさん出てきて、最近ではlivedoorのレコメンドエンジンもオープンソースとして公開されたようです。
レコメンドはインフラとして「当たり前」のようになってきました。
当たり前になってくると、そもそもどういうものだっけ?と気になる方も多いはず。
今回はアイテムベースのレコメンドについて簡単に説明します。
アイテムベースのレコメンドはその名のとおり、アイテム(商品・コンテンツ・etc)の情報を軸として関連のあるアイテムを抽出・推薦する方法です。
手順は以下のようになります。
1.元となるデータを準備する
2.データの形式をアイテムを軸としたデータに適宜変換する
3.各アイテムごとの関連度(関連の強さ)を計算する
4.各アイテムについて、関連度の高いアイテムを抽出する
データソースとしてはどのサイトでも入手しやすいアクセスログを使用してみましょう。
アクセスログを元に解析する場合は、セッション毎のリクエストURLを元にします。
「アイテム=リクエストURL」ということですね。
セッション情報はログに含まれていることは少ないですが、IPアドレスを擬似的に使用すると良いでしょう。
セッションIDとリクエストURLをソートし、同一の行はユニークにしてカウント(=ページビュー)しておきます。
(出来上がるデータは「PV セッションID リクエストURL」のようなフォーマットです)
さらにこのデータから各URL毎のPVとセッションIDをまとめ、それぞれのURLについて関連度を計算します。
※O’reillyの書籍に同様の形式のデータから解析にかける手順が書かれています
実際にある特定の商品(カテゴリAに属する商品Aとする)の詳細ページと関連が高いとされたリクエストURLの結果上位5位を抽出しました。(左側の数字が大きいものが関連性が高いURLです)
1.00, カテゴリA-商品B詳細
1.00, カテゴリA-商品C詳細
1.00, カテゴリB-サブカテゴリX
1.00, カテゴリC-サブカテゴリY
1.00, 静的ページ(送料について)
これでは同じカテゴリの商品Bの詳細ページと「送料について」のページが同じ価値があることになります。
多くの人が目にするページや、購入の際に必ず通るページなどは単純に商品ごとの関連性を知りたい場合にはノイズとなってしまいます。
サイト全体のログデータからの解析結果は、目的にかなわない結果となってしまうことがあります。
そこで、元のデータソースを作成する際に、商品の詳細ページのみを抽出し、解析します。
1.00, カテゴリA-商品B詳細
1.00, カテゴリA-商品C詳細
0.76, カテゴリA-商品D詳細
0.71, カテゴリA-商品E詳細
0.17, カテゴリA-商品F詳細
みごと、目的にマッチする情報が得られました。
商品Aを見ているユーザには上記のような商品をお勧めすると良いようです。
さらに必要に応じて、購入データから購入している商品の重み付けなども加えると、より意味のあるものとなるでしょう。
以上、アイテムベースのレコメンドについての説明でした!
機会があればもっと詳しく紹介したいと思います!
今回は、Subversionのクライアントについてご紹介します。
Windowsでは、「TortoiseSVN」が最も利用されていて最も便利なクライアントだと思います。
実際に使ってみてこれ以上なく便利ですね。
詳しく紹介しているサイトがたくさんありますので、「TortoiseSVN」で検索して探してみてください。
問題はMac環境です。。。
システム開発がWindows文化だからか、Windowsに比べクライアントは発展途上という印象。
とはいえ、弊社はMac文化。
また、デザイナーさんにSVNコマンドをターミナルで実行しろというのも酷な話。
という訳でMacOSXで稼働するクライアントをいくつか試してみました。
<SCPlugin>
SCPluginは、TortoiseSVN同様にコンテクストメニューとして実装されていて、UIとしては大変スマート。
ですが、OSに対してデリケートな部分が多く、・・・な報告もちらほら。
<SVNX>
SVNXはアプリケーションとして利用できるため、導入も簡単。
実際使ってみると、ファイルのバージョン管理を目的としての用途だとなんら問題はない。
開発フローとして十分に機能しそうだ。
TortoiseSVNよりも便利な点もあります。
●過去リビジョンのファイル取得が簡単
「リポジトリウインドウ」というリビジョン管理用ウインドウにて、
取得したいリビジョンを選択し、表示されたファイルをドラッグするだけで過去のファイルが取得できます。
●ローカルで変更したファイルの確認が簡単
「ワーキングコピーウインドウ」にて、更新したファイルはリスト表示され、
M:Modify A:Add
などファイルのステータスも一目瞭然で分かりやすい。
今回は、クライアントについて紹介してみましたが、
Subversionの機能を網羅したクライアントはMacいまだ存在していません。(知らないだけかも??)
ブランチ(枝葉分岐によるファイル管理)、タグ付け(リビジョンのマーキング)まで網羅したクライアントの登場を心から期待します。
それまでは、ターミナルでこりこりコマンドを打つべし。。
svn copy -m “Message” URL
svn info URL_of_WC
svn switch [-R Rev] URL PATH
svn merge [--Dry-Run] –force From_URL@revN To_URL@RevM PATH…….
Webサイトの運用、Webシステムの開発に携わっていると、長期的なファイル管理や、複数人・複数拠点での確実なファイル管理が業務管理の中枢となります。
膨大なファイル数になればなるほど、「人間の能力では管理できない」状態になりますので、そんな時はシステムの力に頼りましょう!
「この商品に関するご意見ご要望がありましたら自由にお書きください」
アンケートの一番最後にどーんとかまえるフリーアンサー欄。
僕はモチロン笑顔でスルーするタイプなのですが、時々フリーアンサーが「入力必須項目」になってるときもありますよね…「フリーじゃないじゃん!」なんて思うのですが。