文本分类是否足够快以进行提前搜索?

Is text classification fast enough for type ahead search?

我正在设计一种可用于搜索许多不同内容的预输入服务。在实际进行搜索之前,我正在考虑创建一个文本分类模型来对这些搜索进行分类。

这是我希望从分类模型中得到的结果示例。

输入

John Smith

输出

[
  {
    "likeliness": .6,
    "category": "car-name-typeahead-search"
  },
  {
    "likeliness": .9,
    "category": "person-name-typeahead-search"
  },
  {
    "likeliness": .1,
    "category": "vin-typeahead-search"
  },
  {
    "likeliness": .2,
    "category": "help-page"
  },
  {
    "likeliness": .2,
    "category": "faq-page"
  }
]

然后我会选择可能性高于某个值的类别并实际进行预输入搜索。另外,我会 return 按可能性等级排序的结果。

我们一直在收集有关人们搜索的数据并跟踪他们实际寻找的内容,因此我们应该拥有训练文本分类模型所需的数据。

我的问题是文本分类模型能否足够快以与提前输入服务一起使用并且不会过于昂贵?我应该关注某些类型的文本分类算法吗?

通常在现代服务框架中(如独立服务器上的 tensorflow serving 运行),基于浅层神经网络的标准文本分类模型的延迟应低于 1 毫秒)。您可以寻找由以下人员组成的模型:

  • 词嵌入层(词汇量高达数百万个词)
  • 隐藏层(1-3)
  • 分类(最多几千个类别)

如果您的预期响应时间为 <= 200 毫秒,则无需担心分类延迟。在最坏的情况下,使用上面的设置 10ms 就足够了。