对象推荐方法和对象推荐设备与流程

文档序号:11582710阅读:174来源:国知局
对象推荐方法和对象推荐设备与流程

本申请总地涉及基于历史数据来向用户推荐对象的对象推荐方法和对象推荐设备。



背景技术:

在互连网上提供了针对用户的许多对象推荐服务,诸如书、音乐、电影和新闻推荐。推荐是基于收集的历史数据来学习用户的特征和对象的特征来进行的。通常,历史数据的集合可以表示成用户对象矩阵的形式(例如,图1)。该矩阵具有用户列表的一个维度和对象列表的一个维度,每个元素被与用户和对象相关地记录。所述记录的内容可以是用户对对象的评分(如0-5分),或者是数字化的访问记录,如,1:喜欢;0:不喜欢;或,1:购买过;0:未购买过,等等。用户特征可以从用户对象矩阵的与该用户对应的一行中学习到。类似地,对象特征可以从用户对象矩阵的与该对象对应的一列中学习到。

与推荐应用相关的典型问题是数据稀疏性。如上面解释那样,根据用户对象矩阵来学习用户特征和对象特征。在实际推荐时,用户和对象的数量变得越来越大。然而,非常难以收集该矩阵的每个元素的历史数据。因此,矩阵中越来越多的元素变为“未知”,如图1中所示,这使得所学习的用户特征和对象特征变得不稳定且不可靠。

尤其是在拍摄景点推荐应用中,历史数据(如用户对景点的访问记录等)与用户和景点的位置高度相关,这经常导致更加严重的数据稀疏性。

在美国专利公开us2010/0030764a1中公开了“利用通过邻近和潜在因素模型的组合显式和隐式反馈的联合过滤的推荐系统(recommendersystemutilizingcollaborativefilteringcombing explicitandimplicitfeedbackwithbothneighborhoodandlatentfactormodels)”。该文献包括如下推荐方法:把表示历史数据的用户对象矩阵分解为用户因素矩阵和对象因素矩阵。在用户因素矩阵中,每个用户分别由一行因素矢量表示。在对象因素矩阵中,每个对象分别由一列因素矢量表示。通过对应用户因素矢量和对象因素矢量的点积来计算针对特定用户的对象的推荐分数。在计算出针对特定用户的每个对象的推荐分数之后,根据这些分数的排列来确定要推荐的至少一个对象。

该文献可以解决对象推荐应用中的数据稀疏性。然而,在该文献中,所述用户因素矩阵和对象因素矩阵是根据作为训练数据的历史数据离线学习的。这意味着,一旦更新了用户对象矩阵,用户因素矩阵和对象因素矩阵中至少一个全部需要被重新训练。例如,如果我们新知道用户访问了某个对象,则我们需要重新训练整个用户因素矩阵或整个对象因素矩阵。重新训练过程是高度耗时的操作,因此现有技术文献中提出的方法对于频繁更新用户对象矩阵的推荐应用是不可行的。而且,推荐结果是不可解释的,难以说明该方法中的用户因素矩阵和对象因素矩阵的每个元素的含义。

例如,在拍摄景点推荐应用中,拍摄景点推荐与用户和景点的位置高度相关,这常导致数据稀疏性并且在实际应用中用户景点矩阵是频繁更新的。使用该文献的推荐方法就需要频繁的重新训练并因此与这样的动态数据源无法兼容。最后,推荐结果也是难以解释的,这意味着难以说明景点被推荐给用户的原因并进行分析和改进。



技术实现要素:

本申请的目的之一在历史数据更新时避免重新训练整个用户因素矩阵或整个对象因素矩阵,从而既准确又高效地进行对象推荐。此外,期望对象推荐结果是可以解释的。

本申请的一方面涉及一种对象推荐方法,该对象推荐方法包括:特征矢量提取步骤,根据用户的和对象的多个历史数据来提取至少一 个表示对应用户特征的用户特征矢量和至少一个表示对应对象特征的对象特征矢量,在历史数据更新的情况下所述用户特征矢量中的每一个都彼此独立地更新并且所述对象特征矢量中的每一个都彼此独立地更新;权重矩阵生成步骤,使用历史数据来生成表示用户特征相对于对象特征的映射的权重矩阵;以及,推荐分数确定步骤,基于用户特征矢量、对象特征矢量和权重矩阵来确定用于被选定用户的多个候选对象的分数。

本申请的另一方面涉及一种对象推荐设备,包括:特征矢量提取装置,被配置为根据用户的和对象的多个历史数据来提取至少一个表示对应用户特征的用户特征矢量和至少一个表示对应对象特征的对象特征矢量,在历史数据更新的情况下所述用户特征矢量中的每一个都彼此独立地更新并且所述对象特征矢量中的每一个都彼此独立地更新;权重矩阵生成装置,被配置为使用历史数据来生成表示用户特征相对于对象特征的映射的权重矩阵;以及,推荐分数确定装置,被配置为基于用户特征矢量、对象特征矢量和权重矩阵来确定用于被选定用户的多个候选对象的分数。

因此,根据本申请的各方面,能够使得在更新历史数据时,避免重新训练整个用户因素矩阵或整个对象因素矩阵,从而既准确又高效地进行对象推荐。此外,对象推荐结果也是可以解释的。

附图说明

下面结合具体的实施例,并参照附图,对本申请的上述和其它目的和优点做进一步的描述。在附图中,相同的或对应的技术特征或部件将采用相同或对应的附图标记来表示。

图1是示出作为历史数据的用户对象矩阵;

图2示出根据本申请的一个实施例的景点推荐方法的流程图;

图3示出根据本申请的实施例的景点推荐方法中的特征矢量提取过程的流程图;

图4a和图4b分别示出所提取的用户特征矢量和景点特征矢量 的示例;

图5a和5b分别示出根据本申请的不同实施例生成的权重矩阵;

图6a和6b分别示出根据本申请的不同实施例的确定景点推荐分数的示意图;

图7是示出根据本申请的实施例的景点推荐设备的示例性配置的框图;

图8示出根据本申请的实施例的用于实施景点推荐方法的推荐系统的示意图;以及

图9示出能够实施本申请的实施例的计算机系统的硬件配置的框图。

具体实施方式

在下文中将结合附图对本申请的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实施例的所有特征。然而,应该了解,在对实施例进行实施的过程中必须做出很多特定于实施方式的设置,以便实现开发人员的具体目标,例如,符合与设备及业务相关的那些限制条件,并且这些限制条件可能会随着实施方式的不同而有所改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于本公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。

在此,还应当注意,为了避免因不必要的细节而模糊了本申请,在附图中仅仅示出了与至少根据本申请的方案密切相关的处理步骤和/或设备结构,而省略了与本申请关系不大的其他细节。

以下将以拍摄景点推荐应用为例进行说明,这是因为如前文所述用户景点矩阵频繁更新。但应当理解该示例并非限定,本申请也可适用于其它对象推荐应用中,例如书籍推荐应用、音乐推荐应用、电影推荐应用等,这将在后面具体说明。接下来,按照以下顺序进行描述。

1.景点推荐方法的流程图

2.特征矢量提取过程

2-1用户特征矢量提取过程

2-2景点特征矢量提取过程

3.权重矩阵生成过程

4.推荐分数确定过程

5.景点推荐设备的框图

6.景点推荐方法和设备的优点

7.实现对象推荐方法的推荐系统

8.其它实施例

9.用以实施本申请的方法和设备的计算机设备

1.景点推荐方法的流程图

首先,参照图2描述根据本申请的一个实施例的景点推荐方法的流程图。在该方法中,把作为历史数据的用户景点矩阵分解为以下三个矩阵:用户特征矩阵,权重矩阵,以及景点特征矩阵。然后,基于这三个矩阵来计算景点的推荐分数,也就是与用户景点矩阵的未知元素相关的分数。

步骤s101是用户特征矢量提取步骤,其中根据用户的和景点的多个历史数据来提取至少一个表示对应用户特征的用户特征矢量,在历史数据更新的情况下所述用户特征矢量中的每一个都彼此独立地更新。步骤s101是由稍后描述的用户推荐请求触发的。

用户的历史数据和景点的历史数据的示例形式可以是如图1所示那样的用户景点矩阵,其中记录了用户对景点的访问情况,各行可视为表示用户特征的历史数据并且各列可视为表示景点特征的历史数据。历史数据不限于该示例形式,例如另一种形式可以是不同用户拍摄的不同景点的照片集合,又或者是不同用户在互联网上对不同景点的评价分数等等。

因此,用户的历史数据可以来自例如包括以下项中的至少一个:

a)用户访问的景点;

b)用户评分的景点,以及评价分数;

c)用户拍摄的景点照片;

d)用户拍摄的景点照片,照片具有照片标签;以及

e)用户评分的景点照片,以及评价分数。

另一方面,景点的历史数据可以来自例如包括以下项中的至少一个:

a)访问景点的用户;

b)对景点评分的用户,以及评价分数;

c)拍摄景点时拍摄的照片;以及

d)拍摄景点时拍摄的照片,照片具有照片标签。

照片标签例如是照片拍摄的时间、地点以及拍摄者姓名等。

在一个示例中,拍摄景点的所述历史数据能够被通过用照片文件中存储的能够是gps信息的位置信息对收集的照片进行聚类来获得。

在本文中,用户特征使各用户彼此区分,可以使用对应用户的历史数据基于各种特征提取方法来得到表示用户特征的用户特征矢量。如前面所述,在景点推荐应用中,历史数据例如用户景点矩阵频繁更新。本申请使得在此情况下所提取的用户特征矢量中的每一个都能够彼此独立地更新,这避免了更新整个用户因素矩阵并因此将大大提高景点推荐的效率。特征矢量提取的过程将在后面详细描述。

步骤s102是景点特征矢量提取步骤,其中根据用户和景点的多个历史数据来提取至少一个表示对应景点特征的景点特征矢量,在历史数据更新的情况下所述景点特征矢量中的每一个都彼此独立地更新。

该步骤与步骤s101类似,例如,可以使用对应景点的历史数据基于各种特征提取方法来得到表示景点特征的景点特征矢量。类似地,本申请也使得所提取的景点特征矢量中的每一个都能够彼此独立地更新。这避免了更新整个景点因素矩阵并因此将大大提高景点推荐的效率。

步骤s103是权重矩阵生成步骤,其中使用用户历史数据和景点的历史数据来生成表示用户特征矢量相对于景点特征矢量的映射的权重矩阵。

如前所述,可以分别基于任何来源的用户历史数据或景点历史数据使用适当的特征提取方法来提取用户特征矢量或景点特征矢量。为了使得能够知道用户特征矢量和景点特征矢量之间的关系以便更加准确地确定景点对于用户的推荐分数,我们需要生成表示用户特征相对于景点特征的映射的权重矩阵。例如,以行表示用户特征并且以列表示景点特征,则该权重矩阵的元素(权重)可以看作是具有该特征的用户喜欢景点中的该特征的程度。因此所提出的方法的推荐结果是可以解释景点被推荐给用户的原因。生成权重矩阵的过程将在后面详细描述。

步骤s104是推荐分数确定步骤,其中基于用户特征矢量、景点特征矢量和权重矩阵来确定用于选定用户的多个候选景点的分数。

在提取了用户特征矢量和景点特征矢量并生成了权重矩阵之后,就可以计算出景点对所选用户的推荐分数,这基本上确定了用户景点矩阵中的未知项的内容。因为排列靠前的景点通常更好匹配用户,所以应选择排列靠前的景点来进行推荐。推荐景点的数量可以根据多重因素来确定,例如推荐分数的总阈值、个人推荐分数、或人为定义的推荐数量。

因此,根据本申请的实施例的景点推荐方法能够避免在历史数据更新时重新训练整个用户因素矩阵或整个景点因素矩阵,从而提高了景点推荐的效率。此外,景点推荐结果也是可以解释的。通过阅读下面的详细描述可以更好地理解这些优点。

2.特征矢量提取过程

图3示出根据本申请的实施例的特征矢量提取过程的流程图。在图3中,步骤s201是信息接收步骤,其中接收来自用户的推荐请求和具体信息。步骤s202是数据获取步骤,其中获取最新的用户和景点历史数据。步骤s203是特征定义步骤,其中,预先定义要根据历史数据提取的特征。步骤s204是特征矢量更新步骤,其中基于历史数据来提取并更新用户特征矢量或景点特征矢量。这将在后面进一步具体说明。

2-1用户特征矢量提取过程

接下来参照图3的流程图来具体描述提取用户特征矢量的过程。

首先,接收从用户发送的拍摄景点推荐请求。

该请求例如来自用户设备的通信模块。该请求优选地包括至少两类信息:用户id,在存储用户特征矢量的数据库中是通用索引;和用户指定的位置,在该位置处用户正寻求拍摄景点。

用户指定位置的方式可以是显式的或隐式的。在显式方式中,用户可以通过,例如输入位置名称、手动在交互地图上绘制区域、或向其设备发送语音命令等来指定位置。在隐式方式中,位置可以由用户设备自动确定。例如,用户的当前位置可以由用户设备中的gps模块提供。此外,位置半径可以指示用户期望在其中进行推荐景点的区域。位置半径可由用户指定,或者根据用户的上下文信息而被自动确定。

接下来,获取用户和景点的最新历史数据。这些历史数据可以来自互联网上关于用户访问景点的记录的信息,或者用户提供的各种信息源,例如一组照片。历史数据的各种来源如前文所述,此处不再重复。

然后,预先定义要根据历史数据提取的用户特征。例如在历史数据是一组景点照片或者是用户访问过的景点或评过分的景点的记录的情况下,用户特征可以是这些照片中的场景信息,诸如“街道”、“动物”、“植物”、“大海”等。由此用户特征矢量可以是包括以下项中的至少一项:

a)属于预定场景的由相应用户拍摄的照片的数量;

b)属于预定场景的由相应用户拍摄的照片的百分比;

c)属于预定场景的由相应用户评分的照片的数量;

d)属于预定场景的由相应用户评分的照片的百分比;

e)属于预定场景的由相应用户访问的景点的数量;

f)属于预定场景的由相应用户访问的景点的百分比;

g)属于预定场景的由相应用户评分的景点的数量;以及

h)属于预定场景的由相应用户评分的景点的百分比。

或者,用户特征可以是由相应用户访问景点的统计信息,所述统计信息能够是用户访问景点的类型、访问频率和时长并且用户特征矢量由其相应的统计值构成。

最后,基于用户信息、历史数据和所定义的用户特征来提取并更新用户特征矢量。

在一个示例中,用户特征矢量在此是场景标签直方图。提取方法如下:采用提出推荐请求的用户上传的n个照片(n>0);对n个照片中每一个照片进行迭代,从而基于对应的图像内容使用例如对象识别方法来识别照片场景信息,每个照片的所识别的照片场景信息是预定义场景标签集合(特征)中的一个或多个场景标签;全部n个照片的所识别的场景标签信息的总和被计算以形成计算矢量;然后用n对计算矢量进行归一化成为直方图,直方图的每个元素是对应场景标签的百分比。然后场景标签直方图被存储作为用户数据库中的用户特征矢量,如图4a所示。每当用户上传一组新照片时,虽然用户历史数据发生变化,但可以独立地仅更新对应用户的场景标签直方图而不必影响其它用户的特征矢量。

在其它示例中,作为对用户上传的一组照片的替代,历史数据可以来自由相应用户评分的景点。在把场景信息定义为用户特征的情况下,用户特征矢量可以被与前述示例类似地提取。

在另一个示例中,可以基于历史数据统计得出该用户访问的各景点的类型、访问频率和时长等作为该用户的用户特征矢量。

2-2景点特征矢量提取过程

该过程与用户特征矢量提取过程类似。下面仅描述不同之处。

首先,如果用户信息中指定了位置和半径,则根据位置和半径来选取候选景点。在此如果没有指定位置和半径,则可以忽略步骤s201。

因此,给定具有已知纬度和经度的用户指定位置,用户指定位置和每个景点之间的距离可以被计算出来。在计算并比较从用户指定位 置到每个景点的距离之后,仅位于半径之内的景点被考虑为候选景点。

然后,在历史数据是一组景点照片或者是用户访问过的景点或评过分的景点的记录的情况下,景点特征也可以是这些照片中的场景信息,诸如“街道”、“动物”、“植物”、“大海”等。但景点特征矢量与用户特征矢量有所不同并且包括以下项中的至少一项:

a)对相应景点拍摄的属于预定场景的照片的数量;

b)对相应景点拍摄的属于预定场景的照片的百分比;

c)对相应景点拍摄的具有指定平均评价分数的照片的数量;以及

d)对相应景点拍摄的具有指定平均评价分数的照片的百分比。

或者,景点特征可以是访问相应景点的各用户的统计信息,所述统计信息能够是访问用户的年龄、性别和教育程度并且景点特征矢量由其相应的统计值构成。

最后,基于用户信息、历史数据和所定义的景点特征来提取并更新景点特征矢量。

在一个示例中,景点特征矢量是场景标签直方图。提取方法如下:采用所针对的候选景点的范围内的m个照片(m>0);对m个照片中每一个照片进行迭代,从而基于对应的图像内容来识别照片场景信息。每个照片的所识别的照片场景信息是预定义场景标签集合(特征)中的一个或多个场景标签;计算m个照片的所识别的场景标签信息的总和以形成计算矢量;然后用m对计算矢量进行归一化成为直方图,直方图的每个元素是对应场景标签的百分比。然后场景标签直方图被存储作为景点数据库中的景点特征矢量,如图4b所示。当该景点的范围内上传一组新照片时,尽管景点历史数据发生变化,但可以独立地更新对应景点的场景标签直方图而不必影响其它景点的特征矢量。

在其它示例中,作为对候选景点的范围内的一组照片的替代,历史数据可以是对景点评分的用户以及评价分数。在把评价分数定义为景点特征的情况下,景点特征矢量可以被与前述示例类似地提取。

在另一个示例中,可以基于历史数据统计得出访问该景点的各用户的年龄、性别和教育程度等作为该候选景点的景点特征矢量。

3.权重矩阵生成过程

权重矩阵例如是方阵,其中每个元素是实数。权重矩阵的元素是用户特征转移到景点特征的权重。大致而言,权重越大,具有某类特征的用户与具有某类特征的景点的匹配程度越大。

在一个示例中,权重矩阵是被使用历史数据离线训练而生成的。若干算法可以应用于训练过程中,例如随机梯度下降sgd算法,在该算法中:

1)输入学习速率因子γ和正规化因子λ;

2)随机初始化权重矩阵s;

3)定义损失函数:

其中,

ru,i是用户u对于景点i的真值;

是用户u对于景点i的推荐分数

pu是用户u的特征矢量;

qi是景点i的特征矢量;

4)对于用户u和景点i,计算梯度:

5)更新对应的s:

6)对于训练数据内的每个用户u和每个景点i重复步骤4)和5),直到收敛;

7)训练完成并输出学习的权重矩阵s。

此时得到的权重矩阵s能够与用户特征矢量和景点特征矢量一起通过乘法运算来计算出至少对应于用户景点矩阵中的未知项的数据。图5a示出根据该示例所生成的权重矩阵。该矩阵中每个元素表示具 有某类特征的用户喜欢具有某类特征的景点的程度。作为历史数据的训练数据越充足,则生成的权重矩阵将在用户的和对象历史数据更新时保持更加稳定。因此这将成为适应动态数据源的重要因素。

在另一个示例中,作为离线训练方法的替代,还可以基于历史数据使用统计方法来生成权重矩阵。该矩阵中的每个元素表示用户的某类特征与景点的某类特征的联合概率,矩阵中的各联合概率之和应等于1。图5b示出根据该示例所生成的权重矩阵,其中例如0.11表示具有“(喜欢拍摄)植物”特征的用户拍摄过含有“街道”特征的景点的概率。在统计时,在给定各用户拍摄的照片集合的情况下,计算出各用户特征和各景点特征的联合概率分布。统计方法并不限于此处列举的联合概率,也可以根据需要使用其它方式,如条件概率等。

4.推荐分数确定过程

在提取了用户特征矢量、景点特征矢量并生成了权重矩阵之后,就可以确定针对该用户的候选景点的推荐分数,并然后根据需要推荐一个或更多个景点。

在一个示例中,用于提取用户特征矢量和景点特征矢量的历史数据的来源与用于生成权重矩阵所使用的历史数据的来源相同。具体而言,用户提供的照片集被作为可以从中得到如图1所示那样的用户景点矩阵的历史数据。用户特征矢量和景点特征矢量是基于场景信息从照片集提取的,如前面所述。此外,权重矩阵是基于该用户景点矩阵、用户特征矢量以及景点特征矢量来离线训练得到的,如前面所述。

因此,用如下公式针对同一用户u分别计算每个候选景点的推荐分数:

即基于用户u的特征矢量pu、权重矩阵s、和景点i的特征矢量qi来计算景点i对用户u的推荐分数如图6a所示。

推荐分数指示对应用户的特征矢量和景点的特征矢量的匹配程度。对于特定用户,如果景点具有比另一景点大的推荐分数,则该景 点具有将被用户接受的更大可能性并因此适于被推荐。在该示例中,因为历史数据的来源相同,所以数据的相关性和推荐结果的稳定性更好。

在一个变型中,上述的权重矩阵可以不是离线训练生成的。作为替代,其可以是基于作为历史数据的照片集合使用统计方法来生成的,如前面所描述的那样。使用如此统计生成的权重矩阵如图6b所示那样类似地确定推荐分数

在另一个示例中,与前一示例不同的是,用于提取用户特征矢量和景点特征矢量的历史数据的来源与用于生成权重矩阵所使用的历史数据的来源不同。具体而言,用户访问的景点这类数据被作为历史数据,从这样的历史数据可以直接得到如图1所示那样的用户景点矩阵。另一方面,用户特征矢量和景点特征矢量是从用户提供的照片集基于场景信息提取的,如前面所述。此外,权重矩阵是基于该用户景点矩阵、用户特征矢量以及景点特征矢量来离线训练得到的,如前面所述。类似地,能够如图6a所示那样确定推荐分数

在该示例的与前述变型类似的变型中,权重矩阵可以不是由离线训练生成的。作为替代,所述权重矩阵可以是基于作为历史数据的照片集合使用统计方法来生成的,其中每个元素表示用户的某类特征与景点的某类特征的联合概率。类似地,能够如图6b所示那样确定推荐分数

因此,根据本申请的实施例的景点推荐方法不需要在历史数据更新时重新训练整个用户因素矩阵或整个景点因素矩阵。而且,由于权重矩阵中的元素具有具体的含义,因此便于解释推荐结果。

5.景点推荐设备的框图

接下来参照图7描述根据本申请的一个实施例的景点推荐设备700的示例性配置的框图。该景点推荐设备700包括:特征矢量提取装置701,被配置为根据用户的和景点的多个历史数据来提取至少一个表示对应用户特征的用户特征矢量和至少一个表示对应景点特征的 景点特征矢量,在历史数据更新的情况下所述用户特征矢量中的每一个都彼此独立地更新并且所述景点特征矢量中的每一个都彼此独立地更新;权重矩阵生成装置702,被配置为使用历史数据来生成表示用户特征相对于景点特征的映射的权重矩阵;以及推荐分数确定装置703,被配置为基于用户特征矢量、景点特征矢量和权重矩阵来确定用于所选用户的多个候选景点的分数。

以上装置701-703可以被配置为分别执行前述的景点推荐方法的步骤s101-s104。

优选地,特征矢量提取装置701可以还包括:信息接收装置704,被配置为接收来自用户的推荐请求和具体信息;数据获取装置705,被配置为获取最新的用户历史数据和景点历史数据;特征定义装置706,被配置为预先定义要根据历史数据提取的特征;以及矢量更新装置707,被配置为基于历史数据来提取并更新特征矢量。

以上描述的装置是用于实施本申请中描述的景点推荐方法的示例性和/或优选的装置。这些装置可以是硬件单元(诸如中央处理器(图9中的cpu901)、场可编程门阵列、数字信号处理器、专用集成电路或计算机等)和/或软件装置(诸如计算机可读程序)。以上并未详尽地描述用于实施各个步骤的装置。然而,只要有执行某个处理的步骤,就可以有用于实施同一处理的对应的装置(由硬件和/或软件实施)。通过所描述的步骤以及与这些步骤对应的装置的所有组合限定的技术方案都被包括在本申请的公开内容中,只要它们构成的这些技术方案是完整并且可应用的。

此外,由各种装置构成的上述设备可以作为功能模块被并入到诸如计算机之类的硬件装置中。除了这些功能模块之外,计算机当然可以具有其他硬件或者软件部件。

6.景点推荐方法和设备的优点

根据本申请的实施例的景点推荐方法和设备把用户景点矩阵分解为以下三个矩阵:由用户特征矢量构成的用户特征矩阵,权重矩阵以 及由景点特征矢量构成的景点特征矩阵。然后,利用相应的用户特征矢量、景点特征矢量和权重矩阵来计算针对相应用户的景点的推荐分数。

首先,用户特征和景点特征是利用例如照片场景直方图来描述的。因为该照片景点直方图是一类低维度特征,所以可以减少位置相关的推荐中的数据稀疏性问题。其次,用户特征矩阵和景点特征矩阵分别由用户照片场景直方图和景点照片场景直方图形成,是独立于用户景点矩阵的。权重矩阵是根据历史数据离线训练或统计学习的,作为历史数据的训练数据越充足,则学到的权重矩阵将在用户和景点历史数据更新时保持更加稳定。当更新与用户或景点有关的历史数据时,仅更新对应的用户特征矢量或景点特征矢量,其它用户特征矢量或景点特征矢量将不变化。依赖于这样的局部重新训练机制,所提出的方法实现了与动态数据源的兼容性。最后,因为权重矩阵能被考虑为映射矩阵,其中的每个元素是用户的特定特征与景点的特定特征的匹配程度,在所以所提出的方法中可以解释景点被推荐给用户的原因。

7.实现景点推荐方法的推荐系统

图8示出根据本申请的实施例的用于实施景点推荐方法的推荐系统的示意图。推荐系统包括用户数据库、景点数据库、图像分析模块、离线训练模块、用户提取器、景点过滤器以及推荐引擎。用户数据库和景点数据库分别存储用户特征矢量(如图4a所示)和景点特征矢量(如图4b所示),这些矢量是由图像分析模块(特征矢量提取装置)使用用户上传的图像数据生成的。根据以上图像数据,离线训练模块(权重矩阵生成装置)学习由推荐引擎使用的权重矩阵(如图5a所示)。当推荐系统从特定用户接收用于拍摄景点推荐的请求时,用户提取器被调用以从用户数据库中选择对应的用户特征矢量,并且景点过滤器被调用以根据景点的位置从景点数据库中选择多个景点特征矢量并形成候选景点集合。推荐引擎(推荐分数确定装置)使用用户特征矢量(如pu)、景点特征矢量(如qi)和权重矩阵(如s)来计 算各个候选景点的推荐分数(如)。较高的推荐分数是指用户和对应景点之间的较好匹配。候选景点被根据推荐分数在列表中排序,并且排名靠前的几个候选景点被输出作为推荐结果。最后,推荐结果被返回给用户设备并向用户呈现。

8.其它实施例

尽管前面的实施例集中在景点推荐应用,但本申请显然不限于这种应用,而是可以广泛地用于例如网络上常见的各种对象推荐领域。

例如,在书籍推荐领域,与景点推荐领域类似,通过把用户访问的书籍的类型(或者对书籍的评分)作为特征来提取用户特征矢量并且把访问书籍的用户的教育程度作为特征来提取书籍特征矢量,并然后使用用户特征矢量和书籍特征矢量以及用户书籍矩阵来离线训练权重矩阵,可以确定某些书籍对于所选用户的推荐分数。

又例如,在视频推荐领域,与景点推荐领域类似,通过把用户访问的视频的类型和观看时长等(或者对视频的评分)作为特征来提取用户特征矢量并且把访问视频的用户的年龄、性别和教育程度作为特征来提取视频特征矢量,并然后使用用户特征矢量和视频特征矢量以及用户视频矩阵来离线训练权重矩阵,就可以确定某些视频对于所选用户的推荐分数。

9.用以实施本申请的方法和设备的计算机设备

图9是示出能够实施本申请的实施例的计算机系统的硬件配置的框图。

如图9中所示,计算机系统包括经由系统总线904连接的处理单元901、只读存储器902、随机存取存储器903和输入/输出接口905,以及经由输入/输出接口905连接的输入单元906、输出单元907、存储单元908、通信单元909和驱动器910。程序可以预先记录在作为计算机中内置的记录介质的rom(只读存储器)902或者存储单元908中。或者,程序可以存储(记录)在可移除介质911中。在本文中, 可移除介质911包括例如软盘、cd-rom(压缩光盘只读存储器)、mo(磁光)盘、dvd(数字多功能盘)、磁盘、半导体存储器等。

输入单元906用于输入用户请求,被配置有键盘、鼠标、触摸屏、麦克风等。另外,输出单元907配置有lcd(液晶显示器)、扬声器等。

通信单元909可以例如是无线通信单元,包括至少一个收发器模块和定位模块。收发器模块用于向远程服务器发送推荐请求并从远程服务器接收对象推荐结果。定位模块例如是gps模块912,用于获取用户的位置。

存储单元908或rom902存储基本用户信息、历史数据、兴趣等等。ram903可以存储临时状态信息和中间计算结果。

此外,除了通过驱动器910从以上提到的可移除介质911把程序安装到计算机的配置之外,可以通过通信网络或广播网络把程序下载到计算机以安装在内置存储单元908中。换言之,可以例如以无线方式通过用于数字卫星广播的卫星从下载点向计算机或者以有线方式通过诸如lan(局域网)或互联网等的网络向计算机传输程序。

如果通过对输入单元906的用户操控等、经由输入/输出接口905向计算机系统输入了命令,则cpu901根据命令来执行rom902中存储的程序。或者,cpu901把存储单元908中存储的程序加载在ram903上以执行程序。

因此,cpu901执行根据以上提到的流程图的某些处理或者通过以上提到的框图的配置执行的处理。接下来,如果有必要,则cpu901允许处理的结果例如通过输入/输出接口905从输出单元907输出、经由通信单元909传输、在存储单元908中记录等。

另外,程序可以由一个计算机(处理器)执行。另外,程序可以由多个计算机以分布式的方式处理。另外,可以把程序传输给远程计算机执行。

图9所示的计算机系统仅仅是说明性的并且决不意图对本申请、其应用或用途进行任何限制。图9所示的计算机系统可以被实施于任 何实施例,可作为独立计算机,或者也可作为设备中的处理系统,可以根据需要从计算机系统移除一个或更多个组件,也可以向其添加一个或更多个组件作为附加的组件。

可以通过许多方式来实施本申请的方法和系统。例如,可以通过软件、硬件、固件、或其任何组合来实施本申请的方法和系统。上述的方法步骤的次序仅是说明性的,本申请的方法步骤不限于以上具体描述的次序,除非以其他方式明确说明。此外,在一些实施例中,本申请还可以被实施为记录在记录介质中的程序,其包括用于实现根据本申请的方法的机器可读指令。因而,本申请还覆盖存储用于实现根据本申请的方法的程序的记录介质。

虽然已通过示例详细描述了本申请的一些具体实施方式,但是本领域技术人员应当理解,上述示例仅是说明性的而不限制本申请的范围。本领域技术人员应该理解,上述实施例可以被修改而不脱离本申请的范围和实质。本申请的范围是通过所附的权利要求限定的。

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