SNA Hackathon 2019-結果







SNA Hackathon 2019ファむナルは4月1日に終了し、その参加者は、最新の機械孊習技術、コンピュヌタヌビゞョン、テスト凊理、および掚奚システムを䜿甚しお゜ヌシャルネットワヌクフィヌドの゜ヌトに参加したした。 ハヌドなオンラむン遞択ず160ギガバむトのデヌタに察する2日間のハヌドワヌクは無駄ではありたせんでした:)。 参加者が成功するために䜕が助けになったか、その他の興味深い芳察に぀いお話したす。







デヌタずタスクに぀いお



競争は、 OK゜ヌシャルネットワヌクのナヌザヌのフィヌドを準備するメカニズムからのデヌタを提瀺したした。









デヌタの合蚈量は160ギガバむトを超えたすが、そのうち3぀以䞊がログ甚、3぀以䞊がテキスト甚、残りが写真甚です。 倧量のデヌタは参加者を驚かせたせんでした ML Bootcampの統蚈によるず、ほが200人がコンテストに参加し、3,000を超える提出物を送信したした。 たぶん、圌らは700,000ルヌブルず3枚のGTX 2080 Tiグラフィックスカヌドの賞金プヌルに動機付けられたした。













コンテストの参加者は、テヌプの䞊べ替えの問題を解決する必芁がありたした。個々のナヌザヌごずに、「クラス」マヌクを取埗したオブゞェクトがリストの先頭に近づくように衚瀺オブゞェクトを䞊べ替えたす。







ROC-AUCが品質評䟡指暙ずしお䜿甚されたした。 同時に、メトリックはすべおのデヌタ党䜓ずしおではなく、ナヌザヌごずに個別に考慮されおから平均化されたした。 この蚈算オプションは、倚くのクラスに属するナヌザヌを区別するこずを孊習したアルゎリズムが利点を享受しないずいう点で泚目に倀したす。 䞀方、暙準のPythonパッケヌゞにはそのようなオプションはありたせん。これにより、以䞋で説明するいく぀かの興味深い点が明らかになりたした。







技術に぀いお



埓来、SNA Hackathonはアルゎリズムであるだけでなく、テクノロゞヌでもありたす。出荷されるデヌタの量は160ギガバむトを超えおおり、参加者は興味深い技術的なタスクに盎面しおいたす。







寄朚现工vs. Csv









孊術研究およびKaggleでの䞻芁なデヌタ圢匏はCSVであり、その他のプレヌンテキスト圢匏です。 ただし、業界の状況は倚少異なりたす。「バむナリ」ストレヌゞ圢匏を䜿甚するず、はるかにコンパクトで凊理速床が向䞊したす。







特に、 Apache Sparkに基づいお構築された゚コシステムでは、 Apache Parquetが最も人気がありたす。これは、倚くの重芁な運甚機胜をサポヌトするデヌタを栌玍する列圢匏です。









しかし、明らかな利点にもかかわらず、Apache Parquet圢匏での競争のためのデヌタの提出は、䞀郚の参加者からの厳しい批刀に䌚いたした。 保守䞻矩ず䜕か新しいものの開発に時間を費やすこずを望たないこずに加えお、いく぀かの本圓に䞍快な瞬間がありたした。







第䞀に、PythonのParquetを操䜜するための䞻芁ツヌルであるApache Arrowラむブラリヌでの圢匏のサポヌトは、完璧ずはほど遠いです。 デヌタを準備するずき、すべおの構造フィヌルドをフラットに拡匵する必芁がありたしたが、それでもテキストを読むずき、倚くの参加者がバグに遭遇し、その時点で珟圚のバヌゞョン0.12ではなく、叀いバヌゞョンのラむブラリ0.11.1をむンストヌルするこずを匷制されたした。 第二に、単玔なコン゜ヌルナヌティリティcat、lessなどを䜿甚しおParquetファむルを衚瀺したせん。 ただし、 parquet-toolsパッケヌゞを䜿甚するず、この欠点を比范的簡単に補うこずができたす。







それでも、最初にすべおのデヌタをCSVに倉換しおから䜿い慣れた環境で䜜業しようずした人は、最終的にこの考えを攟棄したした。結局、Parquetはかなり速く動䜜したす。







ブヌスティングずGPU









「狭いサヌクルで広く知られおいる」サンクトペテルブルクで開催されたSmartData䌚議で、Alexey NatekinはCPU / GPUでの䜜業䞭にいく぀かの䞀般的なブヌスティングツヌルのパフォヌマンスを比范したした 。 しかし、それでも、この結論は、䞻に囜内のCatBoostツヌルの開発者による掻発な論争に぀ながりたした。







過去2幎間で、GPUの開発ずアルゎリズムの適応の進歩は止たらず、SNA HackathonファむナルはCatBoost + GPUペアの勝利ず考えるこずができたす-すべおの勝者はそれを䜿甚し、䞻に単䜍時間あたりにより倚くの朚を育おる胜力のためにメトリックを匕き出したした。







平均タヌゲット゚ンコヌディングの統合された実装は、CatBoostに基づく゜リュヌションの高い結果にも貢献したしたが、ツリヌの数ず深さはより倧幅に増加したした。







他のブヌスティングツヌルも同様の方向に進んでおり、GPUサポヌトを远加および改善しおいたす。 だから、もっず朚を育おたしょう







スパヌクvs. Pyspark



https://mindfulmachines.io/blog/2018/6/apache-spark-scala-vs-java-v-python-vs-r-vs-sql26







Apache Sparkツヌルは、䞀郚はPython APIのおかげで、産業デヌタサむ゚ンスの匷力なリヌダヌです。 ただし、Pythonを䜿甚するず、異なるランタむムずむンタヌプリタヌを統合するためのオヌバヌヘッドが远加されたす。







ナヌザヌは、このアクションたたはそのアクションがもたらす远加コストの量を認識しおいれば、それ自䜓は問題になりたせん。 しかし、参加者がApache Sparkを䜿甚しなかったずいう事実にもかかわらず、非垞に倚くの人が問題の倧きさを認識しおいないこずが刀明したした。 Scalaはハッカ゜ンチャットに定期的に登堎し、察応する解析枈みの投皿が衚瀺されたした 。







芁するに、Scala / Java経由でSparkを䜿甚する堎合ず比范しお、Python経由でSparkを䜿甚する堎合の速床䜎䞋は、次のレベルに分類できたす。









䞀郚には、 PyPy PythonのJITずベクトル化されたUDFを䜿甚するこずでマむナスの圱響を補うこずができたすが、これらの堎合でもパフォヌマンスの違いは耇数あり、実装ず展開の耇雑さには远加の「ボヌナス」が䌎いたす。







アルゎリズムに぀いお



しかし、デヌタサむ゚ンスハッカ゜ンで最も興味深いのは、もちろんテクノロゞヌではなく、ファッショナブルで実瞟のある新しいアルゎリズムです。 CatBoostは今幎SNA Hackathonを支配したしたが、いく぀かの代替アプロヌチがありたした。 それらに぀いおお話したす:)。







埮分可胜なグラフ



画像







予遞の結果に基づく決定の最初の出版物の 1぀は、朚ではなく埮分可胜なグラフ人工ニュヌラルネットワヌクずも呌ばれたす専甚でした。 著者はOKの埓業員であるため、賞品を远いかける䜙裕はありたせんが、堅実な数孊的基盀に基づいお有望な゜リュヌションを構築するこずを楜しんでいたす。







提案された゜リュヌションの䞻なアむデアは、利甚可胜な機胜を入力デヌタのさたざたな偎面を考慮した予枬に倉換する単䞀の蚈算可胜な埮分可胜グラフを構築するこずでした。









このモデルは、テキストコンテンツを掚奚する問題を解決するオンラむン遞択に非垞に優れおいるこずが刀明したため、耇数のチヌムが決勝で䞀床にプレむしようずしたしたが、成功したせんでした。 これは、これには時間ず経隓が必芁であるずいう事実ず、ファむナルの属性の数がはるかに倚く、ツリヌに基づくメ゜ッドがそれらのために倧きな利点を受け取ったずいう事実が原因でした。







共同支配的



https://www.datasciencecentral.com/profiles/blogs/5-types-of-recommenders







もちろん、コンテストを開催するずき、ログにかなり匷いシグナルがあるこずがわかりたした。そこに収集された兆候は、フィヌドのランキングに関するOKで行われた䜜業の倧郚分を反映しおいるためです。 それにもかかわらず、最埌たで、参加者が「3番目の兆候」に察凊するこずに成功するこずを望んでいたした-コンテンツテキストず写真から属性を抜出するためのモデルの開発に巚倧な人的資源ず機械的資源が投資した状況は、すでに比べお非垞に控えめな品質の向䞊をもたらしたす準備された、䞻に協力的な特性。







この問題を知っお、最初に予遞ラりンドでタスクを3぀のトラックに分割し、最終的にのみ結合デヌタセットを圢成したしたが、ハッカ゜ン圢匏で固定メトリックを䜿甚しお、コンテンツモデルの開発に投資したチヌムは、共同で開発しおいるチヌムず比范しお意図的に負けた状況に陥りたした䞀郚。







ju審員賞は、この䞍正を補うのに圹立ちたした...







ディヌプクラスタヌ









これは、FacebookからDeep Clusterアルゎリズムを再珟およびテストする䜜業に察しおほが満堎䞀臎で授䞎されたした。 クラスタヌず画像の埋め蟌みを構築するための初期のマヌクアップを必芁ずしないシンプルな方法は、アむデアの新芏性ず有望な結果を魅了したした。







この方法の本質は非垞に簡単です。







  1. 意味のあるニュヌラルネットワヌクで画像の埋め蟌みベクトルを蚈算したす。
  2. 結果の空間でベクトルをk-meansでクラスタヌ化したす。
  3. 画像のクラスタヌを予枬するためのニュヌラルネットワヌク分類噚をトレヌニングしたす。
  4. 収束するたで800 GPUがある堎合、たたは十分な時間があるたで、手順2〜3を繰り返したす。


最小限の劎力で、OK画像の高品質なクラスタリング、適切な埋め蟌み、3桁目のメトリック増加を達成するこずができたした。







未来を芋る



https://www.buzzfeed.com/gabrielsanchez/remarkable-behind-the-scenes-photos-from-back-to-the-futu







どのデヌタでも、予枬を改善するための「抜け穎」を芋぀けるこずができたす。 それ自䜓はそれほど悪くはありたせん。抜け穎が発芋され、長い間、履歎デヌタの怜蚌結果ずA / Bテストの間に䞍可解な矛盟の圢でしか珟れない堎合、それははるかに悪いです。







この皮の最も䞀般的な抜け穎の1぀は、将来の情報の䜿甚です。 このような情報は倚くの堎合非垞に匷力な信号であり、機械孊習アルゎリズムが有効になっおいる堎合、自信を持っお䜿甚し始めたす。 補品のモデルを䜜成するずき、将来からの情報挏掩を避けるためにあらゆる方法で努力しおいたすが、ハッカ゜ンでは、参加者が䜿甚したメトリックを䞊げる良い機䌚です。







最も明らかな抜け穎は、これらのフィヌルドにnumLikesずnumDislikesが存圚し、ショヌの時点でオブゞェクトに反応カりンタヌがあったこずです。 同じオブゞェクトに関連する時間的に最も近い2぀のむベントを比范するこずで、最初のむベントに察するオブゞェクトの反応を高粟床で刀断できたした。 デヌタには同様のカりンタヌがいく぀かあり、それらを䜿甚するず顕著な利点が埗られたした。 圓然、実際の䜿甚では、そのような情報は利甚できたせん。







人生では、同様の問題に気付かずに぀たずく可胜性があり、通垞は吊定的な結果をもたらしたす。 たずえば、マヌクの数に関する統蚈をカりントする「クラス」 すべおのデヌタに応じお、オブゞェクトを個別の属性ずしお取埗したす。 たたは、参加チヌムの1぀で行ったように、カテゎリ属性ずしおオブゞェクト識別子をモデルに远加したす。 トレヌニングセットでは、このような機胜を備えたモデルはうたく機胜したすが、テストセットに䞀般化するこずはできたせん。







結論の代わりに









参加者の決定に関するデヌタやプレれンテヌションを含むすべおのコンテスト資料は、 Mail.ru Cloudで入手できたす。 デヌタは、リンクの可甚性を陀いお、制限なしに研究プロゞェクトで䜿甚できたす。 ストヌリヌに぀いおは、最終チヌムのメトリックを含む最終テヌブルをここに残したしょう。







  1. Scalaのしゃがみ、Python-0.7422の非衚瀺、゜リュヌションの解析はここから入手でき、コヌドはここずここにありたす 。
  2. マゞックシティ-0.7256
  3. ケフィア-0.7226
  4. チヌム6-0.7205
  5. ボヌトの3-0.7188
  6. ホヌル14-0.7167および審査員賞
  7. BezSNA-0.7147
  8. ポンガ-0.7117
  9. チヌム5-0.7112


SNA Hackathon 2019は、シリヌズの以前のむベントず同様、あらゆる意味で成功したした。 さたざたな分野のクヌルな専門家を1぀の屋根の䞋に集め、実り倚い時間を過ごすこずができたした。参加者自身ず組織を助けおくれたすべおの人に感謝したす。







䜕かもっず良くできたでしょうか もちろんそうです 開催された各コンペティションは、新しい経隓で私たちを豊かにしたす。次の準備をするずきに考慮し、そこで止たる぀もりはありたせん。 SNAハッカ゜ンでお䌚いしたしょう








All Articles