人民网
人民网>>传媒>>人民网奖学金>>邮电2015

关于个性化主页定制的新闻推荐算法研究

方泽阳 、李鹏飞 、惠磊 、李杨
2016年03月16日10:41 | 来源:人民网研究院
小字号

摘要:随着互联网时代的到来,互联网新闻媒体已经代替了传统新闻媒体成为了主要的信息来源。人民网作为一个新兴媒体的代表,每天发布的信息量巨大,且信息类复杂,作为用户来说,面对如此大的信息量,在短时间内是无法接受到自身感兴趣的新闻信息,而目前人民网没有设定用户主页定制的功能,因此关于人民网的个性化主页定制的算法研究是非常有必要的。而目前的主要是的推荐是协同过滤算法,新闻协同过滤算法主要是考虑到用户,新闻之间的相似性,而当新闻信息内容发生巨大改变时或者用户群体的数量增大时,基于协同过滤算法的新闻推荐模型的精确度会发生变化,该算法的缺点是我们不能挖掘出新闻的主题分布,和用户的关注的兴趣方向,因此协同过滤算法效率比较低下。因此我们需要一种基于新闻主题的新闻推荐算法。该算法主要是利用LDA算法来分析新闻的主题分布,利用关联规则算法来分析用户的主题分布,利用spark集群的处理较大数据集。

第一章 研究题目现实意义

联网经历了门户网站和搜索引擎的时代,迎来了社交网络的时代。我们面临新的挑战,信息碎片化,时间碎片化,用户体验的个性化需求,终端由PC转向手持智能终端等。社会化的新闻推荐引擎试图通过以人为中心的社交网络数据分析,深度挖掘定位用户的喜好,关注用户的兴趣特点,最终将合适的新闻信息推送到指定用户。

本文的研究意义在于将用户作为一个研究对象,通过用户的历史的浏览记录,依托于的相应的数据分析和数据挖掘的分析方式,致力于探索用户所感兴趣的新闻的主题,最终通过主题分析来得到用户的兴趣爱好来推送相应的新闻信息和广告信息。

第二章 传统新闻推荐的区别

传统的新闻推荐算法主要是依托于协同过滤算法, 主要是利用item-based和used-based两种过滤方式来处理新闻信息,这种方式主要思想是利用文本之间的相似性来突出用户之间的相似性,但是在实际新闻推荐上并不能得到非常理想的推荐的效果,主要原因主要有以下,第一,基于协同过滤的新闻推荐算法主要是突出了文本的相似性,而这种相似性并不能完全代表用户的相似性;第二,基于协同过滤的新闻推荐算法,并没有将用户作为一个研究对象,因此数据挖掘深度比较浅,并不能挖掘出用户的兴趣爱好。而本文的研究意义,将用户作为一个研究对象,通过主题分析的方式来探索用户的特点,尝试通过主题分析真正做到个性化新闻推荐,来完成个性化主页定制。

第三章 推荐模型的建立

作为新闻主题分析,主要是通过对用户的浏览记录,记录用户的浏览的新闻, 而这些新闻里面通常是包括相应的主题,如果这些主题重复多次出现,我们认定这些主题是读者所关心的新闻热点,并且认为是读者兴趣爱好所在。例如通过主题分析,该用户所关心的篮球,足球和银行利率的主题多次出现,我们认为该用户较喜欢体育类新闻,同时可能从事金融行业,因此我们可以从这两方面推荐新闻,并且植入一些基于该用户定制的广告,例如金融产品和体育产品广告。在此基础上,我们通过相应的关联规则来探索用户兴趣关联,例如如果在1个小时内浏览记录里面,用户多次同时查看了关于足球和排球的新闻信息,基于此我们在推送信息时,我们可以将此两种信息同时推送到读者那里。主要算法流程图如下显示。

3.1新闻语料库的形成

由于该算法的数据来源是来自于用户浏览的新闻,由于一篇文章的信息过多,我们很难讲一篇文章直接导入我们的算法中,因此需要过滤一些信息,形成文章最终的语料库。文本分析,通常是通过分词来完成,分词主要的目的来完成语义分析。语义分析主要有以下几种方式。

基于字符串匹配的分词方法。此方法按照不同的扫描方式,逐个查找词库进行分词。根据扫描方式可细分为:正向最大匹配,反向最大匹配,双向最大匹配,最小切分(即最短路径);总之就是各种不同的启发规则。

全切分方法。它首先切分出与词库匹配的所有可能的词,再运用统计语言模型决定最优的切分结果。它的优点在于可以解决分词中的歧义问题。下图是一个示例,对于文本串“南京市长江大桥”,首先进行词条检索(一般用Trie存储),找到匹配的所有词条(南京,市,长江,大桥,南京市,长江大桥,市长,江大桥,江大,桥),以词网格(word lattices)形式表示,接着做路径搜索,基于统计语言模型(例如n-gram)找到最优路径,最后可能还需要命名实体识别。下图中“南京市 长江 大桥”的语言模型得分,即P(南京市,长江,大桥)最高,则为最优切分。

由字构词的分词方法。可以理解为字的分类问题,也就是自然语言处理中的sequence labeling问题,通常做法里利用HMM,MAXENT,MEMM,CRF等预测文本串每个字的tag,譬如B,E,I,S,这四个tag分别表示:beginning, inside, ending, single,也就是一个词的开始,中间,结束,以及单个字的词。 例如“南京市长江大桥”的标注结果可能为:“南(B)京(I)市(E)长(B)江(E)大(B)桥(E)”。由于CRF既可以像最大熵模型一样加各种领域feature,又避免了HMM的齐次马尔科夫假设,所以基于CRF的分词目前是效果最好的。

虽然字构词的分词方法分词效果比较好,但是计算复杂,并且内容繁杂的词库支持,这里我们使用全切分方法的方式来切词,虽然全切分分词效果相对于字构词的分词方法分词效果相对差点,但是算法简单,计算速度快,尤其对于海量文本来说,利用此种方式可以迅速得到语料库,加快算法流程

3.2文本处理和特征处理

虽然通过分词可以一定规模的新闻语料库,但是由于在这里分词中有大量分词是没有价值的,这些词被定义为停用词,在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词),例如几乎每篇文章都会这样的词,“你”,“我”,“的”,“都”,“为”,“因为”,这些词并不能显性特征化新闻信息,因此除去这些停用词是有必要的。另外,除了停用词,还有以下词,例如标点符号,表情符,异常词。除去这些非必要词,我们会得到一个比较干净的文本语料库。

虽然我们可以得到一个比较干净的语料库,但是可想而知,我们将一篇文章通过N-Gram语言模型来分词,会得到一个高维度的语料库,例如一片300字文章,我们可能到2000个词来代表这篇文章,在特征工程中,如果我们将这样放入语料库导入我们的模型中,是存在“维灾数”的问题,这样直接导致的问题是我们模型预测结果的准确率和召回率都比较低,推荐效果将不容乐观!因此我们需要相应的技术手段或者是算法来得到特征化我们文章的词,简化的说我们需要找到这些文章的关键词。而找到我们新闻文本中的特征词,主要的算法主要有以下几种:TF-IDF,信息增益,互信息,文档频率方法、信息增益方法、互信息方法、CHI方法、期望交叉熵等。这里主要我们用到的算法是最常用的文本挖掘方法,TF-IDF。

TF-IDF(term frequency–inverse document frequency)是一种信息挖掘以及信息搜索领域的常用加权技术。在搜索、文献分类和其他相关领域有广泛的应用。TF-IDF是一种统计方法,它的作用主要是评估某一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。通常认为,字词的重要性与它在文件中出现的频率成正比,但是和它在文件集或语料库中的普遍性成反比,既它在文件集中的出现频率越高重要性越低。搜索引擎通常使用TF-IDF加权的各种形式作为文件与用户查询关键词之间相关程度的度量。

TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF词频(Term Frequency),IDF反文档频率(Inverse Document Frequency)。TF表示词条在文档d中出现的频率。IDF的表达式为如下图所示:

IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。如果某一类文档C中包含词条t的文档数为m,而其它类包含t的文档总数为k,显然所有包含t的文档数n=m+k,当m大的时候,n也大,按照IDF公式得到的IDF的值会小,就说明该词条t类别区分能力不强。但是IDF也有不足之处,如果某个词条在某一类的文档中普遍出现,则说明该词条能够很好代表这一类的文本的特征,这样的词条应该给它们赋予较高的权重。

其实在某篇文章中,计算权重的时候,会根据每个词分词来计算,例如:“中国女排世锦赛冠军”这个词。假设:中国女排页面检索数位2000万,世锦赛的检索数为1000万,技巧的检索数为50000万。假设新浪网页面总数为100亿。中国女排在www.sina.com/xxx.html这个网站中页面(页面总词数400)出现8次,世锦赛出现10次,技巧出现16次。

那么各自的词频:TF(中国女排)=8/400=0.02,TF(世锦赛)=10/400=0.025,TF(冠军)=20/400=0.04。而IDF(中国女排)=LOG(10000000000/20000000)=2.69897,

IDF(世锦赛)=LOG(10000000000/10000000)=3,我们最好还要计算我们的冠军的IDF,IDF(冠军)=log(10000000000/100000000)=1.69897,这么算下来之后,“中国女排世锦赛的冠军”为页面的权重和相关度贡献的值分别:Tf-idf(中国女排)=0.02*2.69897=0.0539794,Tf-dif(世锦赛)=0.025*3=0.075,Tf-idf(冠军)=0.04*1.69897=0.0679588

因此从得到TF-IDF值我们可以预计这篇文章主最关注的是世锦赛的信息,我们可以设定一定的阀值,当TF-IDF值小于这个值的时候,我们可以将这些词过滤到,这样我们就可以减少特征数,避免“维灾数”。

3.3 LDA(主题分析)算法

虽然我们可以通过TF-IDF来得到文章的关键词,但是TF-IDF并更多去解读文章的语义问题,举个例子,有两个句子分别如下:“乔布斯离我们而去了。”,“苹果价格会不会降?”。可以看到上面这两个句子没有共同出现的单词,但这两个句子是相似的,如果按传统的方法判断这两个句子肯定不相似,所以在判断文档相关性的时候需要考虑到文档的语义,而语义挖掘的利器是主题模型,LDA就是其中一种比较有效的模型。

隐含狄利克雷分布(Latent Dirichlet Allocation,简称LDA),该算法的核心的思想是首先,可以用生成模型来看文档和主题这两件事。所谓生成模型,就是说,我们认为一篇文章的每个词都是通过“以一定概率选择了某个主题,并从这个主题中以一定概率选择某个词语”这样一个过程得到的。那么,如果我们要生成一篇文档,它里面的每个词语出现的概率为,概率示意图如下图显示:

这个概率公式可以用矩阵表示,如下图显示:

LDA的这三位作者在原始论文中给了一个简单的例子。比如假设事先给定了这几个主题:Arts、Budgets、Children、Education,然后通过学习的方式,获取每个主题Topic对应的词语。如下图所示:

然后以一定的概率选取上述某个主题,再以一定的概率选取那个主题下的某个单词,不断的重复这两步,最终生成如下图所示的一篇文章(其中不同颜色的词语分别对应上图中不同主题下的词):

由于LDA算法中涉及了大量的统计学的和概率论的知识,主要涉及的二项式分布、多项式分布、beta分布、狄利克雷分布(Dirichlet分布)、共轭先验概率分布、取样,算法非常复杂,但是主要的思路就是通过我们文档着词语的分布最终得到文档和主题的分布。因此通过我们筛选的语料库,将该语料库导入我们的模型中,最终可以得到我们的主题分布的情况。

3.4 关联规则的发现

在LDA模型中我们可以得到大量的浏览主题,而且主题之间有次序的,例如在某10分钟内,一个用户在浏览完政治类的主题新闻后,立即浏览财经类的欣慰,关注于银行的利率问题和股市的走势问题,可想而知,我们可以对用户的浏览习惯进行预测,更加深入挖掘用户的兴趣爱好。

所谓关联,反映的是一个事件和其他事件之间依赖或关联的知识。当我们查找英文文献的时候,可以发现有两个英文词都能形容关联的含义。第一个是相关性relevance,第二个是关联性association,两者都可以用来描述事件之间的关联程度。而常用的关联规则算法有FP-Growth算法,Apriori算法。这两种算法都能很好完成关联规则的发现。在关联规则算法中主要有两种概念要值得注意,一个是置信度,一个支持度。只有一个关联规则的置信度和支持度同时满足最小阀值的时候才能认可之间的关联规则。下面有一个实例来解释关联规则的发现。下表是某一段时间,足球,网球,篮球,羽毛球的关联关系表,

上表是某一位用户在10:00~11:00网页的浏览主题分布情况,在这个过程中分别浏览了关于足球,网球,篮球,羽毛球的主题的网页,包含6个事务。项集I={足球,网球,运篮球,羽毛球}。考虑关联规则(频繁二项集):足球与网球,事务1,2,3,4,6包含足球事务1,2,6同时包含足球和网球,X^Y=3, D=6,支持度(X^Y)/D=0.5;X=5, 置信度(X^Y)/X=0.6。若给定最小支持度α = 0.5,最小置信度β = 0.6,认为主题足球和主题网球之间存在关联,我们认为改用,喜欢同时阅读足球和网球主题的新闻信息,因此我们可以同时将两者的新闻推送到用户那里去。

3.5 算法对比

由于该算法与普通的LAS算法属于的不同的性质的推荐算法,在算法和模型的某种性质上是很难进行进行横向进行比较的,但是依然我们可以比较出两种算法的优缺点:1、对于时间效率上,LAS算法主要是在user和item的相似性进行比较,虽然推荐效果相对较好,但是其缺点是Item数量进行扩展时,基于LAS推荐模型要重新进行训练数据,且因为数量的增加因此总体上时间效率较低,而基于LDA的推荐模型因为对用户特征有很好的概括性,即使Item项进行扩展时,模型计算不会倍增,在时间效率上比较有优势。2、相对于模型的准确性来说,由于LDA主要是基于item之间的相似的,但是对于新闻推荐来说,用户看过的新闻不一定最喜欢的新闻主题,但是就要基于LDA的推荐算法主要是对主题进行挖掘,而用户的感兴趣的主题在短时间内是难以改变的,因此在推荐准确性用基于LDA的推荐模型准确性更高。3、对于数据敏感性,当用户的兴趣爱好发生改变的时候,对于LAS算法来说,LAS算法会马上发现用户的主题的变化,但是对于LDA算法来说,数据敏感性不强,因此这也是基于LDA推荐模型的缺点。具体的对比如表3-2所示。

3.6 个性化调参

参数调整是模型一个比较重要的步奏,也关乎到模型的准确性。下面有一些参数是个性化主页定制的重要参数。第一,用户自选兴趣主题。对于LDA算法模型来说,可以将用户模糊的兴趣取向细致化精确化,但是大多数条件下,用户是对自己的兴趣有一定的了解,因此我们应该将用户自选的主题加入用户的主题列表中,这样有利于用户的个性化选择,提高模型的准确性。第二,N-gram语言模型的取值。对于N-gram语言模型来说,N的选择会影响到LDA模型的主题输出,但是模型的计算量也会增加,因此N的取值比较重要,考虑到主题的分布,我们会试着增加N取值,建议N的取值在1~3之间。当我们主题的分布比较广时,我们会试着增大N的取值,例如新闻主题下有体育主题,体育主题有篮球,篮球下有NBA,NBA下有某一些篮球巨星,因此这样的主题分布比较,广,因此N取值可以考虑设置大一些。第三,TD-IDF因子选择。由于TF-IDF因子大小的选择会影响主题的选择,如果TF-IDF会增大主题的分布范围,与此同时也会增加模型的训练的时间。但是我们模型的训练在spark集群的MLLib使用,因此我们的的时间效率相对会较高,因此可以选择较小的TF-IDF因子来扩大我们主题的范围。第四,关联规则的频繁项集的项数。关联规则的频繁项集的项数,关系最好关联的新闻总量,这里我们不仅要考虑推荐系统的推送性能上限,也要考虑到用户个性化选择,如果关联的新闻较多就会增加推荐系统的负载,但是最重要的是用户的选择,如果用户希望推荐的关联新闻较多,那么频繁项集的项数可以设置大一点,最重要的是用户的个性化选择。

第四章 推荐系统架构

考虑到我们系统的架构,由于我们的模型的设计上用到了复杂性比较高的算法,例如LDA算法和FP-Growth算法,且模型训练过程中药多次迭代运行,且该系统是实施推送系统,当大量的数据文本进入我们的推荐的系统的时候,我们想实时的将文章个性化的推荐我们的用户的客户端,因此我们的运算能力需要得到保证。这里我们建议使用适合迭代运算的spark的分布式计算集群。由于spark生态中有属于自身的机器学习库,因此我们很容易的可以将该模型部署到spark集群中。Spark的集群构架如下。

系统的整体的部署如下:首先,我们通过Spark集群对用户原始的浏览记录的网页进行处理,将处理后的数据导入我们的LDA模型中,得到我们用户所关心的主题列表,其中还要对主题列表进行一些过滤操作,将我们根据时间排序的主题表导入我们的关联规则模型中,最终生成我们的主题列表和关联列表,将两者信息存储起来。其次,当有大量的信息进入我们的系统后,首先将新闻文本信息进行处理,导入我们的LDA主题分析模型汇总,得到每篇新加入文章的主题。最后将上诉两步得到的信息导入我们的推送系统中,推送系统主要的目的是根据我们用户的感兴趣的主题列表和管脸列表刷选新来到的主题的新闻,将符合用户兴趣的主题新闻依次发送大到用户的客户端中,为用户定制个性化主页。

参考文献

[1] 杨杰.个性化推荐系统应用及研究[C].最后修订于, 2009.6

[2] 张玉.个性化推荐系统应用及研究[C].2008.1

[3] 符燕华.Web文本挖掘技术研究[M].计算机研究与发展, 2000.11

[4] 朱达欣,蔡丹琳.文本挖掘原理[C].泉州师范学院学报, 2003.04

[5] Arindam Banerjee and Sugato Basu. Topic Models over Text Streams: A Study of Batch and Online Unsupervised Learning. InSDM. SIAM, 2007.

[6] Arindam Banerjee and Sugato Basu. Topic Models over Text Streams: A Study of Batch and Online Unsupervised Learning. InSDM. SIAM, 2007.

[7] Feng Yan, Ningyi Xu, and Yuan Qi. Parallel inference for latent dirichlet allocation on graphics processing units. InNIPS, 2009.

[8] Arthur Asuncion, Padhraic Smyth, and Max Welling. Asynchronous distributed learning of topic models. In NIPS, pages 81–88, 2008.

(责编:王妍(实习)、燕帅)

分享让更多人看到

传媒推荐
  • @媒体人,新闻报道别任性
  • 网站运营者 这些"红线"不能踩!
  • 一图纵览中国网络视听行业
返回顶部