一种基于大数据技术的用户动态兴趣模型建立方法与流程

文档序号:16069112发布日期:2018-11-24 12:58阅读:236来源:国知局

本发明属于大数据及互联网信息服务技术领域,具体涉及一种基于大数据技术的用户动态兴趣模型建立方法。

背景技术

随着互联网规模的迅速发展,人们获取信息的方式越来越多,但互联网中的各种信息无比冗杂,已经远远超出个人能够接受和处理的极限。同时信息爆炸式的增长,使得用户更难以从海量的信息中找到自己所需的内容。获取信息是人类认知世界、生存发展的基本需求,但互联网中“数据过载”却阻碍了我们有效地、快速地获取所需信息。由此,基于用户数据的各类个性化服务应运而生,成为目前互联网世界最常见的信息服务。个性化服务系统一般由数据源抽取、用户兴趣模型、个性化服务引擎三个部件来实现,其中用户兴趣模型是个性化服务系统的核心部件。用户兴趣模型的精准性和时效性反映了兴趣模型的优劣,也直接影响了个性化服务的质量。

建立用户兴趣模型的目的是为了从用户与事物的交互行为数据中捕获用户的兴趣偏好,刻画用户的兴趣特征,分析用户兴趣与事物之间的关联性,并结合用户当前的兴趣意愿提供个性化服务。传统的方式是对用户历史行为数据及其同类用户关注事物数据进行兴趣分析,从而提供个性化服务。其用户兴趣建模,考虑到了用户兴趣的相似性和用户关注事物的偏好,但没有全面考虑到用户兴趣的动态性、时效性、多样性。虽然目前已有的一些研究提出结合其他数据进行建模,但是仍存在不能充分有效地刻画用户兴趣特征的问题,以及不能及时跟踪和获取用户兴趣的变化来实现对兴趣模型动态更新等问题。因此,在大数据背景下,除了用户行为数据作为用户动态兴趣建模的重要依据以外,同时还应该将用户行为的上下文数据、交互事物数据、用户自身数据等作为建立用户动态兴趣模型的重要依据。用户兴趣具有多样性、时效性、动态性,这些特性使得传统用户兴趣模型方法预测的精准性表现不佳。为了全面地分析与刻画用户兴趣模型,利用大数据技术分析建立用户动态兴趣模型成为必然的技术手段。

评判用户动态兴趣模型的优劣主要在于模型的精准性和时效性。用户的兴趣不是一成不变的,随着时间的推移,其原本的兴趣会渐渐淡化,而新的兴趣渐渐产生,这个过程被称为“兴趣漂移”。通常是通过模型的更新机制来确保兴趣模型的时效性,处理兴趣漂移的方法主要归纳为两种:时间窗口法和遗忘函数法。时间窗口法是利用滑动窗口隐藏过时的兴趣,该算法的实现思路是:将时间维度引入用户动态兴趣模型建立中,构建随时间变化临时的模型,这个过程中仅仅需要考虑当前时间窗口内的数据,落在窗口外的数据则认为是无效的。时间窗口法容易实现,但是影响固定观察时间窗口大小的因素很多,如外部环境、应用场景等。但过多的过滤窗口外用户行为数据,可能会导致用户动态兴趣模型的准确性降低。遗忘函数算法是利用遗忘函数对用户兴趣权重进行更新,其基础是一种基于时间参数的模型方法,主要思想是:在模型中加入时间相关的遗忘曲线,利用遗忘曲线对用户的历史数据赋予不同的权值,再进行筛选并建立模型。遗忘函数算法的原理是:在用户动态兴趣模型的构建过程中,用户近期的行为数据比历史的行为数据更能反应用户的当前兴趣,在计算过程中会赋予更高的权值。

传统的用户动态兴趣建模方法将用户的不同兴趣视为一个整体来分析不同因素对用户兴趣的影响,即认为一个用户只有一个兴趣模式。在实际情况下,对于用户的不同兴趣点,同一个因素对用户的影响可能不同。因此,将用户的不同兴趣视为一个整体显然是不恰当的。

综上所述,传统用户兴趣模型方法在兴趣多样性、精准性、时效性等方面都不能满足指数级增长的数据分析处理与个性化服务需求,同样对用户的不同兴趣分析的差异性也存在局限。



技术实现要素:

本发明的目的,是针对传统用户兴趣模型的这些局限性进行改进完善,提出一种基于大数据技术的用户动态兴趣模型建立方法,实现用户兴趣的精准预测,以达到更好质量的个性化服务。

本发明的技术方案是:

如图1所示,本发明方法涉及的用户动态兴趣模型系统包括个性化服务平台数据源、数据采集模块、数据预处理模块、用户动态兴趣模型构建模块四个处理部分。

个性化服务平台是为用户提供电子商务或信息服务的应用系统,它在系统运行中记录了用户各种行为数据和背景数据。同时该平台基于用户兴趣模型的预测,为用户提供个性化服务。

数据采集模块是利用个性化服务平台数据源,采集用户属性数据、行为数据、行为上下文数据、行为交互的事物对象数据等原始数据。

数据预处理模块对从各个数据源采集到的原始数据集进行清洗、数据标准化、数据集成和数据筛选等工作。

用户动态兴趣模型构建模块对预处理之后的用户数据先进行数据聚类分析,抽取用户兴趣点,然后通过机器学习中的加权线性集成学习方法获取用户的兴趣值预测函数,由此度量兴趣值,并使用空间向量表示用户兴趣模型。

本发明的一种基于大数据技术的用户动态兴趣模型建立方法,包括以下步骤:

s1、数据采集:

利用个性化服务平台的系统日志和系统数据库,采集用户属性数据、行为数据、用户行为交互对象数据;

利用个性化服务平台对外提供的数据接口,采集用户行为背景数据,至少包括用户行为的环境信息、用户行为交互对象信息;

s2、预处理:对步骤s1采集的数据进行筛选,以过滤与用户兴趣无关的数据;

数据预处理是指在分析处理前对原始数据进行处理,主要包括数据清洗、数据标准化、数据集成和数据筛选。数据清洗和数据标准化通过补充缺失值、光滑噪声数据、数据数值化等方式达到数据格式标准化、错误纠正和重复数据的清除以及数据可计算化处理等目标。数据集成是将多个数据源中数据进行集成,将它们整合到一个数据集中,便于分析计算处理。数据预处理的最后阶段是数据筛选。本发明通过水平筛选与垂直筛选两部分降低数据集的维度和数据量。水平筛选的目的是过滤数据集中与用户兴趣相关性较低的属性列。垂直筛选则是过滤不在处理范围内的行数据。水平筛选只在初建用户兴趣模型时进行,垂直筛选则在模型构建与更新过程中均会使用。

s3、聚类分析:

数据聚类分析处理的目的是将用户数据划分到不同类中,从而进一步抽取出用户的兴趣点。聚类分析通过计算用户数据之间的相似度,将相似的用户数据聚类到一个类中,经过聚类处理后同一类中的用户数据蕴含相似的兴趣点。在数据聚类分析过程中,需要使用代价函数判断聚类是否完成。聚类代价函数原理是使簇间距离和簇内距离的和尽可能的小,从而确定最终聚类簇的数目,从而判断聚类是否完成。簇间距离为所有聚类簇中心之间的距离和,簇内距离为聚类簇内所有的点到簇中心点的距离之和。

s4、用户动态兴趣模型建立:

用户兴趣通常有多个方面,即有多个兴趣点。每个兴趣点都是由多个特征属性因素共同作用的结果。为了度量用户在兴趣点上的兴趣值,有必要建立用户的兴趣值预测函数。本发明利用机器学习的加权线性回归集成学习方法,对兴趣点所在聚类簇数据进行学习,分析不同特征属性数据对用户兴趣点的具体作用,从而获得用户对不同兴趣点上的兴趣值预测函数,然后结合用户的当前数据,计算用户在不同兴趣点的兴趣值。最后,利用空间向量模型表示用户兴趣组成,从而完成用户动态兴趣模型建立。

本发明总的技术方案,为了更好的建立用户动态兴趣模型,在数据采集方面,不但从系统日志和数据库采集数据,还通过传感器、网络接口等方式采集多种来源的用户大数据,其中包括用户属性数据、行为数据、行为上下文数据以及行为交互的事物对象数据。

获取到的源数据并不能直接用于建模分析,首先要对这些数据进行预处理。预处理过程主要包括数据清洗、标准化、数据整合,以及数据筛选等。源数据既包含蕴含用户兴趣的行为数据,但也包含不少与用户兴趣无关的其它数据,这些无关数据在分析计算中会影响结果的准确性和计算性能。因此,在预处理中对源数据进行数据筛选是十分必要的。本发明在数据预处理中分别使用水平筛选与垂直筛选方法进行数据过滤。其中水平筛选只在初始用户兴趣模型创建中进行,它通过对用户数据属性集进行筛选,只选取与用户兴趣关联较大的特征属性列,实现用户数据的降维处理。垂直筛选则是过滤掉与用户兴趣无关或者不在范围内的数据行,减少数据量。总之,通过数据筛选,从用户数据集中获得与用户兴趣关联较大的行列数据。

对预处理之后的用户数据进行聚类分析,得到包含相似兴趣行为的用户数据聚类簇。同一聚类簇内的用户数据代表了相同的兴趣点,并在这个兴趣点上具有相似的兴趣模式。此外,同一个用户的不同数据可能会被聚类到不同的数据簇中,这是因为一个用户通常有多个兴趣点,对不同的兴趣点,其兴趣模式也会不同。对聚类簇内用户交互事物的类别进行统计分析,从中找出最高频次交互的事物类别名称,即用户的兴趣点。用户动态兴趣模型的建立不仅需要得到用户的各个兴趣点,还需要度量用户在每个兴趣点上的兴趣值。本发明通过获取用户的兴趣值预测函数,结合用户当前数据,从而量化其在该兴趣点上的兴趣值。最终将用户的各个兴趣点及其兴趣值用多维空间向量表示,从而完成该用户的动态兴趣模型构建。

通常用户兴趣是随时间发生变化的,用户兴趣模型只有持续地动态更新才能保证用户兴趣模型的时效性。在分析出用户兴趣周期后,便可确定用户兴趣模型的更新周期。在个性化推荐服务系统中,通过获取用户对感兴趣事物对象的持续时间跨度,再结合用户兴趣变化符合正态分布的特点,由此可计算出用户在每一类事物对象上的兴趣周期。选取用户最短的事物对象兴趣周期作为该用户兴趣模型的更新周期。此后,在每个更新周期中,本发明方法获取新的用户数据,重新分析用户兴趣,并将它们在用户兴趣模型进行更新。

进一步的,所述步骤s2的具体方法为:

s21、通过数据清洗和数据标准化,对采集的数据进行补充缺失值、光滑噪声数据、数据数值化,达到数据格式标准化、错误纠正和重复数据的清除以及数据可计算化处理的目标;

通过数据集成将多个数据源中数据进行集成,将它们整合到一个数据集中;

s22、通过数据的水平筛选,过滤数据集中与用户兴趣相关性较低的属性列:

水平筛选是从用户大量数据属性中筛选出特征属性集合,降低数据维度,有利于减少数据分析的计算量。本发明利用评估函数进行数据属性筛选。通过评估函数判断不同属性对用户兴趣的影响程度,保留对用户兴趣影响较大的数据属性。评估函数建立的依据是属性数据的分布状态,当一个属性对用户兴趣的影响较大时,所有样本数据在这个属性维度上都应该近似呈现高斯分布,即该属性上的样本数据都应该聚集在这个属性数据均值的左右,其属性数据的方差较小。评估函数的本质是通过计算属性数据方差,利用设定的阈值进行筛选,获取符合上述数据分布特征的属性。水平筛选的基本过程如图3:

1)选取属性。用户数据集中包含多个属性,在水平筛选中,对该用户数据集的属性逐一选取。

2)利用评估函数选取特征属性。选取特征属性的依据是计算该属性数据的方差,并判断方差是否小于设定的阈值。如果小于阈值,就将该属性添加到特征属性结果集中。否则,会该属性就被丢弃。

3)判断是否所有属性完成评估。如果是,输出结果集。否则,继续进行筛选过程。

s23、通过数据的垂直筛选,过滤不在处理范围内的行数据,如图2所示:

1)判断数据是否为范围内数据。大数据采集技术可能会采集到一些额外数据,如用户的登陆数据、个人信息修改数据等,这些数据是用户兴趣建模分析不需要的,应该丢弃。同时需要判断用户数据是否在周期范围内,只保留有效时间段内的数据,为后续分析处理做准备。

2)保存有效数据,输出过滤后结果集。将筛选完成的数据保存,以供后续计算处理。

进一步的,所述步骤s3的具体方法为,如图4所示:

s31、选择初始聚类中心:从用户数据中选出若干条数据作为初始聚类中心;

s32、用户数据聚类:利用聚类算法将各个用户数据划分到与其最相似的聚类中心所属类中;

s33、判断聚类是否完成:在数据聚类过程中利用代价函数判断聚类数据的状态,从而判断数据聚类是完成,如果聚类没有完成,根据之前的聚类结果调整聚类簇数目和步骤s31中聚类中心的选择,重复聚类;否则,停止聚类,保存聚类簇结果;

s34、聚类簇数据分析:对聚类簇数据进行分析,统计聚类簇中出现事物对象的种类和频次,在聚类簇数据内出现频次最高的事物对象说明簇内用户对其有最高的兴趣,其事物的种类名称可抽取为簇内用户的兴趣点;

s35、输出用户兴趣点:输出用户数据聚类分析的结果,即聚类簇分析获取的兴趣点。

进一步的,所述步骤s4的具体方法为,如图5所示:

s41、获取用户聚类簇数据:根据步骤s3的结果,通过对聚类簇数据进行机器学习获得用户的兴趣值预测函数,并进一步计算用户在该兴趣点的兴趣值;

s42、将一个聚类簇中数据划分为训练集和测试集,训练集数据将用于机器学习,以得到用户的兴趣值预测函数,测试集数据将用于检验该兴趣值预测函数是否有效;

s43、利用机器学习的加权线性回归集成学习方法对训练集数据进行分析处理,从而得到用户的兴趣值预测函数;

s44、利用损失函数检验学习结果:在测试集数据上利用损失函数对步骤s43学习获取的兴趣值预测函数进行检验,所述损失函数用于计算兴趣值预测函数在测试集数据上的预测值与真实兴趣值之间的偏差,当学习结果的损失函数达到了预设要求,表示学习完成,否则,返回步骤s43,继续学习;

s45、量化用户兴趣值:利用机器学习得到的兴趣值预测函数,结合用户的当前数据,计算出用户在兴趣点上的兴趣值;

s46、判断用户所有兴趣点是否都完成兴趣点的量化工作,如果没有完成,则返回步骤s41;

s47、利用空间向量表示用户动态兴趣模型:将用户数据分析得到的各个兴趣点及其兴趣值,利用空间向量模型表示,完成模型的建立过程;

s48、输出用户动态兴趣模型:将用户的各个兴趣点及其兴趣值输出到服务平台,以供个性化服务使用。

进一步的,还包括:

s5、对建立的兴趣模型进行更新,如图6所示:

s51、确定用户兴趣模型更新周期:根据用户兴趣持续时间,获得用户的兴趣模型更新周期;

s52、判断是否达到用户兴趣模型的更新时间节点:针对各个用户,判断是否达到用户模型更新节点,若没有到达更新节点,仅保存当前用户数据;若到达更新节点,则进入步骤s53,对该用户兴趣模型进行更新处理;

s53、用户兴趣模型更新处理:将自上次更新模型时刻到当前时刻的用户数据,重新进行兴趣模型分析计算处理,利用分析计算处理结果得到的用户兴趣数据,更新用户兴趣模型。

本发明的有益效果为:

1、在进行用户数据采集时,除采集用户属性与行为数据外,还采集用户产生行为时的上下文环境信息(如地点、时间、网络等),以及用户行为交互对象信息等用户大数据。通过用户大数据采集,为用户兴趣模型建立提供了全面的用户数据,从而为实现用户兴趣模型精准预测奠定了基础。

2、为了提高用户数据分析的计算性能与结果质量,在数据预处理阶段,采用水平数据筛选和垂直数据筛选方法,过滤了与用户兴趣无关的数据,使得参与分析计算的用户数据相关性更强。

3、对用户每一个兴趣点的聚类簇内数据进行机器学习,从中获取用户的兴趣值预测函数,度量用户在各个兴趣点上的兴趣值,从而实现用户兴趣的精准预测。

附图说明

图1为用户动态兴趣模型系统结构示意图;

图2为垂直筛选流程示意图;

图3为水平筛选流程示意图;

图4为聚类分析过程图;

图5为用户动态兴趣模型建立过程图;

图6为用户动态兴趣模型更新过程示意图;

图7为用户数据采集来源示意图;

图8为用户兴趣模型示意图。

具体实施方式

下面结合附图,详细描述本发明的技术方案:

1、数据采集

本发明是一种基于大数据技术的用户动态兴趣构建方法,与传统的用户兴趣模型构建只采集用户的行为数据不同,本发明除了采集用户行为数据外,同时还采集用户产生行为时的上下文数据,以及用户行为交互的事物对象数据。其中用户行为数据通过系统日志获取,用户行为发生时的上下文数据通常由网络接口或传感器获取,用户行为交互的事物对象数据通过系统数据库获取。例如,采集的用户基本属性数据包括用户id、年龄、性别、身高等;用户行为则包括收藏、购买、评价、评分、浏览等;用户行为发生时的上下文数据包括时间、地点、网络环境、登陆设备、心情、季节、气候等;用户行为交互的事物对象数据包括事物对象id、名称、类别、价格、描述等。这些用户数据采集来源如图7所示:

2、数据预处理过程

数据预处理工作是对获取的原始数据进行清洗、标准化、集成和筛选。来自不同数据源的原始用户数据通常有不同的数据形式。数据预处理目的是将这些数据转换为用户兴趣模型计算所需的数据形式。

数据清洗是对原始数据中存在的差错、缺失、奇异值等问题进行发现并纠正,使它们满足数据质量要求。其中主要工作是数据残缺值处理,通常对于缺失的数据采用均值替换法,将变量的属性分为数值型和非数值型来分别进行处理。如果缺失值是数值型的,就根据该变量在其他所有对象取值的平均值来填充该缺失的变量值。如果缺失值是非数值型的,根据统计学中的众数原理,用该变量在这个用户的取值次数最多的值来补齐该缺失的变量值。

数据清洗之后要进行数据的标准化,即将所有的数据转化为可计算的数值类型。假如,用户数据形式为c=(c1,c2,c3,c4),其中c1表示用户属性数据,c2为交互事物对象数据,c3为用户对交互事物对象的行为数据,c4是用户行为产生时的上下文数据。各部分数据表示如下:

c={c1,c2,c3,c4}

c1={userid,name,age,sex,height,weight...}

c2={itemid,itemname,pirce,feature1,feature2...}

c3={userid,itemid,actionid,cation,value...}

c4={actionid,time,season,location,mood...}

数据标准化则是将采集到的不同类型的原始数据,依据不同数据处理方法进行标准化处理。使用到的主要方法有:1)标称数据标准化。对于地点、性别等标称数据,转化为数值类型进行标准化。2)标识符数据处理。用户id、事物对象id在本发明的分析中并不参与计算,只将它们作为标识符,因此可以不进行处理。3)类别型数据标准化。有些数据自身具有一定的数据规则,属于类别型,则需要利用类别特征编码,转化为可以用于计算的数值。4)数值信息标准化。数值信息标准化主要是对数值类型的数据进行标准化处理。5)还有一些数据需要用到特征二值化的方法进行预处理。特征二值化阈值的过程是将数值型数据转化为布尔型的二值数据,通过设置一个阈值,将数据转换为0/1。

数据集成是将不同数据源的数据整合到一个数据集中。本发明以用户的行为数据为主体进行整合,整合过程中以用户行为id(actionid)为标识符,将用户行为数据、用户属性数据、行为交互事物对象数据和行为上下文数据整合到一个数据集中。在整合后的数据集中,每一行记录数据代表用户的一次行为及其相关数据,其中包括了用户属性数据、行为交互的事物对象数据、行为数据、行为上下文数据。数据集成后的数据属性格式为:

c={actionid,userid,itemid,username,age,sex,

itemname,price,action,value,time,location...}

最后进行用户数据的筛选,目的是过滤与用户兴趣分析不相关的系统数据,减少后续数据分析开销。本发明在数据筛选阶段同时采用水平筛选和垂直筛选方法对用户数据进行过滤处理。

由于采用大数据采集技术,获得了大量用户数据。在这些数据中,既包括与用户兴趣的相关数据,也包括与用户兴趣不相关的数据。在进行数据分析前,需要进行一定的筛选,去除不在分析范围内的用户数据。

在用户数据的垂直筛选中,将过滤不在分析范围的用户数据,如用户登录、个人信息修改、用户管理等数据。同时,采集到的用户数据具有时效性,过早的用户数据所包含的兴趣信息已经过时,对用户动态兴趣模型的建立意义很小,因此也需要舍弃。在初始用户兴趣模型建立阶段,并不能确定用户数据的过期时间,通常初始模型创建需要使用足够多的用户数据(如半年内的全部用户数据)。在初始用户兴趣模型建立后,可根据用户的兴趣周期,通过垂直筛选过滤周期外用户数据,即使用周期内用户数据进行模型更新处理。

在用户数据的水平筛选中,将过滤一些与用户兴趣分析无关的数据属性,即从众多用户数据属性中选取出特征属性。为了从用户数据中选取特征属性集合,首先计算所有属性上数据的方差,计算公式如6-1所示:

其中xij指第i条数据上第j个属性的值,pj是第j个属性数据的均值,n是数据的总条数,m是属性的个数。

水平筛选需要设定一个阈值,记为k。阈值利用不同属性数据的方差获取,其计算公式如6-2所示:

其中r∈(0,1),在实际应用中一般取值0.9,0.9可以较好对属性值划分。所有方差小于阀值k的属性选取为特征属性,并放入集合t,便完成了用户数据属性的水平筛选,其中:

t={j|σj<k},,j=1,2,3...m公式6-3

在完成用户数据水平筛选后,获得特征属性集合t={t1,t2,...,tz},其中ti表示第i个特征属性,表示一共筛选出z个属性。

3、用户数据聚类分析

用户数据聚类分析目的是将具有相似兴趣特征的用户数据划分到不同的类中。聚类的依据是计算用户数据之间的相似度,然后将相似度高的用户数据分类为一个簇,所有用户数据被划分到若干簇中。本发明通过计算欧氏距离获取用户数据之间的相似度。例如,两条用户数据的特征向量表示为x={x1,x2,...,xz}和y={y1,y2...,yz},则x和y之间的欧式距离计算公式为:

本发明采用改良的k-means算法进行聚类分析计算,聚类的关键在于最终聚类簇数目k值的选择,这密切关系到最终聚类结果的好坏。本发明通过使用聚类代价函数来确定k值,其计算公式如下:

其中l为所有聚类簇中心间的距离和,ci和cj为任意两个聚类簇中心,k为聚类簇数目,d为每个聚类簇内的点到该簇中心点距离总数的和,x表示聚类簇c中的一个数据点,聚类代价函数f被定义为簇间距离l和簇内距离d的和。代价函数反映聚类结果质量,当代价函数取最小值时就获取到了最好的聚类结果。最优k值就是使f最小的k值。因此在计算中需要不断尝试,使得损失函数f满足用户数据聚类的要求,即在一定程度上最小化f。

通过聚类分析处理,将用户数据聚类划分到k个不同的聚类簇中。同一簇中的用户数据蕴含有相同的兴趣点。对聚类簇数据继续进行分析,就可抽取出该簇内用户数据蕴含的兴趣点。在个性化服务中,事物对象通常有类别名称,可以使用事物对象的类别名称表示用户的兴趣点。在一个聚类簇中,当某一类的事物对象出现比例最高时,就说明该类事物对象是聚类簇中用户的兴趣点。用户兴趣点集合p计算方法如下:

其中k为出现事物对象的类别数,num(pi)为pi类事物对象出现的总次数,n是这类用户数据总量,公式的含义是如果用户对某一类事物对象产生最高频次的交互,说明用户对这类事物对象最感兴趣。

在用户数据聚类阶段,为了提高系统计算效率,聚类过程基于hadoop平台的mapreduce分布式并行计算框架实现。改良的k-means算法在mapreduce框架的实现关键点如下:

1)map函数首先从用户数据中选出若干初始的聚类中心,然后对其余的所有用户数据计算到聚类中心的欧式距离,并将数据归类到与之欧式距离最短的聚类中心的类中。最后以聚类簇类中心id为key,该聚类簇包含所有用户数据为value输出到reduce函数中。

2)reduce函数中对map函数传递的数据进行簇间距离和簇内距离计算,利用公式6-5的代价函数对传递的数据进行评估,判断是否达到要求。如果达到要求,输出聚类结果到hdfs文件中,以供后续兴趣点抽取和兴趣模型建立使用。否则继续执行map过程。

4、用户动态兴趣模型建立

聚类分析获得了用户的兴趣点集合,但是对于具体兴趣点上用户的喜好程度还没有数值去度量。本发明在聚类簇的基础上利用机器学习的加权线性回归集成学习方法去获取用户在不同兴趣点上的兴趣值预测函数。其学习步骤如下:1)使用线性回归学习方法作为基学习器获取用户兴趣值的基本计算函数;2)使用集成学习在基学习器的基础上进一步提高用户兴趣值计算函数的精准性。

学习过程首先把聚类簇内的用户数据集分成训练集和测试集两部分,训练集数据用于学习器学习,测试集数据用于检验学习结果。本发明在训练集数据上使用线性回归学习以获取用户兴趣值的基本计算函数f(x):

f(x)=w1x1+w2x2+....+wzxz+d=wtx+b公式6-7

其中,x={x1,x2...xz}表示用户数据,xi是用户这次行为在第i个特征属性上的权值系数,w={w1,w2,...wn}表示不同特征属性对用户兴趣影响的权值向量,b为修正参数。其计算结果有很好的解释性。学习的目的是试图学到一个线性回归函数以尽可能准确的预测用户兴趣值,即用该线性回归函数计算用户在兴趣点上的兴趣值:

其中,y表示用户对这个兴趣点的兴趣值。因此,学习的关键在于使得f(x)与y之间的差别最小。这里引入均方误差,这是回归任务中的重要性能度量指标,意义在于对应了常用的欧几里得距离进行求解线性回归问题,公式如下:

求解w和b的过程中需要使用最小二乘“参数估计”,也就是计算中的损失函数,计算公式如下:

由此获得最优解的闭式解w*:

w*=(xtx)-1xty公式6-11

通过以上计算,得到一个w*={w1,w2,...wn,d},其中的wi代表第i个特征属性对该类用户兴趣的影响权值。

但是线性回归是一个弱学习器,其学习效果并不能达到高精准性的兴趣值预测函数。本发明使用集成学习加强线性回归学习结果。集成学习是通过将多个学习器进行结合,从而获得比单一学习器更优越的泛化性能。本发明集成学习的过程如下:对于包含m条用户数据的聚类簇,先随机取出一条数据放入采样集中,再把该数据放回初始数据集,使得下次该数据仍有可能被采集,这样经过n次采集,获取到一个具有n个数据的数据集。依据此方法获得t个包含n条数据的数据集,t为基学习器的个数,然后基于每个数据集训练一个基学习器,最终将这些学习器进行加权结合:

其中,f(x)代表了用户在该兴趣点的兴趣值计算函数,fi(x)为第i次基学习器的基本计算函数,这里使用简单平均法,即ui=1/t。

当完成用户兴趣预测函数的学习后,结合用户的当前数据,便可计算用户在具体兴趣点上的兴趣值。假设用户在兴趣点kx上的兴趣值计算函数为f(x),用户当前数据表示为x’={x1,x2,...,xz},则用户在该兴趣点上的兴趣值vx计算公式如下:

由此,完成在具体兴趣点上的兴趣值计算。最终将用户兴趣模型表示成一个n维的特征向量{(k1,v1),(k2,v2),(k3,v3),(...),(kn,vn)},该向量表示用户共有n个兴趣点,分别是k1、k2..kn,用户在kx兴趣点上的兴趣值为vx。其中每一维分量由兴趣点和兴趣值组成,兴趣值表示用户对兴趣点的感兴趣程度。例如,一个用户的兴趣特征向量为{(k1,v1),(k2,v2),(k3,v3),(k4,v4)},可采用图形表示如图8。

从模型图中,可以看到该用户的兴趣点组成,以及在每种兴趣点上的兴趣值。依此,完成用户的动态兴趣模型建立过程。

用户动态兴趣模型建立过程涉及大量计算。为了提高计算效率,对其中的用户兴趣值计算函数的机器学习过程采用mapreduce分布式并行计算框架实现。其中的关键点如下:

1)在map过程中,各个map节点对各自分配获得的聚类簇训练集数据执行并行计算。首先map函数利用公式6-11计算出最优解的闭解,得到特征属性对用户兴趣的影响权值,从而获取用户兴趣值基本计算函数f(x)。然后以聚类簇编号为key,兴趣值基本计算函数f(x)为value,通过mapreduce计算框架自带的排序整合复制过程传递到reduce函数。

2)在reduce函数中,对map过程获取的兴趣值基本计算函数f(x),验证其在对应聚类簇编号测试集上的表现,根据损失函数判断兴趣值基本计算函数f(x)是否达到要求。当学习结果到达要求时,将聚类簇编号和其对应的兴趣值计算函数f(x)输出到hadoop平台的hdfs文件存储中,以供后续兴趣值预测使用。否则,继续执行map过程。

5、用户动态兴趣模型的更新

用户动态兴趣模型的更新是保证用户兴趣时效性的关键。因此,用户兴趣模型需要定期进行更新处理。如果实时更新用户兴趣模型,系统开销过大,其实际意义不大。由于用户兴趣变化通常具有一定规律,新的兴趣出现不断增强,老的兴趣点逐渐衰减,其变化过程接近于正态分布。

用户兴趣模型更新周期需要结合用户对各类事物兴趣变化来确定。首先需要确定用户对单一类型事物对象的兴趣周期。筛选用户与某一类事物对象的交互数据,通过对用户大数据分析获得用户对该类事物对象的什么时间开始产生兴趣,到什么时间交互减少,这个时间周期t就是用户对该类事物对象的兴趣周期:

其中tjb表示用户j对该类事物对象产生交互的开始时间,tje表示用户j对该类事物对象兴趣消失的时间,n是用户总数。

在得到用户对每类事物的兴趣周期后,从中找出所有事物兴趣周期的最小值,来作为用户兴趣模型的更新周期,其计算公式如下:

t=minti(i=1,2,...,k)公式6-16

其中k为事物对象的种类,ti为i类事物对象的兴趣周期。在用户兴趣模型的更新周期确定后,定期对用户兴趣模型进行重新构建,完成对用户动态兴趣模型的更新。

综上所述:

1、本发明为了实现抽取用户多样性兴趣,利用大数据技术方法从多种数据源采集完整的用户数据集,同时使用大数据平台的分布式并行计算框架对用户数据进行聚类分析,更加全面地获取用户的兴趣点。

2、本发明在用户数据的预处理中,同时采用垂直筛选和水平筛选过滤用户兴趣无关数据。其中,垂直筛选过滤不在分析范围内的用户数据,水平筛选则过滤原始用户数据中的非特征属性数据。通过垂直筛选和水平筛选方法处理用户数据集后,可以减少参与分析计算的用户数据量和用户数据维度,从而降低用户数据分析的复杂性。

3、本发明通过对用户的聚类簇内数据利用机器学习的加权线性回归集成学习方法获取兴趣值预测函数,再结合当前用户数据,计算出用户对不同兴趣点具体的兴趣值。利用向量空间模型方法表示用户的各个兴趣点及其兴趣值,从而完成用户动态兴趣模型的建立。

4、本发明通过分析用户行为交互事物对象的时间跨度,获得用户对不同类事物对象的兴趣周期长度,从而进一步确定用户动态兴趣模型的更新周期。在每个更新周期内,使用该周期内用户数据重新分析抽取用户兴趣,并将分析结果更新用户兴趣模型,以确保用户动态兴趣模型的时效性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1