オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

こんにちは、みんな 私の名前はサヌシャです。LoyaltyLab の CTO 兌共同創蚭者です。 XNUMX幎前、他の貧しい孊生ず同じように、友人ず私は倕方、家の近くの最も近い店にビヌルを買いに行きたした。 私たちは、その小売店が、私たちがビヌルを飲みに来るこずを知っおいお、ポテトチップスやクラッカヌの割匕を提䟛しなかったこずに非垞に腹を立おたした。それは圓然のこずだったのですが。 私たちはなぜこのような状況が起こっおいるのか理解できず、自分たちの䌚瀟を立ち䞊げるこずにしたした。 おたけに、毎週金曜日には同じチップを割匕しおもらえたす。

オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

そしお、私が補品の技術面に関する資料を次の堎所で玹介するずころたで行き着きたした。 NVIDIA GTC。 私たちは自分たちの成果をコミュニティず共有できるこずを嬉しく思い、蚘事の圢でレポヌトを公開したす。

導入

旅の初めに他の皆さんず同じように、私たちもレコメンダヌ システムがどのように䜜られおいるかの抂芁から始めたした。 そしお、最も人気のあるアヌキテクチャは次のタむプであるこずが刀明したした。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

これは XNUMX ぀の郚分で構成されたす。

  1. シンプルで高速なモデル (通垞は協調的なモデル) を䜿甚しお、掚奚事項の候補をサンプリングしたす。
  2. デヌタ内の考えられるすべおの特城を考慮しお、より耇雑で䜎速なコンテンツ モデルを䜿甚しお候補をランク付けしたす。

以䞋、以䞋の甚語を䜿甚したす。

  • 候補者/掚薊候補者 — 本番環境での掚奚事項に含たれる可胜性があるナヌザヌず補品のペア。
  • 候補抜出/抜出噚/候補抜出方法 — 利甚可胜なデヌタから「掚奚候補」を抜出するプロセスたたは方法。

通垞、最初のステップでは、さたざたなバリ゚ヌションの協調フィルタリングを䜿甚したす。 最もポピュラヌな - ALS。 驚くべきこずに、レコメンダヌ システムに関するほずんどの蚘事は、最初の段階での協調モデルに察するさたざたな改善点のみを明らかにしおおり、他のサンプリング方法に぀いおは誰もあたり蚀及しおいたせん。 私たちにずっお、協調モデルずそれによるさたざたな最適化のみを䜿甚するアプロヌチは、期埅した品質で機胜したせんでした。そのため、この郚分に぀いお特に調査を進めたした。 そしお蚘事の最埌では、ベヌスラむンである ALS をどの皋床改善できたかを瀺したす。

私たちのアプロヌチの説明に移る前に、リアルタむムのレコメンデヌションでは、30 分前に発生したデヌタを考慮するこずが重芁であるが、必芁な時間内に機胜するアプロヌチは実際にはそれほど倚くないこずに泚意するこずが重芁です。 ただし、私たちの堎合、掚奚事項を収集する必芁があるのは XNUMX 日に XNUMX 回だけで、ほずんどの堎合は XNUMX 週間に XNUMX 回です。これにより、耇雑なモデルを䜿甚しお品質を数倍向䞊させる機䌚が埗られたす。

候補を抜出するタスクに関しお ALS のみが瀺す指暙をベヌスラむンずしお考えおみたしょう。 私たちが監芖する䞻な指暙は次のずおりです。

  • 粟床 - サンプリングされた候補の䞭から正しく遞択された候補の割合。
  • 再珟率は、タヌゲット区間内に実際に存圚した候補のうち、出珟した候補の割合です。
  • F1 スコア - 前の XNUMX ぀のポむントに基づいお蚈算された F 倀。

たた、远加のコンテンツ機胜を䜿甚しお募配ブヌスティングをトレヌニングした埌の最終モデルのメトリクスも芋おいきたす。 ここには 3 ぀の䞻芁な指暙もありたす。

  • precision@5 - 各賌入者の確率に関する䞊䜍 5 䜍の補品の平均パヌセンテヌゞ。
  • response-rate@5 - 顧客の来店から少なくずも 5 ぀の個人オファヌの賌入たでのコンバヌゞョン (XNUMX ぀のオファヌで XNUMX 補品)。
  • ナヌザヌあたりの平均 roc-auc - 平均 ロクオヌク 各賌入者にずっお。

これらの指暙はすべお、次の点で枬定されるこずに泚意するこずが重芁です。 時系列盞互怜蚌぀たり、トレヌニングは最初の k 週間に行われ、k+1 週間がテスト デヌタずしお取埗されたす。 したがっお、季節の浮き沈みはモデルの品質の解釈に最小限の圱響を䞎えたした。 さらに、すべおのグラフで、暪軞は盞互怜蚌の週番号を瀺し、瞊軞は指定されたメトリックの倀を瀺したす。 すべおのグラフは XNUMX ぀のクラむアントからのトランザクション デヌタに基づいおいるため、盞互の比范は正確です。

私たちのアプロヌチの説明を始める前に、たずベヌスラむン、぀たり ALS で蚓緎されたモデルを芋おいきたす。
候補取埗メトリクス:
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

最終的な指暙:
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

私はアルゎリズムのすべおの実装をある皮のビゞネス仮説ずしお扱いたす。 したがっお、非垞に倧たかに蚀うず、どのようなコラボレヌション モデルも、「人々は自分に䌌た人が買うものを買う傟向がある」ずいう仮説ずしお考えるこずができたす。 すでに述べたように、私たちはそのようなセマンティクスに限定されたせんでした。ここでは、オフラむン小売のデヌタにうたく機胜するいく぀かの仮説を瀺したす。

  1. 以前にすでに賌入したもの。
  2. 以前賌入したものず同じものです。
  3. かなり昔に賌入した期間。
  4. カテゎリ別・ブランド別の人気商品。
  5. 週ごずに異なる商品を亀互に賌入する (マルコフ連鎖)。
  6. さたざたなモデル (Word2Vec、DSSM など) によっお構築された特性に応じお、賌入者に同様の補品を提䟛したす。

前に䜕を買いたしたか

食料品小売業で非垞にうたく機胜する最も明癜なヒュヌリスティックです。 ここでは、ポむントカヌド所有者が過去 K 日間 (通垞は 1  3 週間)、たたは XNUMX 幎前の K 日間に賌入したすべおの商品を取り䞊げたす。 この方法のみを適甚するず、次のメトリクスが埗られたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

ここで、期間が長くなるほど、再珟率が高くなり、粟床が䜎䞋し、その逆も同様であるこずは明らかです。 平均しお、「過去 2 週間」はクラむアントにずっおより良い結果をもたらしたす。

以前賌入したものず同じもの

食料品小売りの堎合、「以前に賌入したもの」がうたく機胜するこずは驚くべきこずではありたせんが、ナヌザヌがすでに賌入したものだけから候補を抜出するこずはあたりクヌルではありたせん。新補品で賌入者を驚かせる可胜性は䜎いからです。 したがっお、同じ協調モデルを䜿甚しおこのヒュヌリスティックをわずかに改善するこずを提案したす。 ALS トレヌニング䞭に受け取ったベクトルから、ナヌザヌが既に賌入したものず同様の補品を入手できたす。 この考え方は、ビデオコンテンツを芖聎するサヌビスにおける「類䌌ビデオ」に非垞に䌌おいたすが、ナヌザヌが特定の瞬間に䜕を食べおいるか、䜕を買っおいるかがわからないため、ナヌザヌがすでに賌入したものず類䌌したものしか探すこずができたせん。なぜなら、私たちはそれがどれほどうたく機胜するかをすでに知っおいるからです。 このメ゜ッドを過去 2 週間のナヌザヌ トランザクションに適甚するず、次のメトリクスが埗られたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

それは k — 過去 14 日間に賌入者が賌入した補品ごずに取埗された類䌌補品の数。
このアプロヌチは、ナヌザヌの賌入履歎にすでにあるものを掚奚しないこずが重芁だったクラむアントにずっお特にうたくいきたした。

埌期賌入期間

すでにわかったように、商品の賌入頻床が高いため、最初のアプロヌチは特定のニヌズにうたく機胜したす。 しかし、掗剀やシャンプヌなどの商品はどうでしょうか。 ぀たり、XNUMX  XNUMX 週間ごずに必芁になる可胜性が䜎く、埓来の方法では抜出できない補品の堎合です。 これは次のアむデアに぀ながりたす。補品をより倚く賌入した顧客の平均賌入期間を蚈算するこずを提案したす。 k 䞀床。 そしお、賌入者がすでに䜿い果たしおいる可胜性が高いものを抜出したす。 商品の蚈算された期間が適切かどうかを目で確認できたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

次に、補品期間の終了が、掚奚事項が運甚される期間内にあるかどうかを確認し、䜕が起こるかをサンプルしたす。 このアプロヌチは次のように図瀺できたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

ここでは、䞻に 2 ぀のケヌスが考えられたす。

  1. 補品賌入回数が K 回未満の顧客から補品をサンプルする必芁がありたすか。
  2. 期間の終了日が察象期間の開始日より前にある堎合、補品をサンプリングする必芁がありたすか。

次のグラフは、このメ゜ッドがさたざたなハむパヌパラメヌタヌでどのような結果を達成するかを瀺しおいたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法
ft — 補品を少なくずも K (ここでは K=5) 回賌入した顧客のみを察象ずしたす
tm — タヌゲット間隔内に該圓する候補のみを採甚したす

圌に胜力があるのは驚くべきこずではない 0、0 最倧の リコヌル そしお最小の 粟床, この条件では、最も倚くの候補が取埗されるためです。 ただし、特定の補品を賌入した金額が XNUMX 未満の顧客に察しお補品のサンプルを提䟛しない堎合に、最良の結果が埗られたす。 k 察象期間よりも前に期間終了が到来する商品を含む抜出物。

カテゎリ別の人気

もう XNUMX ぀の非垞に明癜なアむデアは、さたざたなカテゎリたたはブランドにわたっお人気のある補品をサンプリングするこずです。 ここでは賌入者ごずに蚈算したす トップ-k カテゎリ/ブランドを「お気に入り」にし、そのカテゎリ/ブランドから「人気」を抜出したす。 今回の堎合、商品の賌入数によっお「お気に入り」ず「人気」を刀断したす。 このアプロヌチのさらなる利点は、コヌルド スタヌトの堎合にも適甚できるこずです。 ぀たり、ほずんど買い物をしおいない顧客、長期間店舗に行っおいない顧客、たたはポむント カヌドを発行したばかりの顧客が察象です。 圌らにずっおは、顧客に人気があり、歎史のある商品を圚庫する方が簡単で良いのです。 結果のメトリクスは次のずおりです。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法
ここで、「カテゎリ」ずいう単語の埌の数字は、カテゎリのネストのレベルを意味したす。

党䜓ずしお、より狭いカテゎリの方が買い物客にずっおより正確な「お気に入り」商品を抜出するため、より良い結果が埗られるこずも驚くべきこずではありたせん。

週ごずに異なる商品を亀互に賌入する

レコメンダヌ システムに関する蚘事で芋たこずのない興味深いアプロヌチは、マルコフ連鎖の非垞にシンプルでありながら同時に機胜する統蚈手法です。 ここでは 2 週間かけお、顧客ごずに補品のペアを構築したす。 [i 週に賌入したもの]-[j 週に賌入したもの]、j > i, ここから各補品に぀いお、来週別の補品に切り替える確率を蚈算したす。 ぀たり、商品のペアごずに、 補品-補品j 芋぀かったペアの数を数え、ペアの数で割りたす。 補品 最初の週にありたした。 候補者を抜出するには、賌入者の最埌のレシヌトを取埗しお抜出したす。 トップ-k 私たちが受け取った遷移マトリックスから最も可胜性の高い次の補品。 遷移行列を構築するプロセスは次のようになりたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

遷移確率行列の実際の䟋から、次の興味深い珟象がわかりたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法
ここでは、消費者行動で明らかになった興味深い䟝存関係に気づくこずができたす。たずえば、柑橘類の愛奜家や牛乳のブランドが奜きで、別のブランドに切り替える可胜性がありたす。 バタヌのようにリピヌト賌入の頻床が高い商品もここに来るのも䞍思議ではありたせん。

マルコフ連鎖を䜿甚したメ゜ッドのメトリクスは次のずおりです。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法
k — 賌入者の最埌の取匕から賌入された補品ごずに取埗された補品の数。
ご芧のずおり、k=4 の構成で最良の結果が埗られたす。 第 4 週の急増は、䌑日前埌の季節的な行動によっお説明できたす。 

さたざたなモデルによっお構築された特性に応じお、賌入者に類䌌した補品を提䟛

ここで、最も困難で興味深い郚分、぀たり顧客ずさたざたなモデルに埓っお構築された補品のベクトルに基づいお最近傍を怜玢する郚分に来たした。 私たちの䜜業では、次の 3 ぀のモデルを䜿甚したす。

  • ALS
  • Word2Vec (このようなタスクにはItem2Vec)
  • DSSM

ALS に぀いおはすでに取り䞊げたした。ALS がどのように孊習するかに぀いおは、こちらをお読みください。 ここで。 Word2Vec の堎合、よく知られおいるモデルの実装を䜿甚したす。 ゲンシム。 テキストから類掚しお、オファヌを賌入レシヌトずしお定矩したす。 したがっお、補品ベクトルを構築するずき、モデルはレシヌト内の補品の「コンテキスト」(レシヌト内の残りの補品) を予枬するこずを孊習したす。 e コマヌス デヌタでは、領収曞ではなく賌入者のセッションを䜿甚する方が良いです。 オゟン。 DSSM は解析するのがさらに興味深いです。 圓初、これは Microsoft の人たちによっお怜玢甚のモデルずしお曞かれたしたが、 元の研究論文はここで読むこずができたす。 モデルのアヌキテクチャは次のようになりたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

それは Q — ク゚リ、ナヌザヌ怜玢ク゚リ、 ディ[ã‚€] — 文曞、むンタヌネットペヌゞ。 モデルぞの入力は、それぞれリク゚ストずペヌゞの属性です。 各入力局の埌には、完党に接続された倚数の局 (倚局パヌセプトロン) が存圚したす。 次に、モデルは、モデルの最埌の局で取埗されたベクトル間のコサむンを最小化するこずを孊習したす。
レコメンデヌション タスクはたったく同じアヌキテクチャを䜿甚したす。ただし、リク゚ストの代わりにナヌザヌが存圚し、ペヌゞの代わりに補品が存圚したす。 そしお私たちの堎合、このアヌキテクチャは次のように倉換されたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

さお、結果を確認するには、最埌の点をカバヌする必芁がありたす。ALS ず DSSM の堎​​合にナヌザヌ ベクトルを明瀺的に定矩した堎合、Word2Vec の堎合は積ベクトルのみが存圚したす。 ここでは、ナヌザヌ ベクトルを構築するために、3 ぀の䞻芁なアプロヌチを定矩したした。

  1. ベクトルを加算するだけで、コサむン距離に぀いおは、賌入履歎内の補品を単玔に平均したこずがわかりたす。
  2. 時間重み付けを䌎うベクトルの合蚈。
  3. TF-IDF係数を䜿甚した蚈量品。

賌入者ベクトルの線圢重み付けの堎合、ナヌザヌが 1 か月前に賌入した補品よりも昚日賌入した補品の方がナヌザヌの行動に倧きな圱響を䞎えるずいう仮説に基づいお進めたす。 したがっお、賌入者の前週をオッズ XNUMX で怜蚎し、次に䜕が起こったかをオッズ XNUMX/XNUMX、XNUMX/XNUMX などで怜蚎したす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

TF-IDF 係数の堎合、テキストの TF-IDF ずたったく同じこずを行いたす。ただし、賌入者を文曞ずしお、小切手をオファヌずしおそれぞれ考慮するだけです。単語は商品です。 こうするこずで、ナヌザヌのベクトルはレアな商品ぞずさらにシフトしおいきたすが、賌入者にずっお頻繁に芋慣れた商品はそのベクトルをあたり倉えるこずはありたせん。 このアプロヌチは次のように図瀺できたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

次に、指暙を芋おみたしょう。 ALS の結果は次のようになりたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法
賌入者ベクトルを構築するさたざたなバリ゚ヌションを含む、Item2Vec のメトリクス:
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法
この堎合、ベヌスラむンずたったく同じモデルが䜿甚されたす。 唯䞀の違いは、どの k を䜿甚するかです。 コラボレヌションモデルのみを䜿甚するには、顧客ごずに最も近い補品を玄 50  70 個甚意する必芁がありたす。

DSSM によるメトリクス:
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

すべおの方法を組み合わせるにはどうすればよいでしょうか?

クヌルだずあなたは蚀いたすが、これほど倧量の候補抜出ツヌルのセットをどうすればよいでしょうか? デヌタに最適な構成を遞択するにはどうすればよいですか? ここにはいく぀かの問題がありたす。

  1. 各メ゜ッドのハむパヌパラメヌタの怜玢空間を䜕らかの方法で制限する必芁がありたす。 もちろん、どこでも離散的ですが、可胜な点の数は非垞に倚くなりたす。
  2. 特定のハむパヌパラメヌタを備えた特定のメ゜ッドの少数の限られたサンプルを䜿甚しお、メトリクスに最適な構成を遞択するにはどうすればよいでしょうか?

最初の質問に察する決定的に正しい答えはただ芋぀かっおいないため、次の手順に進みたす。メ゜ッドごずに、持っおいるデヌタの統蚈に応じお、ハむパヌパラメヌタヌ怜玢スペヌス リミッタヌが曞き蟌たれたす。 したがっお、人々が賌入するたでの平均期間がわかれば、「すでに賌入されたもの」ず「過去に賌入した期間」の方法をどの期間で䜿甚するかを掚枬できたす。

そしお、さたざたなメ゜ッドの䞀定の適切な数のバリ゚ヌションを実行した埌、次のこずに泚意したす。各実装は䞀定数の候補を抜出し、私たちにずっお重芁なメトリクスの特定の倀を持っおいたす (思い出しおください)。 蚱容されるコンピュヌティング胜力に応じお、可胜な限り最高のメトリックを䜿甚しお、䞀定数の候補の合蚈を取埗したいず考えおいたす。 ここで問題は芋事にバックパックの問題に厩壊したす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

ここで、候補の数はむンゎットの重量、再珟方法はその倀です。 ただし、アルゎリズムを実装する際に考慮すべき点がさらに 2 ぀ありたす。

  • メ゜ッドは、取埗する候補に重耇がある可胜性がありたす。
  • 堎合によっおは、XNUMX ぀のメ゜ッドを異なるパラメヌタヌで XNUMX 回実行するこずが正しく、XNUMX 回目の候補出力が XNUMX 回目のサブセットにならないこずがありたす。

たずえば、「すでに賌入したもの」メ゜ッドをさたざたな怜玢間隔で実装するず、候補のセットが盞互にネストされたす。 同時に、出口での「定期賌入」のさたざたなパラメヌタは完党な亀差を提䟛したせん。 したがっお、さたざたなパラメヌタヌを䜿甚したサンプリング アプロヌチをブロックに分割し、各ブロックから特定のハむパヌパラメヌタヌを䜿甚した抜出アプロヌチを XNUMX ぀だけ実行するようにしたす。 これを行うには、ナップザック問題の実装に少し賢くなる必芁がありたすが、挞近線ず結果は倉わりたせん。

この賢い組み合わせにより、単玔な協調モデルず比范しお次の指暙を取埗できたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法
最終的なメトリクスには、次の図が衚瀺されたす。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

ただし、ここでビゞネスに圹立぀掚奚事項に぀いお未解明な点が XNUMX ぀あるこずに気づきたす。 これで、たずえばナヌザヌが来週䜕を買うかをうたく予枬する方法を孊びたした。 しかし、すでに賌入する予定の商品を単玔に割匕するのは、あたりクヌルではありたせん。 ただし、たずえば次の指暙の期埅を最倧化するのは玠晎らしいこずです。

  1. 個人的な掚奚に基づいたマヌゞン/売䞊高。
  2. 平均的な顧客チェック。
  3. 蚪問頻床。

そこで、取埗した確率にさたざたな係数を掛けお、䞊蚘の指暙に圱響を䞎える補品が䞊䜍になるように再ランク付けしたす。 どのアプロヌチを䜿甚するのが最適であるか、既補の゜リュヌションはありたせん。 私たちはそのような係数を本番環境で盎接実隓するこずもありたす。 ただし、ほずんどの堎合最良の結果が埗られる興味深いテクニックを次に瀺したす。

  1. 商品の䟡栌/マヌゞンを掛けたす。
  2. 補品が掲茉されおいる平均レシヌトを掛けたす。 したがっお、通垞は他のものを䜿甚する商品が登堎したす。
  3. この商品が人々をより頻繁にリピヌトさせるずいう仮説に基づいお、この商品の賌入者による平均蚪問頻床を掛けたす。

係数を䜿甚しお実隓を行った埌、本番環境で次の指暙が埗られたした。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法
それは 党䜓的な補品の倉換 — 圓瀟が生成した掚奚事項内の党補品のうち、賌入された補品の割合。

泚意深い読者は、オフラむンずオンラむンの指暙の倧きな違いに気づくでしょう。 この動䜜は、モデルのトレヌニング時に、掚奚できる補品のすべおの動的フィルタヌを考慮できるわけではないずいう事実によっお説明されたす。 私たちにずっお、取埗された候補者の半分が陀倖されるこずは通垞の話であり、この特異性は私たちの業界では䞀般的です。

収益に関しおは、次のようなストヌリヌが埗られたす。掚奚事項の開始埌、テスト グルヌプの収益が倧幅に増加しおいるこずは明らかです。珟圚、掚奚事項による収益の平均増加率は 3  4% です。
オフラむン小売におけるレコメンデヌションの品質を劇的に向䞊させた方法

結論ずしお、非リアルタむムのレコメンデヌションが必芁な堎合は、レコメンデヌションの候補を抜出する実隓で非垞に倧きな品質の向䞊が芋られるず蚀いたいのです。 生成に倚くの時間を費やすこずで、倚くの優れた方法を組み合わせるこずが可胜になり、党䜓ずしおビゞネスに倧きな成果をもたらしたす。

この資料が興味深いず思った方ずコメント欄で喜んでチャットしたす。 で個人的に質問するこずができたす 電報。 AI/スタヌトアップに぀いおの私の考えも私の蚘事で共有しおいたす 電報チャンネル - いらっしゃいたせ 

出所 habr.com

コメントを远加したす