word2vec 本来就是用来解决自然语言处理问题的,它在 NLP 中的应用是显然的。
比如,你可以直接用它来寻找相关词、发现新词、命名实体识别、信息索引、情感分析等;你也可以将词向量作为其他模型的输入,用于诸如文本分类、聚类等各种自然语言处理问题。
事实上,word2vec 的思想和工具,还可以应用于自然语言处理之外的其他领域。一个词,无非就是个符号;句子是词的序列,无非也就是个符号序列。如果我们能够在其他的应用场景中,构造出一些符号,还有这些符号形成的序列,那我们就可以试一把 word2vec。
下面是,根据网络上的资料,整理的 word2vec 在自然语言处理领域之外的一些应用。
【社交网络】
应用场景:在社交网络中,给当前用户推荐 他/她 可能关注的大V
映射关系:每一个大V 就是一个词;将每个用户关注的大V,按照关注的顺序排列,形成文章
【App 商店】
应用场景:App 商店中,向用户推荐感兴趣的 App
映射关系:每个 App 就是一个词;将每个用户下载的 App,按照下载的顺序排列,形成文章
【广告系统】
应用场景:广告主在媒体网站上打广告,媒体网站提供一个后台管理系统,可以让广告主自行决定要将广告推荐给哪些目标人群。
映射关系:每一个页面就是一个词;将每个用户浏览的页面,按照浏览的顺序排列,形成文章。
这样,根据训练后的词向量,就可以计算出页面之间的相关程度。
那目标用户怎么计算呢?浏览与广告主的广告页 相关的页面 的用户 就是广告主潜在的 目标用户。把这些用户推荐给广告主就可以了。
应用场景:广告系统中广告主上线了一支新广告,如何估算用户对新广告的 CTR(Click-Through-Rate),即点击通过率。
映射关系:和上面给广告主推荐目标用户一样的做法,可以计算出每个广告页对应的向量
然后,对这些广告页做一个聚类,把相似的广告页聚在一个簇中。用新广告所在簇的 CTR 来近似新广告的 CTR。
【向量快速检索】
综合以上各种应用,将各种文档转换成向量之后,常见一个基本操作就是输入一个文档(对应的向量),寻找和它最相关的 top k 个文档(对应的向量)。如果要所有文档都比对一遍的话,那时间复杂度就是 O(n)。这在实际的工程应用中就太慢了。因此,需要借助 redis,或者引入 kd-tree, simhash, 聚类等算法来加速检索。
【 原文链接】http://www.ipaomi.com/2017/09/22/word2vec-在-非-自然语言处理-nlp-领域的应用/
参考: