レコメンダーシステムのための機械学習-第1部(アルゴリズム、評価、コールドスタート)
レコメンダーシステムは、ビジネスにおける機械学習技術の最も成功した広範な応用の一つです。 私たちのMLMUの話に出席できなかった待機リストに多くの人がいたので、私はここでスライドやコメントを共有しています。
推薦システムは、多くのユーザーが多くのアイテムを操作するシナリオで適用できます。
小売、ビデオオンデマンド、または音楽ストリーミングで大規模な推薦システムを見つけることができます。 このようなシステムを開発し、維持するためには、企業は通常、高価なデータサイエンティストとエンジニアのグループを必要とします。 そのため、BBCのような大企業でさえ、推薦サービスを外部委託することに決めました。
当社は、プラハに拠点を置き、複数のドメインのビジネスニーズに適応することができる普遍的な自動推奨エンジンを開発しています。 当社のエンジンは、世界中の何百もの企業で使用されています。
驚くべきことに、メディアのニュースやビデオの推薦、旅行や小売における製品の推薦、またはパーソナライゼーションは、同様の機械学習アルゴリズムによ さらに,これらのアルゴリズムは,各勧告要求において特別なクエリ言語を使用することによって調整することができる。
recommenderシステムにおける機械学習アルゴリズムは、通常、コンテンツベースと協調フィルタリング方法の二つのカテゴリに分類されますが、現代のrecommendersは両方のアプローチを組み合わせています。 コンテンツベースのメソッドは、アイテム属性の類似性に基づいており、共同メソッドは相互作用から類似性を計算します。 以下では、ユーザーが過去に表示されたアイテムとは異なる新しいコンテンツを発見できるようにする、主に共同の方法について説明します。
コラボレーションメソッドは、ユーザーが項目の明示的な評価を提供するまれなケースでは、評価行列とも呼ばれる相互作用行列で動作します。 機械学習の課題は、各ユーザーにアイテムの有用性を予測する機能を学習することです。 行列は通常、巨大で非常にまばらで、ほとんどの値が欠落しています。
最も単純なアルゴリズムは、行(ユーザー)または列(アイテム)のコサインまたは相関の類似性を計算し、k—最近傍が楽しんだアイテムを推奨します。
行列分解に基づく方法は、相互作用行列の次元を減らし、k個の潜在成分を持つ二つ以上の小さな行列によってそれを近似しようとする。
対応する行と列を乗算することで、ユーザーごとにアイテムの評価を予測します。 学習誤差は、空でない評価と予測された評価を比較することによって得ることができます。 潜在ベクトルの値を低く保つペナルティ項を追加することによって、訓練損失を正則化することもできます。
最も一般的な学習アルゴリズムは、p a q行列の列と行の両方の勾配更新によって損失を最小化する確率的勾配降下法です。
あるいは、一般的な最小二乗ステップによって行列pと行列qを反復的に最適化する交互最小二乗法を使用することができる。
関連付けルールは、推奨にも使用できます。 頻繁に一緒に消費されるアイテムは、グラフ内のエッジに接続されます。 ベストセラーの集り(ほとんど皆がと相互に作用した密に接続された項目)およびニッチの内容の小さい分けられた集りを見ることができる。
相互作用行列から採掘される規則は、少なくともある程度の最小限のサポートと信頼を持つ必要があります。 サポートは発生頻度に関連しています—ベストセラーの含意は高いサポートを持っています。 高い信頼性は、ルールがしばしば違反されないことを意味します。
マイニングルールはあまりスケーラブルではありません。 APRIORIアルゴリズムは、可能性のある頻繁なアイテムセットの状態空間を探索し、頻繁ではない検索空間の分岐を排除します。
頻繁なアイテムセットはルールの生成に使用され、これらのルールは推奨事項を生成します。
例として、チェコ共和国の銀行取引から抽出されたルールを示します。 ノード(相互作用)は端子であり、エッジは頻繁なトランザクションです。 あなたは、過去の引き出し/支払いに基づいて関連する銀行端末をお勧めすることができます。
人気のあるアイテムを罰すると、より低いサポートとロングテールルールを抽出することは、推奨事項を多様化し、新しいコンテンツを発見するのに役立
評価行列は、ニューラルネットワークによっても圧縮することができます。 いわゆるautoencoderは行列の因数分解に非常によく似ています。 複数の隠された層と非線形性を持つ深いオートエンコーダーは、より強力ですが、訓練するのが困難です。 Neural netは、アイテム属性の前処理にも使用できるため、コンテンツベースのアプローチと共同のアプローチを組み合わせることができます。
ユーザー-KNNトップN推奨擬似コードは上記に与えられています。
関連ルールは、複数の異なるアルゴリズムによって採掘することができます。 ここでは、ベストルールの推奨擬似コードを示します。
行列分解の擬似コードは上で与えられます。
collaborative deep learningでは、項目属性を組み込んだautoencoderと同時に行列分解を学習します。 もちろん、推薦に使用できるアルゴリズムはさらに多くあり、プレゼンテーションの次の部分では、深層学習と強化学習に基づくいくつかの方法を紹介
推薦者の評価
推薦者は、履歴データに関する古典的な機械学習モデル(オフライン評価)と同様に評価することができます。
ランダムに選択されたテストユーザーの相互作用は、目に見えない評価の推薦者のパフォーマンスを推定するために交差検証されます。
Root mean squared error(RMSE)は、多くの研究がRMSEがオンラインパフォーマンスの貧弱な推定値であることを示したにもかかわらず、依然として広く使用されています。
より実用的なオフライン評価尺度は、(推奨または関連項目のうち)正しく推奨項目の割合を評価するリコールまたは精度です。 DCGは、項目の関連性が対数的に減少すると仮定して、その位置も考慮に入れている。
オフラインデータの偏りにあまり敏感ではない追加の尺度を使用することができます。 カタログのカバレッジとリコールまたは精度は、多目的最適化に使用できます。 すべてのアルゴリズムに正則化パラメータを導入し,それらの可塑性を操作し,人気のあるアイテムの推奨を罰することを可能にした。
ユーザーが新しいコンテンツを探索できるように、レコメンダーを正確で多様な推奨に向けて推進するために、リコールとカバレッジの両方を最大化す
コールドスタートとコンテンツベースの推奨事項
時には相互作用が欠落しています。 コールドスタート製品またはコールドスタートユーザーは、相互作用の類似性を信頼性の高い測定するための十分な相互作用を持っていないので、共同フィル
コールドスタート問題は、属性の類似性を考慮すると低減することができる。 属性をバイナリベクトルにエンコードしてレコメンダーにフィードすることができます。
相互作用の類似性と属性の類似性に基づいてクラスター化された項目は、多くの場合、整列されます。
ニューラルネットワークを使用して、属性の類似性から相互作用の類似性を予測したり、その逆を予測したりすることができます。
コールドスタートの問題を軽減し、推奨の質を向上させるために私たちを可能にするより多くのアプローチがあります。 私たちの話の第二部では、セッションベースの推奨技術、深い推奨、アンサンブルアルゴリズム、および本番環境で何千もの異なる推奨アルゴリズムを実行して最適化することを可能にするAutoMLについて議論しました。
プレゼンテーションの第二部に進み、深い勧告、シーケンス予測、AutoML、強化学習に関する勧告について議論します。
または、2019年の最新のアップデート:新機能と改善点を確認してください。