VKCup 2020第一阶段



今天,我们将考虑VkCup 2020竞赛以及第一阶段排位赛的任务。来自Singer的家伙们承诺,在所有阶段中,这将是困难而有趣的。实际上,还需要什么呢?

如您所知,追求卓越,将自己的技能磨练到类似于大马士革钢一样的锋利程度的渴望,在任何领域的每位专家中都是固有的。这种质量的例子。从艺术家的彩色画作中,每个人都度过了生命的一部分(我什至可以说是最美好的一部分),而这些生命可以毫无目的地浪费在参观社交活动上。在keygen程序之前-软件激活器,每个都包含8位音乐,一个激活算法和动画,并仔细地仔细地压缩到一个只有几十KB的文件中。艺术,无论怎么说。

不,这不是老实说的关于自我发展的另一篇文章。我,实际上是什么。我们每个人都希望解决我们领域中的非平凡问题。而且,这样做的愿望比周围的大多数人都要好。很自然。而且,对我而言,机器学习竞赛似乎是一个很好的机会。有时有必要赋予竞争精神自由。

我们将考虑VKCup 2020,这是VKontakte进行数据分析的冠军,即三个阶段,决赛在圣彼得堡举行。让我们从第一个限定词开始。好吧,有时间,而且彼得斯堡虽然是文化之都,却不喜欢迟到和瑕疵。先生,因此,我们希望尽快处理事务,先生,预计出租车司机的主人不会到位,因此还有很长的路要走。



我认为许多人已经遇到了NLP任务。在这种情况下,排位赛的第一阶段的任务是选择256人参加第二阶段的比赛,这是对三叶草游戏问题的分析,即预测哪些问题是由专业编辑提出的,哪些是普通用户提出的。

数据大小约为40,000行,其中10,000是测试数据集,通过该数据集可以估算模型的质量,而其他30,000是剩余的数据集。测试指标是AUC ROC-误差曲线下的面积。

数据如下所示,



其中ID是问题的标识符,Answer是必须预测其值的二进制变量(1-问题是由编辑者提出的,零0-用户提出的)。问题-问题本身。

看起来任务很简单,但是一切都不尽然。 Word2Vec,BERT和其他新型NLP模型之类的标准方法给出的质量相对较低,约为0.7,甚至无法进入前100名。因此,记住像魔鬼一样,魔鬼生活在细节中,更详细地考虑数据集,并开发出相对更有效的解决方案。

首先,在初始EDA期间,您会注意到用户经常使用非典型字符,大写字母,有时在句子开头不使用大写字母,忘记问号,使用奇怪的引号。他们还复制编辑者的问题,将其作为自己的问题传递出去。和其他有趣的功能。

让我们从基线开始。使用TF-IDF(术语频率-倒置文档频率)度量,我们得到了一个稀疏矩阵,然后将其输入到梯度增强中。
TF-IDF仅是一个定义,它是一种统计量度,用于评估作为文档或语料库一部分的文档中单词的重要性。单词的权重与文档中单词的使用频率成正比,与集合中所有文档中单词的使用频率成反比。

为了减少模型的重新训练,我们将减少令牌的最大数量并组成初始参数矩阵,该参数矩阵将由两个较小的令牌组成:一个部分是TF-IDF矩阵,其中用空格分隔的符号序列充当令牌,而实际上它们是单词,而另一个该部分是一个矩阵,其中一定长度的符号序列充当令牌。



它看起来不错,但是可以并且应该更好。这是管道的第一部分。在这种情况下,“ P”是“ Public”的缩写,这是一个指标,表明模型在测试样品的开口部分上获得了多少分。 “ F”是“ Final”的缩写,是比赛结束后发布的数据隐藏部分的结果。

接下来,我们将一些数据添加到数据集中,规则通常不禁止这样做。因此,没有禁止的东西也被允许。在Internet上,您可以找到许多带有测验问题的数据集。如果我们下载它们并将其标记为用户问题。



这个想法,这是一把双刃剑和不和谐的问题。如果您从任何特别的书中提出问题,该模型将不协调。一方面,写作风格接近社论,另一方面,狡猾的用户长期向他们发送公共游戏“三叶草”的私人信息。因此,我们将不使用它们;我们将保护模型免受躁郁症模型的困扰。

正如我之前所说,用户在格式化问题时有些疏忽,因此我们将使用正则正则表达式提取它们。我们将编写正则表达式来检查是否存在问号,标识不同类型的引号,搜索大写字母、,。我们将根据这些迹象重新训练模型。此外,先前的预测将是一个附加信号。这将有助于纠正先前模型的预测。

因此,实施了两级模型,其中通过增强使用正则表达式获得的表格属性来调整TF-IDF的稀疏矩阵的增强结果。



这足以在318个排行榜上排在第五位。可以纠正和优化某些内容,但是时间已不多了。一种或另一种方式,这足以进一步发展。过度的完美主义会导致紧张。无论如何,待会儿见,爱上ML,保持冷静,并保持关注。进一步,它将变得更加有趣……

Github存储库中的代码

All Articles