admin管理员组

文章数量:1530303

作者|Masatoshi Nishimura 编译|VK 来源|Towards Data Science

如果你想知道2020年文档相似性任务的最佳算法,你来对了地方。

在33914篇《纽约时报》文章中,我测试了5种常见的文档相似性算法。从传统的统计方法到现代的深度学习方法。

每个实现少于50行代码。所有使用的模型都来自互联网。因此,你可以在没有数据科学知识的情况下,开箱即用,并且得到类似的结果。

在这篇文章中,你将学习如何实现每种算法以及如何选择最佳算法。内容如下:

  1. 最佳的定义

  2. 实验目标陈述

  3. 数据设置

  4. 比较标准

  5. 算法设置

  6. 选出赢家

  7. 对初学者的建议

你想深入自然语言处理和人工智能。你想用相关的建议来增加用户体验。你想升级旧的现有算法。那么你会喜欢这个文章的。

数据科学家主张绝对最好

你可能会搜索术语“最佳文档相似性算法”(best document similarity algorithms)。

然后你将从学术论文,博客,问答中得到搜索结果。一些侧重于特定算法的教程,而另一些则侧重于理论概述。

在学术论文中,一个标题说,这种算法的准确率达到了80%,而其他算法的准确率仅为75%。好啊。但是,这种差异是否足以让我们的眼睛注意到它呢?增加2%怎么样?实现这个算法有多容易?科学家倾向于在给定的测试集中追求最好,而忽略了实际意义。

在相关的问题问答中,狂热的支持者占据了整个话题。有人说现在最好的算法是BERT。这个算法概念是如此具有革命性,它打败了一切。另一方面,愤世嫉俗者称一切都取决于工作。有些答案早在深度学习之前就有了。看看这个Stackoverflow(https://stackoverflow/questions/8897593/how-to-compute-the-similarity-between-two-text-documents)。2012年是投票最多的一年,很难判断它对我们到底意味着什么。

谷歌会很乐意投入数百万美元购买工程师的能力和最新的计算能力,仅仅是为了将他们的搜索能力提高1%。这对我们来说可能既不现实也没有意义。

性能增益和实现所需的技术专业知识之间有什么权衡?它需要多少内存?它以最少的预处理可以运行多快?

你想知道的是一种算法在实际意义上是如何优于另一种算法的。

这篇文章将为你提供一个指导方针,指导你在文档相似性问题应该实现哪种算法。

各种算法,通篇流行文章,预训练模型

本实验有4个目标:

  1. 通过在同一个数据集上运行多个算法,你将看到算法与另一个算法的公平性以及公平程度。

  2. 通过使用来自流行媒体的全文文章作为我们的数据集,你将发现实际应用程序的有效性。

  3. 通过访问文章url,你将能够比较结果质量的差异。

  4. 通过只使用公开可用的预训练模型,你将能够设置自己的文档相似性并得到类似的输出。

“预训练模型是你的朋友。-Cathal Horan”

数据设置-5篇基础文章

本实验选取了33914篇《纽约时报》的文章。从2018年到2020年6月。数据主要是从RSS中收集的,文章的平均长度是6500个字符。

从这些文章中选择5个作为相似性搜索的基础文章。每一个代表一个不同的类别。

在语义类别的基础上,我们还将度量书面格式。更多的描述在下面。

  1. Lifestyle, Human Interest:How My Worst Date Ever Became My Best(https://www.nytimes/2020/02/14/style/modern-love-worst-date-of-my-life-became-best.html)
  2. Science, Informational:A Deep-Sea Magma Monster Gets a Body Scan(https://www.nytimes/2019/12/03/science/axial-volcano-mapping.html)
  3. Business, News:Renault and Nissan Try a New Way After Years When Carlos Ghosn Ruled(https://www.nytimes/2019/11/29/business/renault-nissan-mitsubishi-alliance.html)
  4. Sports, News:Dominic Thiem Beats Rafael Nadal in Australian Open Quarterfinal(https://www.nytimes/2020/01/29/sports/tennis/thiem-nadal-australian-open.html)
  5. Politics, News:2020 Democrats Seek Voters in an Unusual Spot: Fox News(https://www.nytimes/2019/04/17/us/politics/fox-news-democrats-2020.html)

判断标准

我们将使用5个标准来判断相似性的性质。如果你只想查看结果,请跳过此部分。

  1. 标签的重叠

  2. 小节

  3. 文风

  4. 主题

标签是最接近人类判断内容相似性的工具。记者自己亲手写下标签。你可以在HTML标题中的news_keywords meta标记处检查它们。使用标签最好的部分是我们可以客观地测量两个内容有多少重叠。每个标签的大小从1到12不等。两篇文章的标签重叠越多,就越相似。

第二,我们看这个部分。这就是《纽约时报》在最高级别对文章进行分类的方式:科学、政治、体育等等。在网址的域名后面会进行显示,例如nytimes/…

第二部分是小节。例如,一个版块可以细分为world,或者world可以细分为Australia。并不是所有的文章都包含它,它不像以上那2个那么重要。

第四是文风。大多数文档比较分析只关注语义。但是,由于我们是在实际用例中比较推荐,所以我们也需要类似的写作风格。例如,你不想在学术期刊的“跑鞋和矫形术”之后,从商业角度阅读“十大跑鞋”。我们将根据杰斐逊县学校的写作指导原则对文章进行分组。该列表包括人类兴趣、个性、最佳(例如:产品评论)、新闻、操作方法、过去的事件和信息。

5个候选算法

这些是我们将要研究的算法。

  1. Jaccard
  2. TF-IDF
  3. Doc2vec
  4. USE
  5. BERT<

本文标签: 相似性算法初学者文档教程