程序员间常见的一个话题是『反正工作中又碰不到,我要这算法有何用?』,因而有标题所问。
本帖的讨论范围暂时不包括那些过于典型的场景,这里的“典型”是指:当我需要做一个功能,百度或 Google 之后,大家都在用这个算法,那我就使用这个算法吧。比如垃圾词过滤的 AC 自动机(包括其他改进版)、爬虫 URL 判重的 BloomFilter (包括其他改进版)。
我举两个我见过的例子:
word2vec本身是做Word Embedding的,进而可以用来判断同义(同位)词。一个有趣的应用场景是,训练用户的商品浏览记录,用户同一个 session 内连贯的浏览,相当于一个句子,每个商品相当于一个 word,进而发现相似的商品。- 话题模型和 LDA 本身也算一个“典型场景”,但我想强调的是其“抽象”的过程,有读过《 LDA 数学八卦》的朋友应该知道,从 n 的阶乘和抛硬币讲起,到最后得出文本聚类模型,无知的楼主只能表示:惊为天人。