メディアライフの日記

メディアを活用したライフスタイルの研究・提案に向けて

Googleアナリティクスのデータで協調フィルタリングによるレコメンド(PythonライブラリSuprise)

以下、作業中の備忘録

 

1.作業方針

 

ウェブサイトのページを商品として捉え、Googleアナリティクスのデータで、協調フィルタリングによるレコメンドを実装する。以下の記事を参考とさせて頂いた。

Google Analytics のデータを元に、Blog 記事 のアイテムベース協調フィルタリングレコメンドをしてみる | Monotalk

 

2.データ取得

 

ウェブサイトにGoogleアナリティクスは設定済みだったが、協調フィルタリング(これを見た人はあれを見た~)に必要な「ユーザID」は未設定だった。

そこで、下記記事を参考に、GoogleアナリティクスのクライアントIDをGoogleタグマネージャを通じてウェブサイトに設定した。

2016年の新定番!ユーザーエクスプローラーをもっと活用するための簡単な方法 | 株式会社プリンシプル

 

3.データ集計

 

取得したデータは、GoogleアナリティクスAPI経由で、Googleスプレッドシート上に集計した。

[Python] Google SpreadSheetをAPI経由で読み書きする - YoheiM .NET

【もう迷わない】Pythonでスプレッドシートに読み書きする初期設定まとめ | たぬハック

  

なお、Googleスプレッドシート内でディメンションを複数設定する方法としては、単に改行とした。

GoogleAnalyticsのディメンションを複数設定したい | Tips Note by TAM

 

Pythonの「df2gspreadモジュール」のインストールエラーについては、以下のように対処した。

 

Jupyter Notebookで

! pip3 install df2gspread --user

でインストールしたが

ModuleNotFoundError: No module named 'df2gspread'
エラー
ググって、

!pip3 show df2gspread

したら

Location: /Users/ユーザー名/.local/lib/python3.6/site-packages

であることがわかったので、

import sys
sys.path.append('/Users/ユーザー名/.local/lib/python3.6/site-packages')

したら、無事エラー解消

 

(参考記事)

pythonでImportError: No module named ・・・が出たときの確認方法と対処 | ぱーくん plus idea

【python】ImportError: No module named '***'の対処法 - 静かなる名辞

PythonでImportError: No module namedに遭遇した。 - Last Modified

 

4.Pythonのライブラリを使う

 

以下のライブラリをインストールした。当初はエラーが出たが、パソコンの再起動時にエラーは解消していた。

Surprise · A Python scikit for recommender systems.

 

5.結果

URLを入力すると、オススメページのURLを返すようになった。

 

 (実装開始までの経緯)※具体的着手までに1年半年以上かかってしまいました。

2017.5 レコメンドを提案する意見あり

2017.6 協調フィルタリングなどについて調べ始める

2018.1 組織内でレコメンドを提案

2018.2 手っ取り早くGoogleアナリティクスのeコマースの関連商品を使おうとするが廃止されていた。

2018.3 Googleアナリティクスのデータ取得開始

2018.夏頃 Googleアナリティクスで協調フィルタリングによるレコメンドの記事を見つける

2018.12 Googleアナリティクスのデータ取得開始

 

(参考文献)※未整理のブックマーク状態

https://qiita.com/yoshizaki_kkgk/items/55b67daa25b058f39a5d

 

レコメンドエンジン

https://www.rtoaster.com/?utm_source=mail181101&utm_medium=email

 

レコメンドエンジン

https://www.probance.jp/column/20181018/?utm_source=mail181101&utm_medium=email

 

Yahoo!のレコメンド

http://ainow.ai/2017/12/04/126905/#Yahoo_JAPAN-4

 

機械学習 API

http://ainow.ai/2018/11/06/148728/

 

https://oishi-kenko.hatenablog.com/entry/2018/11/13/132607

協調フィルタリングで似たレシピを探す

 

レコメンドアルゴリズムの基本と周辺知識と実装方法

 

http://ainow.ai/2018/11/26/149174/

Repro実験でレコメンデーション

 

11/29 Amazon Personalize

https://aws.amazon.com/jp/blogs/news/amazon-personalize-real-time-personalization-and-recommendation-for-everyone/