论文部分内容阅读
随着信息技术的飞速发展,推荐系统在人们的日常生活中起着重要的作用。尤其是在信息爆炸式增长的当今,人们难以从海量的数据中去寻找自己所需要的个性化信息。因此,研究实现适用于大规模场景的智能化、个性化的推荐系统已经成为了人们生活中的迫切需求。经过数十年的研究发展,目前存在着多种类型的推荐算法与系统,它们适用于多种类型的数据。人们可以针对不同类型的数据选择适当的算法以进行推荐。一方面,现有的推荐算法与系统一般都只有针对较小规模数据的单机实现,它们难以应用于海量数据场景。为此,本文首先针对多种传统的、浅层次单机推荐算法在Spark平台上设计实现了相应的并行化方案,其中包括适用评分数据较为稠密和秩较高场景、基于近邻模型的推荐算法,适用于数据较为稀疏场景、基于SVD分解的协同过滤算法,以及适用于多视角数据场景的MVM推荐算法。这类推荐算法从不同的视角、利用浅层次的特征提取方式对用户进行推荐。如近邻模型的推荐算法直接利用了用户或项目的评分向量进行推荐,它是一种单视角、未分解(0层次)的算法:基于SVD分解的推荐模型则利用分解出的用户和项目特征进行推荐,是一种双视角、1层分解的推荐算法;而MVM算法则是利用分解机制对多种类型的数据进行特征提取,从而进行推荐,是一种多视角、1层分解的推荐算法。另一方面,在智能设备不断发展的同时,信息类型也在朝着多元化的方向发展。传统的协同过滤推荐算法难以适用于复杂类型的数据,例如文本、图片、视频等信息。为此,本文针对现实生活中的复杂数据类型在TensorFlow平台上研究实现了基于深度模型的推荐算法。如利用深度神经网络来学习用户项目评分信息中用户和项目的协同过滤特征。而针对文本、图片等复杂类型的数据,本文设计实现了基于深度模型的内容过滤算法。并且,为了综合利用多种类型的数据信息,本文设计实现了一个深度多视角推荐模型,以保证充分利用现实世界中的多种信息。最后,本文还设计实现了一个深度推荐模型的并行化框架,并且该框架适用于本文的所有深度推荐模型。这些推荐算法利用深度神经网络对数据进行特征提取,因此属于多视角、深层次的推荐算法。对于多视角、浅层次的推荐算法,本文在保证算法精确度的同时主要针对算法的执行效率进行优化。对于近邻模型的推荐算法,本文并行化方案相对于单机算法提升了 15倍左右;对于基于SVD分解的推荐算法,本文并行化方案则相对提升了 30倍左右;而对于MVM算法,本文的并行化方案相对于GraphX并行版本提升40%左右的性能。对于多视角、深层次的推荐算法,本文的目的是提高相应的精确度并保证算法适用于大规模场景。对于用户项目的评分行为数据,本文提出的深度协同过滤算法相对于NCF、NNMF等模型提升了 0.43%-1.93%的精确度;对于复杂的文本类型数据,本文提出的深度内容过滤算法相对于已有的内容过滤算法提升了0.14%-2.3%的精确度。对于深度多视角推荐模型,本文提出的算法相对于深度协同过滤和深度内容过滤提升0.49%-1.89%的精确度。最后,实验数据表明本文设计实现的深度推荐模型的并行化方案具有良好的并行扩展性。