名奢网 名表 名表日报 查看内容

自然言语处置技术(NLP)在引荐系统中的应用

2023-3-21 20:35| 发布者: 夏梦飞雨| 查看: 169| 评论: 0

放大 缩小
简介:概述个性化引荐是大数据时期不可或缺的技术,在电商、信息分发、计算广告、互联网金融等范畴都起着重要的作用。细致来讲,个性化引荐在流量高效应用、信息高效分发、提升用户体验、长尾物品发掘等方面均起着中心作用 ...

概述


个性化引荐是大数据时期不可或缺的技术,在电商、信息分发、计算广告、互联网金融等范畴都起着重要的作用。细致来讲,个性化引荐在流量高效应用、信息高效分发、提升用户体验、长尾物品发掘等方面均起着中心作用。在引荐系统中经常需求处置各种文本类数据,例如商品描画、新闻资讯、用户留言等等。细致来讲,我们需求运用文本数据完成以下任务:


候选商品召回。候选商品召回是引荐流程的第一步,用来生成待引荐的物品汇合。这部分的中心操作是依据各种不同的引荐算法来获取到对应的物品汇合。而文本类数据就是很重要的一类召回算法,具有不依赖用户行为、多样性丰厚等优势,在文本信息丰厚或者用户信息缺乏的场所中具有十分重要的作用。


相关性计算。相关性计算充溢着引荐系统流程的各个步骤,例如召回算法中的各种文原形似度算法以及用户画像计算时用到的一些相关性计算等。


作为特征参与模型排序(CTR/CVR)。在候选集召回之后的排序层,文本类特征常常能够提供很多的信息,从而成为重要的排序特征。


但是相比结构化信息(例如商品的属性等),文本信息在细致运用时具有一些先天缺陷。


首先,文本数据中的结构信息量少。严厉来说,文本数据通常是没有什么结构的,普通能够有的结构可能只是“题目”、“正文”、“评论”这样分辨文原本源的结构,除此以外普通就没有更多的结构信息了。为什么我们要在意结构信息呢?由于结构代表着信息量,无论是运用算法还是业务规则,都能够依据结构化信息来制定引荐战略,例如“召回一切颜色为蓝色的长款羽绒服”这样一个战略里就用到了“颜色”和“样式”这两个结构化信息。但是假如商品的描画数据库中没有这样的结构化信息,只需一句“该羽绒服为蓝色长款羽绒服”的自由文本,那么就无法应用结构信息制定战略了。


其次,文本内容的信息量不肯定。与无结构化相随同的,是文本数据在内容的不肯定性,这种不肯定性体往常内容和数量上,例如不同用户对同一件二手商品的描画可能差别十分大,细致可能在用词、描画、文本长短等方面都具有较大差别。同样的两个物品,在一个物品的描画中呈现的内容在另外一个物品中并不一定会呈现。这种差别性的存在使得文本数据常常难以作为一种稳定牢靠的数据源来运用,特别是在UGC化明显的场景下更是如此。


再次,自由文本中的歧义问题较多。歧义了解是自然言语处置中的重要研讨课题,同时歧义也影响着我们在引荐系统中对文本数据的运用。例如用户在描画自己的二手手机时可能会写“出卖iPhone6一部,打算凑钱买iPhone7”这样的话,这样一句对人来说意义很明白的话,却对机器构成了很大搅扰:这个手机究竟是iPhone6还是iPhone7?在这样的背景下如何保障引荐系统的精确率便成为了一个应战。


但是文本数据也不是尽善尽美,有缺陷的同时也具有一些结构化数据所不具有的优点:


数据量大。无结构化的文本数据普通来说是十分容易取得的,例如各种UGC渠道,以及网络爬取等措施,都可穿取得大量文本数据。


多样性丰厚。无结构化是一把双刃剑,不好的一面曾经剖析过,好的一面就是由于其开放性,招致具有丰厚的多样性,会包含一些结构规则以外的数据。


信息及时。在一些新名词,新事物呈现之后,微博、朋友圈常常是最先能够反响出变更的中央,而这些都是纯文本的数据,对这些数据的合理剖析,能够最快得到结构化、预定义数据所无法得到的信息,这也是文本数据的优势。


综上所述,文本数据是一类量大、复杂、丰厚的数据,对引荐系统起着重要的作用,本文将针对上面提到的几个方面,对引荐系统中常见的文本处置措施中止引见。


从这里动身:词袋模型


词袋模型(Bag of Words,简称BOW模型)是最简单的文本处置措施,其中心假定十分简单,就是以为一篇文档是由文档中的词组成的多重汇合(多重汇合与普通汇合的不同在于思索了汇合中元素的呈现次数)构成的。这是一种最简单的假定,没有思索文档中诸如语法、词序等其他重要要素,只思索了词的呈现次数。这样简单的假定显然丢掉了很多信息,但是带来的益处是运用和计算都比较简单,同时也具有较大的灵活性。


在引荐系统中,假如将一个物品看作一个词袋,我们能够依据袋中的词来召回相关物品,例如用户阅读了一个包含“羽绒服”关键词的商品,我们能够召回包含“羽绒服”的其他商品作为该次引荐的候选商品,并且能够依据这个词在词袋中呈现的次数(词频)对召回商品中止排序。


这种简单的做法显然存在着很多问题:


首先,将文本中止分词后得到的词里面,并不是每个词都能够用来做召回和排序,例如“的地得你我他”这样的“停用词”就该去掉,此外,一些呈现频率特别高或者特别低的词也需求做特殊处置,否则会招致召回结果相关性低或召回结果过少等问题。


其次,运用词频来度量重要性也显得合理性缺乏。以上面的“羽绒服”召回为例,假如在羽绒服的类别里运用“羽绒服”这个词在商品描画中的呈现频率来权衡商品的相关性,会招致一切的羽绒服都具有相似的相关性,由于在描画中大家都会运用相似数量的该词汇。所以我们需求一种更为科学合理的措施来度量文本之间的相关性。


除了上面的用法,我们还能够将词袋中的每个词作为一维特征参与到排序模型中。例如,在一个以LR为模型的CTR排序模型中,假如这一维特征的权重为w,则可解释为“包含这个词的样原形比不包含这个词的样本在点击率的log odds上要高出w”。在排序模型中运用词特征的时分,为了增强特征的分辨才干,我们常常会运用简单词袋模型的一种升级版——N-gram词袋模型。


N-gram指的就是把N个连续的词作为一个单位中止处置,例如:“John likes to watch movies.Mary likes movies too.”这句话处置为简单词袋模型后的结果为:


[<span class="hljs-string">"John"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"likes"</span>:<span class="hljs-number">2</span>,<span class="hljs-string">"to"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"watch"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"movies"</span>:<span class="hljs-number">2</span>,<span class="hljs-string">"Mary"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"too"</span>:<span class="hljs-number">1</span>]


而处置为bigram(2-gram)后的结果为:


[<span class="hljs-string">"John likes"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"likes to"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"to watch"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"watch movies"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"Mary likes"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"likes movies"</span>:<span class="hljs-number">1</span>,<span class="hljs-string">"movies too"</span>:<span class="hljs-number">1</span>]


做这样的处置有什么益处呢?假如将bigram作为排序模型的特征或者相似度计算的特征,最明显的益处就是增强了特征的分辨才干,简单来讲就是:两个有N个bigram重合的物品,其相关性要大于有N个词重合的物品。从基本上来讲,是由于bigram的重合几率要低于1-gram(也就是普通词)的重合几率。那么是不是N-gram中的N越大就越好呢?N的增大固然增强了特征的分辨才干,但是同时也加大了数据的稠密性,从极端状况来讲,假定N取到100,那么简直不会有两个文档有重合的100-gram了,那这样的特征也就失去了意义。普通在实践应用中,bigram和trigram(3-gram)能够在分辨性和稠密性之间取到比较好的均衡,N假如继续增大,稠密性会有明显增加,但是效果却不会有明显提升,以至还会有降低。


综合来看,固然词袋模型存在着明显的弊病,但是只需求对文本做简单处置就能够运用,所以不失为一种对文本数据中止快速处置的运用措施,并且在预处置(常用的预处置包含停用词的去除,高频/低频词的去除或降权等重要性处置措施,也能够借助外部高质量数据对自由文本数据中止过滤和限定,以求取得质量更高的原始数据)充沛的状况下,也常常能够得到很好的效果。


统一度量衡:权重计算和向量空间模型


从上文我们看到简单的词袋模型在经过恰当预处置之后,能够用来在引荐系统中召回候选物品。但是在计算物品和关键词的相关性,以及物品之间的相关性时,仅仅运用简单的词频作为排序要素显然是分歧理的。为理处置这个问题,我们能够引入表白才干更强的基于TF-IDF的权重计算措施。在TF-IDF措施中,一个词t在文档d中权重的计算措施为:

自然言语处置技术(NLP)在引荐系统中的应用


其中tft,d代表t在d中呈现的频次,而dft指的是包含t的文档数目,N代表全部文档的数目。


TF-IDF以及其各种改进和变种(关于TF-IDF变种和改进的细致引见,可参考《Introduction to Information Retrieval》的第六章。)相比简单的TF措施,中心改进在于对一个词的重要性度量,例如:


原始TF-IDF在TF的基础上参与了对IDF的思索,从而降低了呈现频率高而招致无分辨才干的词的重要性,典型的如停用词。


由于词在文档中的重要性和呈现次数并不是完整线性相关,非线性TF缩放对TF中止log缩放,从而降低呈现频率特别高的词所占的权重。


词在文档中呈现的频率除了和重要性相关,还可能和文档的长短相关,为了消弭这种差别,能够运用最大TF对一切的TF中止归一化。


这些措施的目的都是使对词在文档中重要性的度量愈加合理,在此基础之上,我们能够对基于词频的措施中止改进,例如,能够将之前运用词频来对物品中止排序的措施,改进为依据TF-IDF得分来中止排序。


但是除此以外,我们还需求一套统一的措施来度量关键词和文档,以及文档和文档之间的相关性,这套措施就是向量空间模型(Vector Space Model,简称VSM)。


VSM的中心机想是将一篇文档表白为一个向量,向量的每一维能够代表一个词,在此基础上,能够运用向量运算的措施对文档间相似度中止统一计算,而这其中最为中心的计算,就是向量的余弦相似度计算:

自然言语处置技术(NLP)在引荐系统中的应用


其中V(d1)和V(d2)分别为两个文档的向量表示。这样一个看似简单的计算公式其实有着十分重要的意义。首先,它给出了一种相关性计算的通用思绪,那就是只需能将两个物品用向量中止表示,就能够运用该公式中止相关性计算。其次,它对向量的细致表示内容没有任何限制——基于用户行为的协同过滤运用的也是同样的计算公式,而在文原形关性计算方面,我们能够运用TFIDF填充向量,同时也能够用N-gram,以及后面会引见的文本主题的概率散布、各种词向量等其他表示方式。只需对该公式的内涵有了深化了解,就能够依据需求结构合理的向量表示。再次,该公式具有较强的可解释性,它将整体的相关性拆解为多个重量的相关性的叠加,并且这个叠加方式能够经过公式中止调理,这样一套措施很容易解释,即便对非技术人员,也是比较容易了解的,这关于和产品、运营等非技术人员解释算法思绪有很重要的意义。最后,这个公式在实践计算中能够中止一些很高效的工程优化,使其能够冷静应对大数据环境下的海量数据,这一点是其他相关性计算措施很难匹敌的。


VSM是一种“重剑无锋,大巧不工”的措施,形态简单而又变更无常,体会其精髓之后,能够发挥出极大的能量。


透过现象看实质:隐语义模型


前面引见了文本数据的一些“显式”运用措施,所谓显式,是指我们将可读可了解的文本自身作为了相关性计算、物品召回以及模型排序的特征。这样做的益处是简单直观,能够明晰地看到起作用的是什么,但是其弊病是无法捕获到躲藏在文本名义之下的深层次信息。例如,“羽绒服”和“棉衣”指的是相似的东西,“羽绒服”和“棉鞋”具有很强的相关性,相似这样的深层次信息,是显式的文本处置所无法捕获的,因而我们需求一些更复杂的措施来捕获,而隐语义模型(Latent Semantic Analysis,简称LSA)便是这类措施的开山祖师之一。


隐语义模型中的“隐”指的是隐含的主题,这个模型的中心假定,是以为固然一个文档由很多的词组成,但是这些词背地的主题并不是很多。换句话说,词不外是由背地的主题产生的,这背地的主题才是更为中心的信息。这种从词下沉到主题的思绪,贯衣着我们后面要引见到的其他模型,也是各种不同文本主体模型(Topic Model)的共同中心机想,因而了解这种思绪十分的重要。


在对文档做LSA合成之前,我们需求结构文档和词之间的关系,一个由5个文档和5个词组成的简单例子如下:

自然言语处置技术(NLP)在引荐系统中的应用


LSA的做法是将这个原始矩阵C中止如下方式的SVD合成:

自然言语处置技术(NLP)在引荐系统中的应用


其中U是矩阵CCT的正交特征向量矩阵,V是矩阵CTC的正交特征向量矩阵,∑k是包含前k个奇特值的对角矩阵,k是事前选定的一个降维参数。


得到原始数据的一个低维表示,降低后的维度包含了更多的信息,能够以为每个维度代表了一个主题。


降维后的每个维度包含了更丰厚的信息,例如能够辨认近义词和一词多义。


能够将不在锻炼文档中的文档d经过

自然言语处置技术(NLP)在引荐系统中的应用


变换为新向量空间内的一个向量(这样的变换无法捕获到新文档中的信息,例如词的共现,以及新词的呈现等等,所以该模型需求定期中止全量锻炼。),从而能够在降维后的空间里计算文档间相似度。由于新的向量空间包含了同义词等更深层的信息,这样的变换会进步相似度计算的精确率和召回率。


为什么LSA能具有这样的才干?我们能够从这样一个角度来看待:CCT中每个元素CCTi,j代表同时包含词i和词j的文档数量,而CTC中每个元素CTCi,j代表文档i和文档j共享的词的数量。所以这两个矩阵中包含了不同词的共同呈现状况,以及文档对词的共享状况,经过合成这些信息得到了相似主题一样比关键词信息量更高的低维度数据。


从另外一个角度来看,LSA相当于是对文档中止了一次软聚类,降维后的每个维度可看做是一个类,而文档在这个维度上的取值则代表了文档关于这个聚类的归属水平。


LSA处置之后的数据引荐中能做什么用呢?首先,我们能够将合成后的新维度(主题维度)作为索引的单位对物品中止索引,来替代传统的以词为单位的索引,再将用户对物品的行为映射为对新维度的行为。这两个数据准备好之后,就能够运用新的数据维度对候选商品中止召回,召回之后能够运用VSM中止相似度计算,如前文所述,降维后的计算会带来更高的精确率和召回率,同时也能够减少噪音词的干扰,典型的,即便两个文档没有任何共享的词,它们之间依旧会存在相关性,而这正是LSA带来的中心优势之一。此外,还能够将其作为排序模型的排序特征。


简单来讲,我们能在普通关键词上面运用的措施,在LSA上面依旧全部可用,由于LSA的实质就是对原始数据中止了语义的降维,只需将其看作是信息量更丰厚的关键词即可。


能够看到LSA相比关键词来说行进了一大步,主要体往常信息量的提升,维度的降低,以及对近义词和多义词的了解。但是LSA同时也具有一些缺陷,例如:


锻炼复杂度高。LSA的锻炼时经过SVD中止的,而SVD自身的复杂度是很高的,在海量文档和海量词汇的场景下难以计算,固然有一些优化措施可降低计算的复杂度,但该问题依旧没有得到基本处置。


检索(召回)复杂度高。如上文所述,运用LSA做召回需求先将文档或者查询关键词映射到LSA的向量空间中,这显然也是一个耗时的操作。


LSA中每个主题下词的值没有概率含义,以至可能呈现负值,只能反响数值大小关系。这让我们难以从概率角度来解释和了解主题和词的关系,从而限制了我们对其结果更丰厚的运用。


概率的魔力:概率隐语义模型


为了进一步发扬隐语义模型的能力,并尽力抑止LSA模型的问题,Thomas Hofmann在1999年提出了概率隐语义模型(probabilistic Latent Semantic Analysis,简称pLSA)。从前面LSA的引见能够看出,固然细致的优化措施运用的是矩阵合成,但是从另一个角度来讲,我们能够以为合成后的U和V两个矩阵中的向量,分别代表文档和词在隐语义空间中的表示,例如一个文档的隐向量表示为(1,2,0)T, 代表其在第一维隐向量上取值为1,第二维上取值为2,第三维上取值为0。假如这些取值能够构成一个概率散布,那么不只模型的结果更利于了解,同时还会带来很多优秀的性质,这正是pLSA思想的中心:将文档和词的关系看作概率散布,然后试图找出这个概率散布来,有了文档和词的概率散布,我们就能够得到一切我们想要得到的东西了。


在pLSA的基本假定中,文档d和词w的生成过程如下:


以 P(d) 的概率选择文档d。


以 P(z|d) 的概率选择隐类z。


以 P(w|z) 的概率从z生成w。


P(z|d)和P(w|z) 均为多项式散布。


将这个过程用分离概率中止表白得到:

自然言语处置技术(NLP)在引荐系统中的应用

自然言语处置技术(NLP)在引荐系统中的应用


图1 pLSA的生成过程


能够看到,我们将隐变量z作为中间桥梁,将文档和词衔接了起来,构成了一个定义良好、环环相扣的概率生成链条(如图1所示)。固然pLSA的中心是一种概率模型,但是同样能够用相似LSI的矩阵合成方式中止表白。为此,我们将LSI中等号右边的三个矩阵中止重新定义:

自然言语处置技术(NLP)在引荐系统中的应用


在这样的定义下,原始的矩阵C依旧能够表述为C=U∑VT。这样的对应关系让我们愈加明晰地看到了前面提到的pLSA在概率方面的良好定义和明晰含义,同时也提示了隐语义概率模型和矩阵合成之间的密切关系(关于概率模型和矩阵合成的密切关系可参考这篇文档:http://www.cs.cmu.edu/~epxing/Class/10708-15/slides/LDA_SC.pdf)。在这样的定义,隐变量z所代表的主题含义愈加明显,也就是说,我们能够明白的把一个z看作一个主题,主题里的词和文档中的主题都有着明白的概率含义。也正是由于这样良好的性质,再加上优化措施的方便性,使得从pLSA开端,文本主题开端在各种大数据应用中占领重要位置。


从矩阵的角度来看,LSA和pLSA看上去十分像,但是它们的内涵却有着实质的不同,这其中最为重要的一点就是两者的优化目的是完整不同的:LSA实质上是在优化SVD合成后的矩阵和原始矩阵之间的平方误差,而pLSA实质上是在优化似然函数,是一种规范的机器学习优化套路。也正是由于这一点实质的不同,招致了两者在优化结果和解释才干方面的不同。


至此我们看到,pLSA将LSA的思想从概率散布的角度中止了一大步扩展,得到了一个性质愈加优秀的结果,但是pLSA依旧存在一些问题,主要包含:


由于pLSA为每个文档生成一组文档级参数,模型中参数的数量随着与文档数成正比,因而在文档数较多的状况下容易过拟合。


pLSA将每个文档d表示为一组主题的混合,但是细致的混合比例却没有对应的生成概率模型,换句话说,关于不在锻炼集中的新文档,pLSA无法给予一个很好的主题散布。简言之,pLSA并非完整的生成式模型。


而LDA的呈现,就是为理处置这些问题。


概率的概率:生成式概率模型


为理处置上面提到的pLSA存在的问题,David Blei等人在2003年提出了一个新模型,名为“隐狄利克雷分配”(Latent Dirichlet Allocation,简称LDA),这个名字念起来颇为隐晦,而且从名字上似乎也看不出究竟是个什么模型,在这里我们试着做一种可能的解读:


Latent:这个词不用多说,是说这个模型依旧是个隐语义模型。


Dirichlet:这个词是在说该模型触及到的主要概率散布式狄利克雷散布。


Allocation:这个词是在说这个模型的生成过程就是在运用狄利克雷散布不时地分配主题和词。


上面并非官方解释,但希望能对了解这个模型能起到一些辅佐作用。


LDA的中心机想就是在pLSA外面又包了一层先验,使得文档中的主题散布和主题下的词散布都有了生成概率,从而处置了上面pLSA存在的“非生成式”的问题,顺便也减少了模型中的参数,从而处置了pLSA的另外一个问题。在LDA中为一篇文档di生成词的过程如下:


从泊松散布中抽样一个数字N作为文档的长度(这一步并非必须,也不影响后面的过程)。


从狄利克雷散布Dir(α)中抽样一个样本θi,代表该篇文档下主题的散布。


从狄利克雷散布Dir(β)中抽样一组样本Φk,代表每个主题下词的散布。


关于1到N的每个词wn


从多项式散布Multinomial(θi) 中抽样一个主题ci,j


从多项式散布Multinomial(Φi) 中抽样一个词wi,j

自然言语处置技术(NLP)在引荐系统中的应用


图2 LDA的生成过程


疏忽掉最开端选择文档长度的步骤,我们发现LDA的生成过程相比pLSA来讲,在文档到主题的散布和主题到词的散布上面都加了一层概率,使得这两者都加上了一层不肯定性,从而能够很自然地容纳锻炼文档中没有呈现过的文档和词,这使得LDA具有了比pLSA更好的概率性质。


LDA的应用


这部分我们引见LDA在用作相似度计算和排序特征时需求留意的一些中央,然后引见以LDA为代表的文本主题在引荐系统中更多不同角度的应用。


相似度计算


上面提到LSA能够直接套用到VSM中中止相似度计算,在LDA中也能够做相似的计算,细致措施是把文档的主题散布值向量化然后用余弦公式中止计算。但是把余弦相似度交流为KL divergence或Jensen–Shannon divergence效果更好,缘由是LDA给出的主题散布是含义明白的概率值,用度量概率之间相似度的措施来中止度量更为合理。


排序特征


将物品的LDA主题作为排序模型的特征是一种很自然的运用措施,但并不是一切的主题都有用。物品上的主题散布普通有两种状况:


有少数主题(三个或更少)占领了比较大的概率,剩余的主题概率加起来比较小。


一切主题的概率值都差未几,都比较小。


在第一种状况下,只需前面几个概率比较大的主题是有用的,而在第二种状况下,基本上一切的主题都没有用。那么该如何辨认这两种状况呢?第一种措施,能够依据主题的概率值对主题做一个简单的K-Means聚类,K选为2,假如是第一种状况,那么两个类中的主题数量会相差较大——一个类中包含少量有用主题,另一个类包含其他无用主题;而第二种状况下主题数量则相差不大,能够用这种措施来辨认主题的重要性。第二种措施,能够计算主题散布的信息熵,第一种状况对应的信息熵会比较小,而第二种状况会比较大,选取适合的阈值也能够分辨这两种状况。


物品打标签&用户打标签


为物品计算出其对应的主题,以及主题下面对应的词散布之后,我们能够选取概率最大的几个主题,然后从这几个主题下选取概率最大的几个词,作为这个物品的标签。在此基础上,假如用户对该物品发作了行为,则能够将这些标签传播到用户身上。


这种措施打出的标签,具有十分直观的解释,在恰当场景下能够充任引荐解释的理由。例如我们在做移动端个性化推送时,可供展示文案的空间十分小,能够经过上面的方式先为物品打上标签,然后再依据用户把标签传播到用户身上,在推送时将这些标签词同时作为召回源和引荐理由,让用户明白为什么给他做出这样的引荐。


主题&词的重要性度量


LDA锻炼生成的主题中,固然都有着同等的位置,但是其重要性却是各不相同的,有的主题包含了重要的信息,有的则不然。例如,一个主题可能包含“教育、读书、学校”等词,和这样主题相关的文档,普通来说是和教育相关的主题,那么这就是一个信息量高的主题;相反,有的主题可能会包含“第一册、第二册、第三册……”等词(假如在一个图书销售网站的一切图书上锻炼LDA,就有可能得到这样的主题,由于有很多套装图书都包含这样的信息),和这样主题相关的文档却有可能是任何主题,这样的主题就是信息量低的主题。


如何分辨主题能否重要呢?从上面的例子中我们能够得到启示:重要的主题不会四处呈现,只会出往常小部分与之相关的文档中,而不重要的主题则可能在各种文章中都呈现。基于这样的思想,我们能够运用信息熵的措施来权衡一个主题中的信息量。经过对LDA输出信息做恰当的变换,我们能够得到主题θi在不同文档中的概率散布,然后我们对这个概率散布计算其信息熵,浅显来讲信息熵权衡了一个概率散布中概率值分散水平,越分散熵越大,越集中熵越小。所以在我们的问题中,信息熵越小的主题,阐明该主题所对应的文档越少,主题的重要性越高。


运用相似的措施,我们还能够计算词的重要性,在此不再赘述。


更多应用


除了上面提到的,LDA还有很多其他应用,以至在文身手域以外的图像等范畴也存在着普遍应用。LSA/pLSA/LDA这些主题模型的中心基础是词在文档中的共现,在此基础上才有了各种概率散布,掌握住这个中心基础,就能够找到文本主体模型的更多应用。例如,协同过滤问题中,基础数据也是用户对物品的共同行为,这也构成了文本主题模型的基础,因而也能够运用LDA对用户对物品的行为中止建模,得到用户行为的主题,以及主题下对应的物品,然后中止物品/用户的引荐。


捕获上下文信息:神经概率言语模型


以LDA为代表的文本主题模型经过对词的共现信息的合成处置,得到了很多有用的信息,但是pLSA/LDA有一个很重要的假定,那就是文档汇合中的文档,以及一篇文档中的词在选定了主题散布的状况下都是相互独立,可交流的,换句话说,模型中没有思索词的次第以及词和词之间的关系,这种假定隐含了两个含义:


在生成词的过程中,之前生成的词对接下来生成的词是没有影响的。


两篇文档假如包含同样的词,但是词的呈现次第不同,那么在LDA看来他们是完整相同的。


这样的假定使得LDA会丧失一些重要的信息,而近年来得到关注越来越多的以word2vec为代表的神经概率言语模型恰恰在这方面和LDA构成了一定水平的互补关系,从而能够捕获到LDA所无法捕获到的信息。


word2vector的中心机想用一句话来讲就是:A word is characterized by the company it keeps(一个词的特征由它周围的词所决议)。


这是一句颇有哲理的话,很像是成语中的“物以类聚人以群分”。细致来讲,词向量模型运用“周围的词=>当前词”或“当前词=>周围的词”这样的方式结构锻炼样本,然后运用神经网络来锻炼模型,锻炼完成之后,输入词的输入向量表示便成为了该词的向量表示,如图3所示。

自然言语处置技术(NLP)在引荐系统中的应用


这样的锻炼方式,实质上是在说,假如两个词具有相似的上下文(上下文由周围的词组成),那么这两个词就会具有相似的向量表示。有了词的向量表示之后,我们能够做很多事情,最常见的是将这一层向量表示作为更深层次模型的一个嵌入层。除了在深度学习中的运用以外,在引荐系统中还能够做很多其他的事情,其中之一就是做词的聚类,以及寻觅相似词。我们知道LDA自然就能够做到词的聚类和相似词的计算,那么运用word2vec计算出来的结果和LDA有什么不同呢?它们之间的不同细致体往常两点:第一是聚类的粒度不同,LDA关注的主题级别的粒度,层次更高,而词向量关注的是更低层次的语法语义级别的含义。例如“苹果”,“小米”和“三星”这三个词,在LDA措施中很可能会被聚类在一个主题中,但是在词向量的角度来看,“苹果”和“小米”可能会具有更高的相似度,就像“乔布斯”和“雷军”在词向量下的关系一样,所以在词向量中可能会有:“vector(小米)- vector(苹果)+vector(乔布斯)= vector(雷军)”这样的结果。


除此以外,由于word2vec有着“依据上下文预测当前内容”的才干,将其做恰当修正之后,还能够用来对用户行为喜好做出预测。首先我们将用户的行为日志中止搜集,中止session划分,得到相似文本语料的锻炼数据,在这个数据上锻炼word2vec模型,能够得到一个“依据上下文行为预测当前行为”的模型。但是原始的行为数据中行为的对象常常是id级的,例如商品、视频的id等等,假如直接放到模型中锻炼,会构成锻炼速度慢、泛化才干差等问题,因而需求对原始行为做降维,细致来说能够将行为映射到搜索词、LDA Topic、类别等等低维度特征上,然后再中止锻炼。例如,我们能够对用户的搜索词锻炼一个word2vec模型,然后就能够依据用户的历史搜索行为预测他的下一步搜索行为,并在此基础上中止引荐。这种措施思索到了上下文,但是对前后关系并没有做最恰当的处置,由于word2vec的思想是“依据上下文预测当前内容”,但我们希望得到的模型是“依据历史行为预测下一步行为”,这两者之间有着奇妙的差别。例如用户的行为序列为“ABCDE”,每个字母代表对一个物品(或关键词)的行为,规范的word2vec算法可能会结构出下面这些样本:AC→B, BD→C, CE→D… 但是我们希望的方式其实是这样的:AB→C, BC→D,CD→E…因而,需求对word2vec生成样本的逻辑中止修正,使其只包含我们需求的双方向的样本,方可在最终模型中得到我们真正希冀的结果。


下面是依照该措施生成的一些预测例子:

自然言语处置技术(NLP)在引荐系统中的应用


能够看出,预测搜索词都与历史搜索词有着紧密的关系,是对历史搜索词的延伸(例如学生书桌和烤肠机的例子)或者细化(例如小龟王和西铁城手表的例子),具有比较好的预测属性,是十分好的引荐战略来源。沿着这样的思绪,我们还能够对word2vec作进一步修正,得到对时序关系更为敏感的模型,以及尝试运用RNN、LSTM等纯时序模型来得到更好的预测结果,但由于篇幅所限,在此不做展开。


行业应用现状


文本主题模型在被提出之后,由于其良好的概率性质,以及对文本数据有意义的聚类笼统才干,在互联网的各个行业中都取得了普遍的应用。搜索巨头Google在其系统的各个方面都在普遍运用文本主题模型,并为此开发了大范围文本主题系统Rephil。例如在为用户搜索产生广告的过程中,就运用了文本主题来计算网页内容和广告之间的匹配度,是其广告产品胜利的重要要素之一。此外,在匹配用户搜索词和网页间关系的时分,文本主题也可用来进步匹配召回率和精确性。Yahoo!也在其搜索排序模型中大量运用了LDA主题特征,还为此开源了著名的Yahoo!LDA工具。


在国内,文本主题最著名的系统当属腾讯开发的Peacock系统,该系统能够捕获百万级别的文本主题,在腾讯的广告分类、网页分类、精准广告定向、QQ群分类等重要业务上均起着重要的作用。该系统运用的HDP(Hierarchical Dirichlet Process)模型是LDA模型的一个扩展,可智能选择数据中主题的数量,还具有捕获长尾主题的才干。除了腾讯以外,文本主题模型在各公司的引荐、搜索等业务中也曾经在普遍运用,运用措施依据各自业务有所不同。


以word2vec为代表的神经网络模型近年来的运用也比较普遍,典型的应用如词的聚类、近义词的发现、quer y的扩展、引荐兴味的扩展等。Facebook开发了一种word2vec的替代计划FastText,该计划在传统词向量的基础上,思索子词(subword)的概念,取得了比word2vec更好的效果 。


总结和瞻望


我们从简单的文本关键词动身,沿着结构化、降维、聚类、概率、时序的思绪,分离引荐系统中候选集召回、相关性计算、排序模型特征等细致应用,引见了引荐系统中一些常用的自然言语处置技术和细致应用措施。自然言语处置技术借着深度学习的东风,近年来取得了长足的进步,而其与引荐系统的紧密关系,也意味着引荐系统在这方面依旧有着庞大的提升空间,让我们拭目以待。



路过

雷人

握手

鲜花

鸡蛋
已有 0 人参与

会员评论

文章排行

  • 阅读
  • 评论

最新文章

文章列表

 名表回收网手机版

官网微博:名表回收网服务平台

今日头条二维码 1 微信公众号二维码 1 抖音小程序二维码 1
浙江速典奢贸易有限公司 网站经营许可证 备案号:浙ICP备19051835号2012-2022
名表回收网主要专注于手表回收,二手名表回收/销售业务,可免费鉴定(手表真假),评估手表回收价格,正规手表回收公司,浙江实体店,支持全国范围上门回收手表
返回顶部