GitHubじゃ!Pythonじゃ!

GitHubからPython関係の優良リポジトリを探したかったのじゃー、でも英語は出来ないから日本語で読むのじゃー、英語社会世知辛いのじゃー

benfred

implicit – 暗黙のフィードバックデータセット用の高速Pythonコラボレーティブフィルタリング

投稿日:

暗黙のフィードバックデータセット用の高速Pythonコラボレーティブフィルタリング

暗黙

暗黙のデータセット用の高速Pythonコラボレーティブフィルタリング。

このプロジェクトは、暗黙のフィードバックデータセットのためのいくつかの異なる人気の推奨アルゴリズムの高速Python実装を提供します:

すべてのモデルには、マルチスレッドのトレーニングルーチンがあり、CythonとOpenMPを使用して、使用可能なすべてのCPUコア間でモデルを並列に適合させます。 さらに、ALSモデルとBPRモデルにはカスタムCUDAカーネルがあり、互換性のあるGPUでのフィッティングが可能です。 AnnoyNMSLIBFaissなどのおおよその最寄りの図書館は、暗黙のうちに勧告の作成スピードアップするために使用することもできます。

インストールするには:

pip install implicit

基本的な使用法:

import implicit

# initialize a model
model = implicit.als.AlternatingLeastSquares(factors=50)

# train the model on a sparse matrix of item/user/confidence weights
model.fit(item_user_data)

# recommend items for a user
user_items = item_user_data.T.tocsr()
recommendations = model.recommend(userid, user_items)

# find related items
related = model.similar_items(itemid)

examplesフォルダには、これを使用してlast.fmデータセットで同様のアーティスト計算する方法を示すプログラムがあります。

詳細については、 ドキュメントを参照してください。

暗黙の記事

これらのブログ記事には、このライブラリに役立つアルゴリズムが記載されています。

Implicitを使用して推奨システムを構築する方法については、他にもいくつかのブログ記事があります。

要件

このライブラリにはSciPyバージョン0.16以降が必要です。 OSXで実行するには、OpenMPコンパイラが必要です。これは、homebrew: brew install gccとともにインストールできます。 Windowsで実行するにはPython 3.5以降が必要です。

GPUサポートにはNVidia CUDA Toolkitのバージョン8以上が必要です。 ビルドでは、パス上にあるnvccコンパイラを使用しますが、これはCUDA環境変数があなたのcudaインストールを指すように設定することでオーバーライドできます。

このライブラリは、UbuntuとOSX上でPython 2.7,3.5,3.6、および3.7でテストされ、Windows上のPython 3.5および3.6でテストされています。

ベンチマーク

ALSフィッティング時間とSparkおよびQMFを比較する簡単なベンチマークはここにあります

最適な構成

IntelのMKLマトリクスライブラリを使用するようにSciPyを設定することをお勧めします。 これを行う簡単な方法の1つは、Anaconda Pythonディストリビューションをインストールすることです。

OpenBLASを使用するシステムでは、 ‘export OPENBLAS_NUM_THREADS = 1’を設定することを強くお勧めします。 これにより内部的なマルチスレッド機能が無効になり、このパッケージの速度が大幅に向上します。 Intel MKLの場合も同様に、 ‘export MKL_NUM_THREADS = 1’を設定する必要があります。

MITライセンスでリリース







-benfred
-, , ,

執筆者: