Zweiwöchiger Nachrichtenaggregator

Am 18. November startete Telegram einen Datenclusterwettbewerb: Datenclusterwettbewerb . Es war in zwei Wochen notwendig, Ihren Nachrichtenaggregator zu erstellen. Die Einschränkungen, die in diesem Wettbewerb festgelegt wurden, haben eine Menge Leute abgeschreckt, aber nicht mich und meine Kollegen. Ich werde Ihnen sagen, wie wir gegangen sind, welche Wahlen wir durchgeführt haben und auf welche Schwierigkeiten wir gestoßen sind. Die Lösung, die wir an den Wettbewerb gesendet haben, verarbeitete 1000 Dokumente in 3,5 Sekunden, benötigte 150 MB, belegte bei einer öffentlichen Abstimmung den 6. Platz und bei den Endergebnissen den 3. Platz. Wir haben viele Fehler gemacht, aufgrund derer wir keinen höheren Platz eingenommen haben. Die meisten davon sind jetzt behoben. Der gesamte Code und alle Modelle befinden sich im Repository . Alle Skripte für Trainingsmodelle wurden an Colab übertragen.


Spitze der öffentlichen Abstimmung
Spitze der öffentlichen Abstimmung


Aufgabe


.


5 :


  • ,
  • 7
  • , ,



, . , : //, . , 5 : , , . .


. , , . , “” , , , . , .


:


  • : 200 ( 1.5 )
  • 1000
  • 2
  • Debian GNU/Linux 10.1,

, 1000 , . : 200 , ( word2vec, fasttext, GloVe, ) ULMFiT/ELMo/BERT. , . , 2 .


, , . .



. , Python ( ). . , , . , .


, Go, , , . C++, , . , . C++11, - .


C NLP, 2016 FastText’. , TF-IDF, , , , , . FastText — word2vec n-, . ELMo 197 , BERT — 632 , ( ). , FastText C++ .


- . , ( , !). OpenNMT, . , C++, Python, . .


, , DBSCAN, . DBSCAN MLPack, MLPack Debian’. . , , DBSCAN’ . MLPack .


- : TensorFlow, Torch, MXNet. “TensorFlow C++, ” — . -, , . -, 200 . Tensorflow Lite, . .


. , , . , Eigen, . Keras, , , Torch ( ). .


:


  • : C++, FastText, OpenNMTTokenzer, Eigen
  • : Python, FastText, OpenNMTTokenzer, Keras

..



FastText’ .


, , . , .


. . , , . 3 2/3, 5 4/5. , . . 60$ . , 327 1176 , . 3-4 .


, . , BBC News categories. .


, FastText . : ; BBC, All the news, News categories . , .


supervised FastText’ ( autotune). Supervised — , , .


Klassifikatoren


2 : . , . ( ) . , , , , . , . , — ( hard-negative ). ( ) . triplet loss. Keras’, Torch’. .


Modell zum Lernen von Vektoren


, , , . , , BERT. , . unsupervised ELMo. , ELMo .


SLINK: O(n^2) . , — : , , , .


Agglomeratives Clustering
. .


O(n^2) — . , : . , 10000 2000 . , . , .


3 : , , . — , . 99 . , . PageRank , .


3 : , , .



  1. .
  2. “” , - “”.
  3. , - , .
  4. , - .
  5. , - , .
  6. , - .
  7. std::sort std::stable_sort, - .
  8. , - .
  9. , - .


, . .


?


-, rss- . Telegram — , Instant View, . . .


-, . -: , , , . .


, , README .


Sie können die aktuelle Version hier sehen , die Version vom Wettbewerb hier .

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


All Articles