脳が朚を叩く方法、たたはニュヌラルネットワヌクを䜿甚しお掚奚システムを䜜成した方法

掚薊システムをどのように䜜りたすか 倚くの人々はすぐに、どのようにむンポヌトしおスタックするかを把握しおいたした。 XGBoost CatBoost。 最初は同じ画像が頭に珟れたしたが、倚くの時間があったので、誇倧宣䌝をきっかけにニュヌラルネットワヌクで行うこずにしたした。 それらの䜜成、テスト、結果、および私たちの考えの経隓を以䞋に説明したす。



問題の声明


私たちのタスクは、䌚瀟が提䟛するサヌビスを䜿甚するためのオファヌを送信する必芁がある人を遞択するモデルを䜜成するこずでした。 以前は、これは決定的な森でした。 「党胜の」ニュヌラルネットワヌクでこれを行うこずにし、同時にそれらがどのように機胜し、本圓に耇雑かどうかを理解したした。 䞻題分野を研究した埌、私たちの焊点はいく぀かのアヌキテクチャにありたした。


興味のあるアヌキテクチャ


さらに、䜕かの名前をクリックするず、蚘事にアクセスするこずができたす。


  1. CNN
    䞻に画像凊理に䜿甚されるアヌキテクチャ。
    それが䜕であり、どのように機胜するかは、 ここずここで読むこずができたす 。
    デヌタを圧瞮し、トランザクション非垞にたばらなテヌブルの圢匏で提瀺されたの䟝存関係を匷調するために、LSTMの前に別々に配眮するこずにしたした。
    それ自䜓、以䞋で説明するLSTMず組み合わせた堎合よりもうたく機胜したせんでしたが、トレヌニングを倧幅に加速し、品質を改善したした。

1次元のconv 1Dコアを持぀畳み蟌みネットワヌクを䜿甚したした。


  1. Lstm
    これは、リカレントニュヌラルネットワヌクの䞀般的なアヌキテクチャであり、時系列、テキスト、分類のパタヌンを芋぀ける、重芁なパタヌンを蚘憶する、無関係なパタヌンを忘れるずいった問題によく珟れおいたす。

圌女のデバむスに぀いお非垞に詳现で理解しやすいこずをここに曞いおいたす 。
タスクでは2぀のLSTMレむダヌを䜿甚し、各レむダヌには128個のニュヌロンがありたした。
䞊蚘のアヌキテクチャに基づいお、3぀のモデルの動䜜を評䟡したした。



  1. 因数分解
    マトリックスを想像しおください。各行はナヌザヌであり、各列はナヌザ​​ヌが評䟡できるアむテムです。 䜍眮i、jの行列の倀は、i番目のナヌザヌからj番目のサブゞェクトの掚定倀です。 ここで、数孊的装眮を䜿甚しお、このマトリックスを2぀のマトリックスナヌザヌ、フィヌチャヌフィヌチャヌ、オブゞェクトの積ずしお衚したす。 ここで、機胜は匷調するいく぀かの兆候です。 ここで、ナヌザヌ行にオブゞェクト列をスカラヌで乗算するず、このナヌザヌがこのオブゞェクトをどれだけ気に入っおいるかを瀺す数倀が埗られたす。
    因数分解のためのラむブラリ
    lightfm
    libfm


  2. ペアワむズ
    • 協調フィルタリングは、過去の行動や評䟡が類䌌しおいる堎合、将来的に類䌌するずいう仮定に基づいた予枬方法です。

ナヌザヌの倖郚明瀺的な行動、ナヌザヌ自身が䜕かを評䟡するNetflix、および行動が䞀臎する暗黙の暗黙の法埋この堎合は同様のトランザクションシヌケンスを持぀の䞡方に基づくこずができたす。


この蚘事のアプロヌチは、協調フィルタリングに基づいおおり、明瀺的パタヌンず暗黙的パタヌンの䞡方を考慮しおいたす。 アヌキテクチャはニュヌラルネットワヌクに基づいおおり、芁玠のペアごずにナヌザヌの奜みを調査したす。これらのオブゞェクトの衚珟を考慮し、その前に構築され、行列の行Usナヌザヌx機胜、Itアむテムx機胜に栌玍されたす
行列分解ずの類掚によっお。 ナヌザヌ向けにネットワヌクをトレヌニングする際に、2぀の被隓者が遞択されたす。2人の被隓者に察しお、圌が掚定倀を䞎え、マトリックスUsずItの察応する行を切り取り、接続し、ネットワヌクに送りたす。 損倱関数は2぀の郚分で構成されたす。最初の郚分は、ニュヌラルネットワヌク自䜓の出力での損倱を担圓し、2番目は、トレヌニングネットワヌクに䟛絊されたベクトルのスカラヌ積も珟実に察応するずいう事実を担圓したす。 たずえば、item_1はitem_2よりも優れおいるず蚀いたす。぀たり、出力ニュヌラルネットワヌクはれロより倧きい数を䞎え、察応するベクトルのスカラヌ積は正でなければなりたせん。 したがっお、因子分解はこのニュヌラルネットワヌクを䜿甚しお行われたす。 さらに、ナヌザヌごずにアむテムの順序が線圢であるず仮定し、この仮定に基づいお特定のナヌザヌのすべおのアむテムをランク付けしたす。


私たちは䜕をしたしたか ナヌザヌがより頻繁に支払いを行い、この前提に基づいおこのアヌキテクチャを䜿甚した堎合、category_1はcategory_2よりも優れおいるず述べたした。



デヌタに぀いお少し


QIWIは、ナヌザヌの賌入履歎を含むデヌタセットず、ナヌザヌが䜕を賌入するように掚奚されおいるか、および15日間にわたっお掚奚事項に埓ったかどうかに関する情報を提䟛したした。 賌入履歎を調べお、圌が賌入する可胜性が高い補品を予枬したした。 補品のごく䞀郚のカテゎリにのみ興味がありたした合蚈で5぀ありたす。 したがっお、関心のあるカテゎリに぀いお、 それらに䟝存するすべおおよびすべおの習慣に該圓する True True、False Positive、True Negative、False Negativeを枬定するこずができたした。


たた、デヌタのバランスが非垞に悪く、ほずんどすべおのトランザクションが興味のないカテゎリに分類されおいたため、この問題が発生したした。


䜜業進捗


ここでは、さたざたなテストにおけるモデルの動䜜ず品質に぀いお説明したす。
さたざたなモデルがさたざたなデヌタセットでどのように機胜するかを䞀貫しお説明したす。


Lstm
最初は、少量のデヌタ、玄1侇2,000ナヌザヌのトランザクション履歎を取埗し、次の賌入のカテゎリを予枬しようずしたした。 そしお、これが䞊蚘のアヌキテクチャの仕組みです。




あなたが芋るこずができるように、圌女は非垞に再蚓緎されおいたす。 テストデヌタで次の品質指暙が埗られたした。 粟床0.447。 MRR0.576 しかし、圌らは速床がかなり良いこずを芋たずき、圌らは私たちのモデルが圌が基本的に賌入したものをナヌザヌに予枬する可胜性が高いず考えたした。 これを行うために、トランザクションの履歎に予枬カテゎリが存圚しない人々のアルゎリズムの品質をチェックしたした 以䞋、特別なテスト 。 テストにはそのような人はあたりいたせんでした玄500人。 圌らは次の結果を埗たした 粟床0.037; MRR0.205 そのような人々では、速床が著しく悪化するこずが刀明したした。


しかし、私たちは絶望せず、LSTMでさたざたなオプションを詊した結果、このアヌキテクチャに到達したしたConv1D-> Max Pooling-> LSTMrec dropoutx2->Dense-> Dropoutx2-> Softmax。 仕組みは次のずおりです。



絵ははるかに良いです。 ネットワヌクはそれほど再蚓緎されおいたせん。 テストの速床を芋たす 粟床0.391; MRR0.534 結果は、以前のネットワヌクよりもわずかに悪いです。 しかし、結論に急がず、特別なテストを芋おみたしょう。 粟床0.150。 MRR0.312 特別なテストのおかげで、このモデルはデヌタ内のパタヌンをより適切に芋぀けるこずがわかりたす。 このアヌキテクチャを芚えおおいおください、それはただ私たちにずっお有甚です。




グラフは再トレヌニングを瀺しおいたすが、単玔なLSTMほど匷くはありたせん。 テスト結果は次のずおりです。 粟床0.529 MRR0.668 。 特別なテスト 粟床0.014; MRR0.217 Char CNNの仕事をすぐに芋おください。ただし、時代は少ないです。



ここで、ネットワヌクははるかに高速に再トレヌニングされ、テストでは良奜な結果が埗られたすが、特別なテストによれば、耇雑なパタヌンの孊習が䞍十分であるこずがわかりたす。
テスト粟床0.543; MRR0.689 ;
特別なテスト粟床0.0098; MRR0.214


ペアワむズ
たず、蚘事に埓っおモデルを䜜成したした。
Pytorchでやった。 これは、あたり䞀般的ではないニュヌラルネットワヌクを䜜成する堎合に非垞に䟿利なフレヌムワヌクです。 最近、メヌルからの圌の説明を含む蚘事がありたした 。


たず、movielens デヌタセットの著者ずほが同じNDCG品質を達成したした。


その埌、私たちはそれをデヌタに戻したした。 デヌタを2぀の「䞀時的な郚分」に分割したした。
ニュヌラルネットワヌクの入力で、各カテゎリの各個人の合蚈のこのカテゎリに察する支払いの割合をベクトルずしお適甚したした。 したがっお、デヌタは非垞に容量が倚く、LSTMの数時間に比べお、ビデオカヌドで玄30分間、LSTMよりも䜕倍も速く勉匷したした。
品質を芋おみたしょう。
300,000人のナヌザヌ向け。 メトリックは、興味のあるクラスだけでなく、すべおのクラスに぀いお枬定されたす。
| NDCG @ 50.46 | 粟床@ 30.62 |
これらの指暙は、サンプル䜿甚するナヌザヌずは異なり、7以内に倉化したす。
珟圚、数癟䞇人のナヌザヌを持぀倧芏暡なデヌタセット。
すべおのクラスで勉匷し、興味のあるクラスのみをランク付けしたす。
ナヌザヌが次に支払うクラスを予枬した堎合、答えは正しいず芋なされたす。
写真は次のようなものです。


クラス1小クラス2グレヌド3グレヌド4
ほずんど予枬しないクラスは倧きくなりたすが、圌女はただほずんど予枬しおいたせん粟床= 0.45リコヌル= 0.9粟床= 0.27リコヌル= 0.6

因数分解lightfm。
500,000人のナヌザヌずPairwiseで䜿甚し、各カテゎリヌのナヌザヌごずにこのカテゎリヌでの支払いの割合を衚したした。
すべおがトレヌニンググラフから衚​​瀺されたす反埩回数未満。




前の段萜から、2぀の結論を出すこずができたす。


  1. 私たちのタスクは、ランク付けよりも分類によっお解決されたす。
  2. マルチクラスAUCは特定のものであり、どのように考慮されるかを垞に監芖する必芁がありたす。

結果


さらにテストを行った結果、CNN + LSTMが他よりも優れおいるず刀断したした。
倧芏暡なデヌタセットを取埗し、必芁な5぀のクラスがどの皋床予枬されるかを芳察したした。
トレヌニングには500䞇人のナヌザヌが、テストには140䞇人のナヌザヌがいたした。 孊習速床を䞊げるためにそしお速床を䞊げる必芁がありたした、分類の䞭間品質を枬定しなかったため、トレヌニングスケゞュヌルは:(になりたせん。


倉換粟床に関心がありたす。 このメトリックは、このカテゎリの掚奚が送信された人の総数のうち、このカテゎリの補品を賌入した人の割合を瀺したす。 このメトリックの良奜なパフォヌマンスは、ネットワヌクが正垞に機胜するこずを意味するものではないこずは明らかです。掚奚されるこずはほずんどなく、高い倉換を達成できるからです。 党䜓像を芋るために、True Positive、False Positive、True Negative、False Negativeを芋おみたしょう。


4぀の芁玠がある衚の䞋には、次の意味がありたす。


真のネガ停陜性
停陰性真のポゞティブ

Num-このクラスに本圓に属しおいる人の数


グレヌド1 


テネシヌ州1440209FP1669
FN3895TP1842

粟床思い出すf1-スコア数
0.520.320.405737



グレヌド2 


テネシヌ州1275939FP55822
FN43994TP71860

粟床思い出すf1-スコア数
0.560.620.59115854



グレヌド3 


テネシヌ州1136065FP108802
FN91882TP110866

粟床思い出すf1-スコア数
0.500.550.52202748



グレヌド4 


テネシヌ州1372454FP18812
FN21889TP34460

粟床思い出すf1-スコア数
0.650.610.6356349



グレヌド5 


テネシヌ州1371649FP18816
FN22391TP34759

粟床思い出すf1-スコア数
0.650.610.6357150



5぀のクラスのみを芋おいるため、「その他」クラスを远加する必芁がありたす。圓然、他のクラスよりも倚くのクラスがありたす。


クラス6その他 


テネシヌ州18749FP327257
FN2501TP1099108

粟床思い出すf1-スコア数
0.771.000.871101609



ネットワヌクは、ナヌザヌが今埌15日間に支払うクラスを、他のクラスよりも数倍少ないクラスクラス3ず比范したクラス1などでも非垞によく予枬したす。


前のアルゎリズムずの比范。


同じデヌタの比范テストでは、このアルゎリズムが決定的な森林に基づく以前のアルゎリズムよりも数倍高い倉換を提䟛するこずが瀺されたした。


たずめ


私たちの蚘事からいく぀かの結論を匕き出すこずができたす。
1CNNずLSTMは時系列の掚奚に䜿甚できたす。
2少数のクラスの堎合、ランク付けよりも分類問題を解決する方が適切です。


ニュヌラルネットワヌクは興味深いトピックですが、時間がかかり、予期せぬ驚きをもたらす可胜性がありたす。
たずえば、PyTorchでの最初のペアワむズモデルは、゚ラヌ関数のどこかでコヌドが豊富であるため、募配の䌝播を遮断したため、最初の1週間はうたく機胜したせんでした。


最埌に、自己玹介をしおください。

巊から右Akhmedkhan @Ahan 、Nikolai、Ivan @VProv 。 IvanずAkhmedkhanはモスクワ工科倧孊の孊生であり、むンタヌンシップを完了しおいたす。䞀方、ニコラむはQIWIで働いおいたす。
ご枅聎ありがずうございたした



Source: https://habr.com/ru/post/J339454/


All Articles