11月18日,Telegram发起了数据集群竞赛:数据集群竞赛。必须在两周内使您的新闻聚合器成为可能。在这场比赛中设定的限制使很多人害怕,但我和我的同事却没有。我将告诉您我们的去向,选举和遇到的困难。我们发送给竞赛的解决方案在3.5秒内处理了1000个文档,占用了150 MB的内存,在公开投票中排名第六,在最终结果中排名第三。我们犯了许多错误,由于这些错误,我们没有占据上风,现在大多数错误已得到解决。所有代码和所有模型都可以在存储库中找到。用于训练模型的所有脚本均已转移到Colab。

公众投票最高
任务
比赛的官方描述在这里。
有5个子任务:
- 文章语言定义
- 确定文章是否为新闻
- 7个类别列表中的类别定义新闻
- 对新闻进行聚类并为聚类选择标题文档
- 集群排名,即选择放置哪个集群的位置

比赛子任务按顺序
这与真实新闻聚合器的工作方式相差不远。由此尚不清楚Telegram中的最终解决方案将如何工作:每天一次/小时/天,是否每次都会重新启动所有阶段。还不清楚这五个子任务将以哪种格式启动:单独,全部一起使用一种语言,全部一起使用不同的语言。比赛本身对公开投票一无所知。
. , , . , “” , , , . , .
:
- : 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 — , , .

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

, , , . , , BERT. , . unsupervised ELMo. , ELMo .
SLINK: O(n^2) . , — : , , , .

. .
O(n^2) — . , : . , 10000 2000 . , . , .
3 : , , . — , . 99 . , . PageRank , .
3 : , , .
- .
- “” , - “”.
- , - , .
- , - .
- , - , .
- , - .
- std::sort std::stable_sort, - .
- , - .
- , - .
, . .
?
-, rss- . Telegram — , Instant View, . . .
-, . -: , , , . .
, , README .
你可以看到当前的版本在这里,从比赛的版本在这里。