用于内容推荐的设备、方法转让专利

申请号 : CN200910173602.6

文献号 : CN101673286B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 上前田直树增田弘之

申请人 : 索尼株式会社

摘要 :

本发明提供了一种用于内容推荐的设备、方法和计算机程序以及记录介质。其中,基本/反转分量提取器计算从存储在用户偏好数据库上的信息获得的用户偏好信息的向量的每个分量的占有率,并且根据所计算出的基本分量的占有率而从用户偏好信息提取基本分量。基本/反转分量提取器从由存储在项目元数据库上的信息获得的项目偏好信息中提取类似的基本分量。推荐引擎计算在用户偏好信息的基本向量与项目偏好信息的基本向量之间的相似度,并且以相似度从高到低的次序识别预定数目的项目作为候选项目。推荐引擎还计算在用户偏好信息的反转向量与项目偏好信息的反转向量之间的相似度,并且识别具有低相似度的候选项目。

权利要求 :

1.一种推荐设备,包括:

用户基本分量提取装置,用于从形成包含多个分量的向量的用户偏好信息的分量当中提取根据预定标准选择的用户基本分量,所述用户偏好信息表示用户的偏好;

项目基本分量提取装置,用于从形成为向量的项目偏好信息的分量当中提取与所述用户基本分量对应的分量作为项目基本分量,由所述项目偏好信息的分量形成的所述向量包含与所述用户偏好信息的分量数相同数目的分量,所述项目偏好信息的分量基于用作推荐目标的每个项目的元数据信息而生成;

基本相似度计算装置,用于计算在包含所述用户基本分量的用户基本向量与包含用作推荐目标的所述项目的项目基本分量的项目基本向量之间的基本相似度;

候选项目识别装置,用于基于所述基本相似度而识别要向所述用户推荐的候选项目;

用户反转分量提取装置,用于从所述用户偏好信息的分量当中提取除所述用户基本分量之外的分量作为用户反转分量;

项目反转分量提取装置,用于从用于所述候选项目的所述项目偏好信息的分量当中提取与所述用户反转分量对应的分量作为项目反转分量;

反转相似度计算装置,用于计算在包含所述用户反转分量的用户反转向量与包含用作推荐目标的所述项目的项目反转分量的项目反转向量之间的反转相似度;以及推荐项目识别装置,用于基于所述反转相似度而从所述候选项目当中识别要向所述用户推荐的项目。

2.根据权利要求1所述的推荐设备,其中根据所述用户偏好信息的所述用户基本分量的值对所述用户偏好信息分量的值之和的占有率来选择所述用户基本分量。

3.根据权利要求2所述的推荐设备,其中根据所述占有率和所述用户偏好信息的成熟度来选择所述用户基本分量。

4.根据权利要求3所述的推荐设备,其中基于与所述用户偏好信息的分量有关的信息而计算所述用户偏好信息的成熟度,所述用户偏好信息通过预定操作来更新,所述预定操作被标识为与所述项目有关且由所述用户执行的操作。

5.一种推荐方法,包括以下步骤:

从形成包含多个分量的向量的用户偏好信息的分量当中提取根据预定标准选择的用户基本分量,所述用户偏好信息表示用户的偏好;

从形成为向量的项目偏好信息的分量当中提取与所述用户基本分量对应的分量作为项目基本分量,由所述项目偏好信息的分量形成的所述向量包含与所述用户偏好信息的分量数相同数目的分量,所述项目偏好信息的分量基于用作推荐目标的每个项目的元数据信息而生成;

计算在包含所述用户基本分量的用户基本向量与包含用作推荐目标的所述项目的项目基本分量的项目基本向量之间的基本相似度;

基于所述基本相似度而识别要向所述用户推荐的候选项目;

从所述用户偏好信息的分量当中提取除所述用户基本分量之外的分量作为用户反转分量;

从用于所述候选项目的所述项目偏好信息的分量当中提取与所述用户反转分量对应的分量作为项目反转分量;

计算在包含所述用户反转分量的用户反转向量与包含用作推荐目标的所述项目的项目反转分量的项目反转向量之间的反转相似度;以及基于所述反转相似度而从所述候选项目当中识别要向所述用户推荐的项目。

说明书 :

用于内容推荐的设备、方法

技术领域

[0001] 本发明涉及一种用于推荐内容的设备、方法、计算机程序和记录介质,特别涉及一种用于向用户推荐不仅满足用户偏好而且还为用户提供惊奇的内容的设备、方法、计算机程序和记录介质。

背景技术

[0002] 开发了向用户推荐诸如所录制广播节目的内容的技术。基于通过在以下向量之间的匹配处理计算出的相似度而执行内容推荐:包含作为分量的属性的向量,所述属性包含在内容的元数据中;以及被形成为向量的用户偏好信息,所述向量包含与元数据向量相同数目的分量。
[0003] 然而,推荐与用户偏好信息具有高相似度的内容不总是令用户满意。例如,向经常观看戏剧的用户推荐戏剧风格的内容似乎是合理的。另一方面,同一用户可能对所推荐的新闻和杂耍表演感到满意。如果总是推荐相同类型的内容,用户可能会厌烦,并且如果推荐令用户稍感惊奇的内容则用户可能感觉新鲜。
[0004] 日本未审查专利申请公布No.2007-202181公开了一种以更详细地反映用户偏好的方式推荐带惊奇的内容的技术。
[0005] 例如,基于通过对经加权的用户偏好信息的特定属性的匹配处理计算出的相似度而执行推荐。使用该配置,可推荐具有低相似度的未加权属性的内容。可以推荐可能令用户稍感惊奇的内容。

发明内容

[0006] 如果内容与用户通常查看的项目在一个或其他方面稍微不同,同时在另一方面用户依然基本对内容感觉熟悉,则用户或许会享受来自内容的惊奇。例如,如果推荐与用户偏好不匹配的内容,用户自然对内容不满意。
[0007] 根据相关领域的一种技术,通过改变属性的权重来增大属性对匹配结果 的贡献。这种技术不一定向用户推荐用户感觉熟悉的内容。
[0008] 改变每个属性的权重的技术具有下面的问题。可以将用户偏好信息的特定属性的权重设置为高。使用这样的设置,如果包含在内容的元数据中的属性的值小,则该内容被推荐的可能性保持为低。另一方面,可以将用户偏好信息的特定属性的权重设置为低。如果包含在内容的元数据中的属性的值大,则该内容被推荐的可能性保持为高。
[0009] 根据相关技术,可以推荐风格与用户通常查看内容的风格不同的内容,并且用户对内容感到惊奇。然而,由用户肯定地接受这种惊奇仍然是不确定的。
[0010] 因此,期望推荐考虑到用户偏好以及令用户惊奇的内容。
[0011] 根据本发明的一个实施例,推荐设备包括:用户基本分量提取装置,用于从形成包含多个分量的向量的用户偏好信息的分量当中提取根据预定标准选择的用户基本分量,其中用户偏好信息表示用户的偏好;项目基本分量提取装置,用于从被形成作为向量的项目偏好信息的分量当中提取对应于用户基本分量的分量作为项目基本分量,其中所述向量包含与用户偏好信息的分量数相同数目的分量,并且项目偏好信息的分量是基于用作推荐目标的每个项目的元数据信息而生成的;基本相似度计算装置,用于计算基本相似度,即在包含用户基本分量的用户基本向量与包含用作推荐目标的项目的项目基本分量的项目基本向量之间的基本相似度;候选项目识别装置,用于基于基本相似度而识别要向用户推荐的候选项目;用户反转分量提取装置,用于从用户偏好信息的分量当中提取除用户基本分量之外的分量作为用户反转分量;项目反转分量提取装置,用于从用于候选项目的项目偏好信息的分量当中提取对应于用户反转分量的分量作为项目反转分量;反转相似度计算装置,用于计算反转相似度,即在包含用户反转分量的用户反转向量与包含用作推荐目标的项目的项目反转分量的项目反转向量之间的反转相似度;以及推荐项目识别装置,用于基于反转相似度而从候选项目当中识别要向用户推荐的项目。
[0012] 可以根据用户偏好信息的用户基本分量的值对用户偏好信息的分量的值之和的占有率来选择用户基本分量。
[0013] 可以根据占有率和用户偏好信息的成熟度来选择用户基本分量。
[0014] 可以基于与用户偏好信息的分量相关的信息来计算用户偏好信息的成熟度,其中通过预定操作来更新用户偏好信息,预定操作被标识为与项目相 关且由用户执行的操作。 [0015] 根据本发明的一个实施例,推荐方法包括以下步骤:从形成包含多个分量的向量的用户偏好信息的分量当中提取根据预定标准选择的用户基本分量,其中用户偏好信息表示用户的偏好;从被形成作为向量的项目偏好信息的分量当中提取对应于用户基本分量的分量作为项目基本分量,其中所述向量包含与用户偏好信息的分量数相同数目的分量,并且项目偏好信息的分量是基于用作推荐目标的每个项目的元数据信息而生成的;计算基本相似度,即在包含用户基本分量的用户基本向量与包含用作推荐目标的项目的项目基本分量的项目基本向量之间的基本相似度;基于基本相似度而识别要向用户推荐的候选项目;从用户偏好信息的分量当中提取除用户基本分量之外的分量作为用户反转分量;从用于候选项目的项目偏好信息的分量当中提取对应于用户反转分量的分量作为项目反转分量;计算反转相似度,即在包含用户反转分量的用户反转向量与包含用作推荐目标的项目的项目反转分量的项目反转向量之间的反转相似度;以及基于反转相似度而从候选项目当中识别要向用户推荐的项目。
[0016] 根据本发明的一个实施例,一种计算机程序使计算机执行以下步骤:从形成包含多个分量的向量的用户偏好信息的分量当中提取根据预定标准选择的用户基本分量,其中用户偏好信息表示用户的偏好;从被形成作为向量的项目偏好信息的分量当中提取与用户基本分量对应的分量作为项目基本分量,其中所述向量包含与用户偏好信息的分量数相同数目的分量,并且项目偏好信息的分量是基于用作推荐目标的每个项目的元数据信息而生成的;计算基本相似度,即在包含用户基本分量的用户基本向量与包含用作推荐目标的项目的项目基本分量的项目基本向量之间的基本相似度;基于基本相似度而识别要向用户推荐的候选项目;从用户偏好信息的分量当中提取除用户基本分量之外的分量作为用户反转分量;从用于候选项目的项目偏好信息的分量当中提取对应于用户反转分量的分量作为项目反转分量;计算反转相似度,即在包含用户反转分量的用户反转向量与包含用作推荐目标的项目的项目反转分量的项目反转向量之间的反转相似度;以及基于反转相似度而从候选项目当中识别要向用户推荐的项目。
[0017] 根据本发明的实施例,从形成包含多个分量的向量的用户偏好信息的分量当中提取根据预定标准选择的用户基本分量,其中用户偏好信息表示用户的偏好。从被形成作为向量的项目偏好信息的分量当中提取对应于用户基本分量的分量作为项目基本分量。所述向量包含与用户偏好信息的分量数相同 数目的分量,并且项目偏好信息的分量是基于用作推荐目标的每个项目的元数据信息而生成的。计算在包含用户基本分量的用户基本向量与包含用作推荐目标的项目的项目基本分量的项目基本向量之间的基本相似度。基于基本相似度而识别要向用户推荐的候选项目。从用户偏好信息的分量当中提取除用户基本分量之外的分量作为用户反转分量。从用于候选项目的项目偏好信息的分量当中提取对应于用户反转分量的分量作为项目反转分量。计算在包含用户反转分量的用户反转向量与包含用作推荐目标的项目的项目反转分量的项目反转向量之间的反转相似度。基于反转相似度而从候选项目当中识别要向用户推荐的项目。
[0018] 根据本发明的实施例,可以推荐不仅匹配用户偏好而且向用户提供惊奇的内容。 附图说明
[0019] 图1是根据本发明的一个实施例的推荐系统的框图;
[0020] 图2示出了图1所示的操作日志数据库(DB)的结构;
[0021] 图3示出了项目元信息的示例;
[0022] 图4示出了图1所示的项目元数据库;
[0023] 图5示出了图1所示的用户偏好数据库;
[0024] 图6是示出图1所示的推荐系统的推荐列表生成处理的流程图;
[0025] 图7是示出匹配处理的流程图;
[0026] 图8是示出根据本发明的一个实施例的另一推荐系统的框图;
[0027] 图9示出了图8所示的属性权重数据库;
[0028] 图10示出了图8所示的属性权重调整数据库;
[0029] 图11是示出属性权重调整数据库生成处理的流程图;
[0030] 图12是示出属性权重计算处理的流程图;
[0031] 图13是示出属性权重调整数据库管理处理的流程图;
[0032] 图14示出了图8所示的属性权重调整数据库的另一示例;
[0033] 图15是示出另一属性权重调整数据库管理处理的流程图;以及
[0034] 图16是示出个人计算机结构的框图。

具体实施方式

[0035] 下面参考附图描述本发明的实施例。
[0036] 图1是示出了根据本发明的一个实施例的推荐系统10的结构的框图。推荐系统10打算向用户推荐由诸如视频和音频的数据组成的项目。例如,项目包含诸如广播节目的内容、通过对记录在数字多功能盘(DVD)上的电影进行配音而获得的内容等等。
[0037] 图1所示的推荐系统10包括:终端21、操作日志数据库(DB)22、项目元数据库(metaDB)23、偏好提取引擎24、用户偏好数据库25、推荐引擎26、基本/反转分量提取器27和成熟度计算引擎28。操作日志数据库22到成熟度计算引擎28可以由至少一个计算机(服务器)构成作为推荐设备,并且经由网络而被互联到终端21。
[0038] 因此,终端21与由操作日志数据库22到成熟度计算引擎28组成的推荐设备分开布置。或者,可以使用至少一个计算机来布置整个推荐系统10。
[0039] 在推荐系统10中,推荐设备被设计成响应于来自终端21的请求而将推荐项目列表传送到终端21。例如,推荐系统10基于每个项目的元信息而推荐匹配用户偏好的项目。如同稍后将描述的那样,响应于来自终端21的请求,推荐系统10有意地向用户推荐可以令用户惊奇的项目。
[0040] 如图1所示,用户通过再现作为记录在终端21上的项目的内容数据来查看项目。操作终端21,用户可以记录诸如广播节目的项目。用户也可以将存储在终端21上的内容数据传送到移动终端。用户还可以从终端21中删除内容数据。用户以这种方式通过操作终端21而对项目执行各种处理。
[0041] 输出与每个项目相关的关于终端21的多种操作类型的信息作为操作日志,并且将基于操作日志而生成的记录存储在操作日志数据库22上。图2示出了存储在操作日志数据库22上的数据。
[0042] 如图2所示,在每行列出的数据对应于在操作日志数据库22上的相应记录。操作日志数据库22的每个记录包含四个字段:“ItemId”、“MemberId”“、LogType”和“LogTime”。 [0043] 字段“ItemId”存储项目ID的值,其标识在对应操作中所处理的目标项目。在该情况下,值“1001”、“1003”、“1009”、...被存储在相应记录的字段“ItemId”中。 [0044] 字段“MemberId”存储用户(成员)ID的值,其标识执行操作的用户。值“1”、“3”、“1”、...被存储在相应记录的字段“MemberId”中。
[0045] 字段“LogType”存储标识操作类型的信息。在该情况下,“保留”、“细节”、“好”、...被存储在相应记录的字段“LogType”中。存储在字段“LogType”中的信息是根据预定方法将诸如查看项目或记录项目的操作类型转换成的字符串。
[0046] 字段“LogTime”存储标识执行操作的日期和时间的信息。在该示例中,信息“2007-12-05 08:39:44(表示2007年12月5日8(时):39(分):44(秒))”被存储在字段“LogTime”中。
[0047] 将关于附加到每个项目的元信息的信息存储在项目元数据库23上。例如,从电子节目指南(EPG)中获得元信息。元信息包含诸如项目(内容)的风格、表演者、关键字等信息。
[0048] 图3示出了附加到给定项目(内容)的项目元信息。项目元信息包含属性、值和得分。项目元信息的属性包含“风格”、“人(诸如内容表演者)”、“关键字”、...。项目元信息的值表示每个属性的分段。包含在属性“风格”中的值是“戏剧”、“新闻”、“纪录片”、...。项目元信息的得分是附加到每个值的得分。在该示例中,值“戏剧”的得分是“5”,值“新闻”的得分是“0”,值“纪录片”的得分是“1”。
[0049] 对应于图3示例中的项目元信息的项目接近于戏剧,但还包含纪录片的元素。 [0050] 属性“人”的值列出了“ABC”、“DEF”、“GHI”、...。在该示例中,值“ABC”的得分是“0”,值“DEF”的得分是“1”,值“GHI”的得分是“1”,...。
[0051] 对应于图3中的项目元信息的项目包含“ABC”、“DEF”和“GHI”(虚构姓名)作为其表演者。
[0052] 图3中的属性“关键字”的值包含“美食”、“旅行”、“音乐”、...。值“美食”的得分是“3”,值“旅行”的得分是“5”,值“音乐”的得分是“1”,...。属性“关键字”的值是包含在介绍项目(诸如广播节目)的消息(诸如EPG中的节目描述)中的预先确定的词。例如,从EPG中的节目的介绍性语句中检测诸如“美食”、“旅行”和“音乐”的预先确定的词,并且响应于每个词的检测数而设置其得分。
[0053] 对应于图3中的项目元信息的项目是与“美食”、“旅行”和“音乐”相关的内容,并且与“旅行”关联格外紧密。
[0054] 项目元数据库23存储根据值将每个项目的项目元信息分成的记录。图4示出了存储在项目元数据库23上的数据的示例。
[0055] 参考图4,每行中列出的数据对应于项目元数据库23上的每个记录。在项目元数据库23上的每个记录包含五个字段:“ItemId”、“AttributeId”、“ValueId”、“No/Times”和“Score”。
[0056] 字段“ItemId”存储项目ID的值,其标识记录的项目。在该示例中,值“2000114789142”、“200019580489”、“100024316163”、...被存储在相应记录的字段“ItemId”中。
[0057] 字段“AttributeId”存储属性ID的值,其标识记录的属性。值“1”被存储在每个记录的字段“AttributeId”中。存储在字段“AttributeId”中的值“1”对应于属性“风格”,存储在字段“AttributeId”中的值“2”对应于属性“人”,...。以这种方式,字段“AttributeId”中的值确定每个记录的属性。在示例中,在字段“AttributeId”中的所有值都是“1”。实际上,项目元数据库23还包含在字段“AttributeId”中具有值“2”、“3”、...的记录。
[0058] 字段“ValueId”存储值ID的值,其标识记录的值。在该示例中,值“153144”被存储在每个记录的字段“ValueId”中。例如,存储在字段“ValueId”中的值“153144”对应于值“戏剧”,存储在字段“ValueId”中的值“153145”对应于值“新闻”,...。由字段“ValueId”中的值来标识记录的值。在该示例中,字段“ValueId”中的所有值都是“153144”。实际上,项目元数据库23还存储在字段“ValueId”中具有值“153145”、“153146”、...的记录。 [0059] 字段“No/Times”存储标识记录更新次数的值。字段“No/Times”可以被省略。 [0060] 字段“Score”存储标识记录值的得分的值。图3中的得分处的值被存储在字段“Score”中。例如,图4最上面的记录具有以“2000114789142”作为项目ID的项目的项目元信息的值“戏剧”(在字段“ValueId”中具有值“153144”)的得分。
[0061] 如上所述构建项目元数据库23。通过获取可以作为终端21的操作目标的每个项目的内容的元数据来预先生成项目元数据库23。
[0062] 返回到图1,偏好提取引擎24使用户偏好数据库25基于操作日志数据库22的记录和项目元数据库23的记录而存储数据。
[0063] 响应于操作日志数据库22的记录,偏好提取引擎24识别用户通过操作 终端21而处理过的项目的项目ID,并且识别操作的类型。响应于所识别的项目ID,偏好提取引擎24在项目元数据库23上搜索记录,从而识别具有所识别的项目ID的项目的项目元信息的属性、值和得分。
[0064] 然后,偏好提取引擎24生成将所识别的属性、值和得分映射到用户的成员ID的记录。然后,偏好提取引擎24响应于操作类型而将得分值乘以预先设置的系数。例如,如果响应于操作日志数据库22的记录而识别的操作类型是录制项目,则将基于项目元数据库23的记录而识别的得分值乘以系数3。如果响应于操作日志数据库22的记录而识别的操作内容是查看项目,则将基于项目元数据库23的记录而识别的得分值乘以系数2。 [0065] 如此生成的记录变为用户偏好数据库25的记录。图5示出了用户偏好数据库25的示例。
[0066] 参考图5,在每行列出的数据对应于用户偏好数据库25的记录。用户偏好数据库25中的每个记录包含四个字段:“MemberId”、“AttributeId”、“ValueId”和“Score”。 [0067] 如同先前参考图2所示的操作日志数据库22所讨论的那样,字段“MemberId”标识图5中的用户。如同先前参考图4的项目元数据库23所讨论的那样,图5所示的字段“AttributeId”、字段“ValueId”和字段“Score”也标识属性、值和得分。
[0068] 图5所示的用户偏好数据库25是在值的基础上生成的。更具体地说,针对由一个人执行的一个操作而生成多个记录。生成与作为操作目标的项目的项目元信息的值的数目相等数目的记录。
[0069] 每次由用户执行操作时,将记录存储在用户偏好数据库25上。更具体地说,响应于一个操作而生成与作为操作目标的项目的项目元信息的值的数目相等数目的记录。 [0070] 返回到图1,推荐引擎26基于用户偏好数据库25的记录而生成用户偏好信息。推荐引擎26还基于项目元数据库23的记录而生成项目偏好信息。用户偏好信息和项目偏好信息分别为向量,每个具有与属性数相同数目的分量。例如,如果项目偏好信息的属性总数是100,则用户偏好信息和项目偏好信息中的每个是100维向量(具有100个分量)。 [0071] 用户偏好信息的每个分量的值被确定如下。推荐引擎26检查图5的用户偏好数据库25的记录并且获取映射到用户的成员ID的所有记录。推荐引擎26根据字段“AttributeId”的值对记录进行分类。如果多个记录具有相同 的字段“AttributeId”的值,则推荐引擎26对这些记录的字段“Score”的值进行求和作为总数。在用户偏好信息的向量中响应于属性“风格”(字段“AttributeId”中的“1”)的分量的值是值“戏剧”、“新闻”、“纪录片”、...的得分之和。从而以属性的得分之和作为每个分量的值来生成用户偏好信息。
[0072] 以与用户偏好信息的值相同的方式来获得项目偏好信息的每个分量的值。当生成项目偏好信息时,推荐引擎26基于图4所示的项目元数据库23的记录而计算向量的每个分量的值。响应于一个项目ID而生成项目偏好信息的一个向量。
[0073] 基本/反转分量提取器27从用户偏好信息向量和项目偏好信息向量中提取基本分量和反转分量。基本分量有力地反映用户偏好而反转分量有力地反映给用户的惊奇。基本/反转分量提取器27如下所述地提取基本分量和反转分量。
[0074] 基本/反转分量提取器27计算通过将用户偏好信息向量的每个分量乘以在稍后讨论的方程式(1)中表示的权重wa而确定的值的占有率。为了简化说明,用户偏好信息是三维向量,并且用户的用户偏好信息是向量(1,2,3)。由用户偏好信息分量的原始值乘以方程式(1)的权重wa得到向量(1,2,3)。如同稍后将描述的那样,权重wa是针对向量的每个分量而预先确定的系数。现在预先确定权重w1到w3。如果原始用户偏好信息是向量(x,y,z),则满足关系x·w1=1,y·w2=2并且z·w3=3。
[0075] 在这种情况下,根据下面的等式计算第一分量的占有率:
[0076] 1/(1+2+3)=0.1666≈17%
[0077] 根据下面的等式计算第二分量的占有率:
[0078] 2/(1+2+3)=0.3333≈33%
[0079] 根据下面的等式计算第三分量的占有率:
[0080] 3/(1+2+3)=0.5000≈50%
[0081] 基本/反转分量提取器27基于如此计算出的占有率而提取基本分量和反转分量。例如,在用户偏好信息向量的分量当中具有最高占有率的分量是基本分量,并且具有第二高占有率的分量是反转分量。在下面的讨论中,用户偏好信息向量是N维向量。
[0082] 基本/反转分量提取器27提取具有第三高占有率的分量、具有第四高占 有率的分量、...、直至被提取作为基本分量的分量的占有率与随后提取的分量的占有率之和达到预定值(例如,50%)。然后,基本/反转分量提取器27将这些分量设置为基本分量。 [0083] 根据由稍后要讨论的成熟度计算引擎28计算的成熟度而确定这里设置的值(例如,50%)。
[0084] 例如,当提取具有第五高占有率的分量时,被提取作为基本分量的分量的占有率之和可以达到预定值。然后,基本/反转分量提取器27提取具有第六高占有率的分量、具有第七高占有率的分量、...、具有第N高占有率的分量。将这些分量(包括被提取作为第一反转分量的分量)设置为反转分量。如此提取基本分量和反转分量。
[0085] 上述基本分量和反转分量的提取方法仅仅是一个示例。可以通过别的方法提取基本和反转分量。
[0086] 基本/反转分量提取器27响应于被提取作为基本分量的每个分量,向推荐引擎26通知字段“AttributeId”的值作为基本分量ID。基本/反转分量提取器27还响应于被提取作为反转分量的每个分量,向推荐引擎26通知字段“AttributeId”的值作为反转分量ID。
[0087] 推荐引擎26响应于基本分量ID而识别用户偏好信息的向量中的基本分量以及项目偏好信息的向量中的基本分量。推荐引擎26还从用户偏好信息向量和项目偏好信息向量中的每个提取基本分量。如此生成用户偏好信息的基本向量和项目偏好信息的基本向量。
[0088] 响应于反转分量ID,推荐引擎26识别用户偏好信息向量中的反转分量和项目偏好信息向量中的反转分量。然后,推荐引擎26从用户偏好信息向量和项目偏好信息向量中的每个提取反转分量。如此生成用户偏好信息的反转向量和项目偏好信息的反转向量。 [0089] 推荐引擎26针对从项目元数据库23生成的每个项目的项目偏好信息的基本向量执行匹配处理,以检查请求了项目推荐的用户的用户偏好信息的基本向量。可以使用计算向量内积的方法、计算余弦相似度的方法、计算欧式(Euclidean)距离的方法等等来执行匹配处理。
[0090] 如果将计算向量内积的方法用作匹配处理,则用方程式(1)来表示作为匹配处理结果而获得的在向量X和Y之间的相似度sim(X,Y):
[0091]
[0092] 在方程式(1)中,“A”表示基本向量的分量的集合,并且“a”表示包含在集合A中的一个分量。“Xa”和“Ya”分别表示在向量X和向量Y中的分量“a”的值,并且“wa”表示分量a乘以的系数,并且也被称为权重。权重wa可以是针对每个分量预先确定的值,或者可以是针对每个用户设置的。
[0093] 权重wa是向量分量单独乘以的系数。实际上,提供响应于用户偏好信息(项目偏好信息)的分量的系数。如果用户偏好信息是具有N个分量的向量,则将权重wa表示为N维向量。
[0094] 更具体地说,如果用户偏好信息(项目偏好信息)具有100个分量,则所述分量对应于第一属性到第一百属性。在这种情况下,权重wa是对应于第一属性到第一百属性的一组系数。假设Wn表示第n个属性的权重,则将权重wa表示为包含如下100个分量的向量: [0095] (w1,w2,w3,...,w100)
[0096] 在上述基本向量的匹配处理中,如果分量a是第五个分量,则在方程式(1)中以(w1,w2,w3,...,w100)的w5替代wa,并且计算相似度。
[0097] 推荐引擎26计算在用户的用户偏好信息的基本向量与每个项目的项目偏好信息的基本向量之间的相似度。然后,推荐引擎26以将每个项目(诸如项目ID)映射到所计算的相似度而存储所述相似度作为基本相似度。
[0098] 所计算的基本相似度越高,项目越匹配用户偏好。
[0099] 推荐引擎26按预定数目提取具有高基本相似度的项目,并且将所提取的项目设置为候选项目。然后,推荐引擎26如下所述地针对每个候选项目计算反转相似度。 [0100] 推荐引擎26根据方程式(1)计算在用户的用户偏好信息的反转向量与候选项目的项目偏好信息的反转向量之间的相似度。然后,以将每个项目映射到所计算的相似度而存储所述相似度作为反转相似度。
[0101] 所计算的反转相似度越高,项目越可能匹配用户偏好。
[0102] 推荐引擎26基于上述基本相似度和反转相似度而计算针对每个项目的惊奇推荐评估值。惊奇推荐评估值表示用户以积极方式对所推荐的项目惊奇的可能性。
[0103] 例如,根据下面的方程式响应于项目A的反转相似度Hanten(A)而计算项目A的惊奇推荐评估值igaiDegree(A):
[0104] igaiDegree(A)=1-Hanten(A)
[0105] 项目A的反转相似度越小,项目A的惊奇推荐评估值越大。
[0106] 可以根据下面的方程式使用项目A的基本相似度Base(A)来计算项目A的惊奇推荐评估值:
[0107] igaiDegree(A)=αBase(A)-βHanten(A)
[0108] 在上面的方程式中,α和β是分别预先确定的系数。
[0109] 推荐引擎26以惊奇推荐评估值从高到低的次序推荐预定数目的项目。例如,推荐引擎26从具有最高惊奇推荐评估值的一个开始识别预定数目的项目,并且然后生成列出这些项目的推荐列表。推荐引擎26将推荐列表传送到终端21。
[0110] 根据本发明的一个实施例,根据基本相似度来缩窄候选项目,并且然后基于反转相似度而计算惊奇推荐评估值。如此识别要推荐的项目。
[0111] 图1所示的成熟度计算引擎28计算用户偏好信息的成熟度。成熟度被计算如下。成熟度计算引擎28从最新记录开始,以从新到旧的次序提取存储在用户偏好数据库25上的用户的预定数目的记录。例如,提取响应于由用户对终端21执行的三个最新操作而生成的记录。
[0112] 成熟度计算引擎28检查所提取记录的字段“ValueId”,并且存储值xvn,其指示字段“ValueId”的值的类型数。例如,以时间次序提取三个最新的用户记录。如果三个记录的字段“ValueId”的值是“11”、“22”和“33”,则xvn=3。如果三个记录的字段“ValueId”的值是“11”、“22”和“11”,则xvn=2。
[0113] 成熟度计算引擎28确定值yvn,其指示在用户偏好数据库25上出现的字段“ValueId”的值的类型之和,并且根据下面的方程式计算成熟度M:
[0114] M=1-(xvn/yvn)
[0115] 其中xvn的值是响应于由用户对终端21的一个操作的记录的字段
[0116] “ValueId”的值的类型数的平均值。
[0117] 更具体地说,成熟度计算引擎28基于响应于用户偏好信息的最新操作的更新程度而计算成熟度M。
[0118] 响应于用户偏好信息的最新操作的更新程度越高,即(xvn/yvn)的值越大,就认为用户偏好的变化越大。如果在最近操作中用户偏好极大地改变, 则看起来用户的用户偏好信息仍然尚待成熟。这种用户偏好信息在下次操作中可能极大地改变。
[0119] 如果在最近操作中用户偏好没有极大地改变,则认为用户的用户偏好信息是成熟的。这种用户偏好信息在下次操作中较少可能极大地变化。
[0120] 例如,对于在用户偏好数据库25上首次生成成员ID的记录之后的预定时间段,由于未成熟的用户偏好信息而可以将成熟度M的值设置为零。如果用户的操作次数小于预定阈值,则由于认为用户偏好信息未成熟,可以将成熟度M的值设置为零。
[0121] 仅仅为示例性目的描述了成熟度M的计算方法,并且在成熟度M的计算中可以使用别的方法。
[0122] 在基本/反转分量提取器27的基本分量提取中,基于由成熟度计算引擎28计算的成熟度M而设置占有率之和(包括被提取作为第一基本分量的分量的占有率)。如前所述,在占有率的计算中,将用户偏好信息的每个原始分量的值乘以相应的权重wa。 [0123] 例如,如果成熟度M落在从0%到40%的范围内,则认为用户偏好信息是未成熟的,并且将基本分量的占有率之和设置为80%。认为从未成熟的用户偏好信息提取的反转分量是较不可靠的。
[0124] 如果成熟度M落在从41%到70%的范围内,则认为用户偏好信息是适度成熟的,并且将基本分量的占有率之和设置为65%。
[0125] 如果成熟度M落在从71%到100%的范围内,则认为用户偏好信息是成熟的,并且将基本分量的占有率之和设置为50%。认为从成熟的用户偏好信息提取的反转分量是高度可靠的。
[0126] 基于用户偏好信息的成熟度M而最后确定基本向量和反转向量的分量。
[0127] 根据本发明的一个实施例,基于基本向量和反转向量而计算相似度,其中所述基本向量和反转向量具有基于用户偏好信息的成熟度M而最后确定的分量。首先,基于基本相似度而缩窄候选项目。然后,基于反转相似度而计算惊奇推荐评估值以识别要推荐的项目。以这种方式,可以向用户推荐可能积极地给用户惊奇的项目。
[0128] 如果内容与用户通常查看的项目在一个或其他方面稍微不同,同时在另一方面用户对内容依然基本感觉熟悉,则用户或许会享受来自内容的惊奇。例如,如果推荐不匹配用户偏好的内容,则用户自然对内容不满意。
[0129] 根据相关领域的一种技术,通过改变属性的权重来增大属性对匹配结果的贡献。这种技术不一定向用户推荐用户感觉以易于理解的方式链接的内容。
[0130] 即使在改变每个属性的权重的技术中将用户偏好信息的特定属性的权重设置为高,包含在内容的元数据中的属性值也可能是小的,并且该内容被推荐的可能性保持为低。另一方面,即使将用户偏好信息的特定属性的权重设置为低,包含在内容的元数据中的属性值也可能是大的,并且该内容被推荐的可能性保持为高。
[0131] 根据相关技术,可以推荐风格与用户通常查看的内容的风格不同的内容,则用户对内容感到惊奇。然而,由用户肯定地接受这种惊奇仍然是不确定的。
[0132] 根据本发明的实施例,基于基本相似度而缩窄候选项目,并且基于反转相似度而计算惊奇推荐评估值,以便识别要推荐的项目。
[0133] 基本相似度和反转相似度都表示在用户偏好信息和项目偏好信息之间的相似度。基本相似度和反转相似度中的每个的值越高,项目匹配用户偏好的可能性就越高。另一方面,基本相似度和反转相似度中的每个的值越低,项目匹配用户偏好的可能性就越低。 [0134] 例如,如果推荐具有较低相似度的项目,则用户必定对项目惊奇。这种项目未能匹配用户偏好并且不会由用户作为肯定惊奇而接受。
[0135] 根据本发明的一个实施例,将用户偏好信息的向量分为以下向量:用户偏好信息的基本向量和反转向量。基于基本向量(基本相似度)而缩窄具有高相似度的项目,然后基于反转向量(反转相似度)而选择具有低相似度的项目。使用根据本发明实施例的该配置,可靠地推荐由用户接受作为肯定惊奇的项目。
[0136] 参考图6所示的流程图描述图1所示的推荐系统10的推荐列表生成处理。当发出向用户推荐打算令用户惊奇的项目的请求时,执行推荐列表生成处理。
[0137] 在步骤S11中,成熟度计算引擎28计算成熟度M。
[0138] 在步骤S12中,基本/反转分量提取器27基于在步骤S11中计算出的成熟度M而设置基本分量对反转分量的比率。例如,将成熟度M的值与预定阈值比较,并且确定用户偏好信息的成熟度M的级别(例如,未成熟、适度成熟和成熟)。响应于成熟度M的级别而设置基本分量对反转分量的比率。 例如,将占有率之和设置为80%、65%、50%等等。 [0139] 在步骤S13中,基本/反转分量提取器27和推荐引擎26执行稍后要参考图7讨论的匹配处理。对用户偏好信息与项目偏好信息的基本向量和反转向量进行匹配处理。计算并存储每个项目的基本相似度和反转相似度。在步骤S13中的操作如此识别用作要推荐候选的候选项目。
[0140] 在步骤S14中,推荐引擎26针对在步骤S13中识别的每个候选项目而计算惊奇推荐评估值。如前面所讨论的那样,根据下面的方程式基于项目A的反转相似度Hanten(A)而计算项目A的惊奇推荐评估值igaiDegree(A):
[0141] igaiDegree(A)=1-Hanten(A)
[0142] 可以根据下面的方程式基于项目A的基本相似度Base(A)而计算项目A的惊奇推荐评估值igaiDegree(A):
[0143] igaiDegree(A)=αBase(A)-βHanten(A)
[0144] 在步骤S15中,推荐引擎26识别要推荐的项目。在这种情况下,从候选项目当中识别具有高惊奇推荐评估值的预定数目的项目。
[0145] 在步骤S16中,推荐引擎26生成推荐列表的数据,其中所述推荐列表被构建成在步骤S15中作为要推荐项目而识别的项目的列表。将这里生成的推荐列表的数据传送到终端21。然后,将推荐列表显示在终端21的显示器上,从而向用户推荐所述项目。 [0146] 如此执行推荐列表生成处理。以这种方式,推荐向用户提供肯定惊奇的项目。 [0147] 参考图7所示的流程图,详细地描述图6所示的步骤S13中的匹配处理。
[0148] 在步骤S31中,基本/反转分量提取器27从用户偏好信息中提取基本分量。 [0149] 如同前面讨论的那样,基本/反转分量提取器27计算从用户偏好信息的向量的每个分量乘以方程(1)中的每个权重而得到的值的占有率。例如,将来自用户偏好信息的向量的分量当中的具有最高占有率的分量设置为基本分量,而不将具有第二高占有率的分量设置为基本分量。提取具有第三、第四、...、最高占有率的分量,直至所提取分量(包括第一分量)的占有率之和达到在步骤S12中处理的值。将这些分量设置为基本分量。基于所提取的基本分量的字段“AttributeId”的值而从用户偏好信息提取基本分量。
[0150] 在步骤S32中,基本/反转分量提取器27从项目偏好信息提取基本分量。 在这种情况下,从项目偏好信息提取对应于在步骤S31中提取的基本分量的分量。
[0151] 在步骤S33中,推荐引擎26计算在由步骤S31中提取的基本分量组成的用户偏好信息的基本向量与由步骤S32中提取的基本分量组成的项目偏好信息的基本向量之间的相似度。例如,使用方程式(1)来计算相似度。计算与要推荐的项目数相等数目的相似度。这些相似度成为对应于项目的基本相似度。
[0152] 在步骤S34中,推荐引擎26按相似度从高到低的次序来识别在步骤S33中计算出的预定数目的项目作为候选项目。
[0153] 在步骤S35中,推荐引擎26以将在步骤S34中识别的候选项目映射到在步骤S33中所计算的基本相似度的方式而存储所述基本相似度。
[0154] 在步骤S36中,基本/反转分量提取器27从用户偏好信息提取反转分量。在这种情况下,例如,提取在步骤S31中没有被提取作为基本分量的分量作为反转分量。 [0155] 在步骤S37中,基本/反转分量提取器27从项目偏好信息提取反转分量。在这种情况下,从项目偏好信息提取对应于在步骤S36中提取的反转分量的分量。
[0156] 在步骤S38中,推荐引擎26计算在由步骤S36中提取的反转分量组成的用户偏好信息的反转向量与由步骤S37中提取的反转分量组成的项目偏好信息的反转向量之间的相似度。例如,使用方程式(1)来计算相似度。计算与要推荐的项目数相等数目的相似度。这些相似度成为对应于项目的反转相似度。
[0157] 在步骤S39中,推荐引擎26以将在步骤S34中识别的候选项目映射到在步骤S38中计算出的反转相似度的方式而存储所述反转相似度。
[0158] 以这种方式执行匹配处理。
[0159] 在上面的讨论中,推荐系统10推荐打算令用户惊奇的项目。也可以推荐不打算令用户惊奇的项目。如果推荐系统10推荐不打算令用户惊奇的项目,则推荐引擎26对用户偏好信息和项目偏好信息直接执行匹配处理,并且计算相似度。推荐具有高计算出的相似度的项目。
[0160] 方程式(1)的权重wa可以是针对每个分量而预先确定的权重,或者可以是针对每个用户而预设的权重。
[0161] 当计算在用户偏好信息和项目偏好信息之间的相似度时,在相关技术中使用不依赖于个体的固定权重。然而,实际上,认为重要的属性从用户到用户是不同的,并且公共固定值可能不能补偿个体差异。即使通过使用作为公共固定值的权重计算相似度来推荐项目,也可能没有推荐真正匹配用户偏好的项目。
[0162] 例如,可以允许用户输入重要的属性并且可以响应于输入结果而单独地调整权重。使用这样的配置,可以补偿个体差异。
[0163] 用户偏好是非常抽象的概念,并且甚至用户表示他们自己的偏好也有困难。用户可能不会容易地发现重要的属性。
[0164] 用户偏好可能随时间改变。例如,在查看大量包括广播节目和DVD的内容之后,用户可能发现比最初认为重要的属性更重要的属性。
[0165] 根据本发明的一个实施例,可以自动地调整对每个用户最佳的权重。
[0166] 图8是示出允许将权重自动地调整为对用户最佳的权重的推荐系统100的框图。 [0167] 图8所示的推荐系统100包括:终端121、操作日志数据库122、内容元数据库123、用户偏好数据库125、推荐引擎126、属性权重调整引擎129、属性权重数据库131和属性权重调整数据库132。图8所示的操作日志数据库122到属性权重调整数据库132可以被构建成包括至少一个服务器的推荐设备,并且经由网络而连接到终端121。
[0168] 因此,终端121与由操作日志数据库122到属性权重调整数据库132组成的推荐设备分开布置。或者,可以使用至少一个计算机来布置整个推荐系统100。
[0169] 图8所示的终端121、操作日志数据库122、内容元数据库123和用户偏好数据库125分别与图1所示的终端21、操作日志数据库22、项目元数据库23和用户偏好数据库25相同,并且这里省略其详细讨论。操作日志数据库122由如前面参考图2讨论的记录组成。
内容元数据库123也由如前面参考图4讨论的记录组成。用户偏好数据库125由如前面参考图5讨论的记录组成。图8没有示出对应于图1所示的偏好提取引擎24的功能块。如前面参考图1讨论的那样,生成用户偏好数据库125的记录。
[0170] 图9示出了属性权重数据库131。如图9所示,每行数据对应于属性权重数据库131的记录。在这种情况下,属性权重数据库131的每个记录包括四个字段:字段“MemberId”、字段“AttributeId”、字段“Weight”和字 段“DefaultWeight”。 [0171] 如同参考图2所示的操作日志数据库22讨论的那样,字段“MemberId”存储标识用户的信息。如同参考图4所示的项目元数据库23讨论的那样,字段“AttributeId”存储标识属性的信息。
[0172] 字段“Weight”存储由字段“MemberId”标识的用户的权重值。如上所述,权重是在每个属性的基础上而设置的,并且字段“Weight”存储对应于字段“AttributeId”的值的属性的权重值。
[0173] 字段“DefaultWeight”存储由字段“MemberId”标识的用户的权重缺省值。权重缺省值可以是预定值或者可以是针对每个用户预设的值。在自动地调整用户的权重之前,字段“Weight”存储在字段“DefaultWeight”处的值。
[0174] 如图9所示,在每一属性基础上存储在字段“MemberId”处具有值“1”或“2”的记录。如同所列出的那样,每个记录将字段“DefaultWeight”的值存储在字段“Weight”处,并且尚未自动地调整用户的权重。
[0175] 图8所示的属性权重调整引擎129基于存储在操作日志数据库122上的记录而生成属性权重调整数据库132的记录。属性权重调整数据库132存储用来计算为预定用户调整的权重的信息。
[0176] 图10示出了属性权重调整数据库132的示例。参考图10,每行数据对应于属性权重调整数据库132的每个记录。属性权重调整数据库132的每个记录包括四个字段:字段“MemberId”、字段“TargetScore”、字段“Attributescore”和字段“UpdateTime”。 [0177] 如同参考图2的操作日志数据库22所示的那样,图10所示的字段“MemberId”存储标识用户的信息。
[0178] 如图10所示,字段“TargetScore”和字段“Attributescore”存储如下所述获得的信息。
[0179] 属性权重调整引擎129检查存储在操作日志数据库122上的每个记录的字段“LogType”中的信息。如前面所讨论的那样,操作日志数据库122的记录中的字段“LogType”存储“保留”、“细节”、“好”、...。存储在字段“LogType”中的信息可以是根据预设方法将诸如查看项目或记录项目的操作类型转换成的字符串。
[0180] 属性权重调整引擎129获取具有与预设信息相同的、要存储在字段 “LogType”中的信息的记录作为要用来生成属性权重调整数据库132的记录的记录。要用来生成属性权重调整数据库132的记录的记录是响应于允许用户评价关于要估计的目标项目的操作而生成的记录。
[0181] 例如,如果用户查看或录制项目,则项目似乎由用户积极地评价。另一方面,如果用户删除对应于项目的内容的数据,则项目似乎由用户消极地评价。
[0182] 以根据预设方法转换的字符串来表示存储在操作日志数据库122的每个记录的字段“LogType”中的信息,以便估计关于操作类型的用户评价。例如,用户可能查看或录制项目。存储在响应于该操作而生成的记录的字段“LogType”中的信息是“好”。例如,用户可能删除项目的内容的数据。存储在响应于该操作而生成的记录的字段“LogType”中的信息是“坏”。
[0183] 属性权重调整引擎129获取将“好”或“坏”的信息存储在字段“LogType”中的记录,作为用于生成属性权重调整数据库132的记录的信息。
[0184] 响应于如此获取的记录的字段“ItemId”的值,属性权重调整引擎129识别用作操作目标的项目,并且使推荐引擎126生成该项目的项目偏好信息。如前面所讨论的那样,项目偏好信息是包含与属性数相同数目的分量的向量,并且是基于内容元数据库123的记录而如此生成的。响应于如此获取的记录的字段“MemberId”的值,属性权重调整引擎129识别执行该操作的用户,并且基于用户偏好数据库125的记录而生成用户的用户偏好信息。 [0185] 属性权重调整引擎129使推荐引擎126对项目偏好信息和用户偏好信息执行匹配处理。例如,执行由方程式(1)表示的计算。属性权重调整引擎129从推荐引擎126获取方程式(1)中的|Xa·Ya|的值作为属性“a”的相似度,并且生成将每个属性的相似度映射到属性ID的信息。将该信息存储在字段“Attributescore”中。
[0186] 在图10中的第一个记录中的字段“Attributescore”中描述的是“&1={6265.430664}&6={9245.234375}&7= {255.272858}...”。 第 一 个 记 录 的 字 段“Attributescore”表示具有属性ID“1”的属性的相似度是“6265.430664”,具有属性ID“6”的属性的相似度是“9245.234375”,以及具有属性ID“7”的属性的相似度是“255.272858”。 [0187] 将基于存储在字段“LogType”中的信息而确定的相似度目标值存储在字段“TargetScore”中。相似度目标值是在项目偏好信息和用户偏好信息之间的目标值,并且对应于方程式(1)中的sim(X,Y)的值。例如,如果存储在要 用于生成属性权重调整数据库
132的记录的记录的字段“LogType”中的信息是“好”,则将“100.0”存储在字段“LogType”中。如果存储在要用于生成属性权重调整数据库132的记录的记录的字段“LogType”中的信息是“坏”,则将“-100.0”存储在字段“LogType”中。对应于“好”的相似度目标值(这里为“100.0”)和对应于“坏”的相似度目标值(这里为“-100.0”)是预先确定的。 [0188] 将标识生成记录的日期和时间的信息存储在图10所示的字段“UpdateTime”中。 [0189] 以这种方式生成属性权重调整数据库132的记录。更具体地说,基于被获取作为用于生成属性权重调整数据库132的记录的记录的记录数(即操作日志数据库122的记录输出)而确定要生成的属性权重调整数据库132的记录数。
[0190] 属性权重调整引擎129基于属性权重调整数据库132的记录而调整每个用户的权重。通过多回归分析来执行权重调整,其中所述多回归分析使用从属性权重调整数据库132的记录的字段“TargetScore”获得的相似度目标值(在下文中被称为目标相似度)和从属性权重调整数据库132的记录的字段“Attributescore”获得的每个属性的相似度。 [0191] 属性权重调整引擎129以目标相似度为因变量且以每个属性的相似度为解释变量来执行多回归分析。属性权重调整引擎129如此预测每个属性的权重的最佳值。 [0192] 如此基于每个分量(属性)确定权重wa。例如,从图10所示的第一个记录得到下面的线性方程式:
[0193] 100.0=6265.430664xw1+9245.234375xw6+255.272858xw7+...
[0194] 从图10所示的第二个记录得到下面的线性方程式:
[0195] 100.0=336.787109xw1+334.451447xw6+720.280334xw7+...
[0196] 基于在属性权重调整数据库132的记录当中的具有成员ID“1”的记录而生成上述线性方程。通过对这些方程式的左边和右边求和来创建行列式。使用最小二乘法来确定解(w1,w6,w7,...)。如此执行多回归分析。
[0197] 使用(w1,w6,w7,...)来表示权重。如果属性权重调整数据库132的记录数足够大,则还可以确定权重w2、w3、w4、...。使用所获得的足够大量的记录,用户偏好数据库125以目标相似度为因变量且以每个属性的相似度为解释变 量来执行多回归分析。属性权重调整引擎129如此确定方程式(1)的权重wa。例如,如果存在100个用户偏好信息分量,则通过多回归分析来计算w1、w2、w3、...、w100。
[0198] 属性权重调整引擎129确定每个属性的权重的最佳值。基于如此确定的权重计算方程式(1)以确定相似度。具有“好”作为存储在字段“LogType”中的信息的项目导致关于项目偏好信息的相似度接近于“100.0”。具有“坏”作为存储在字段“LogType”中的信息的项目导致关于项目偏好信息的相似度接近于“-100.0”。更具体地说,由用户高度评价的项目的相似度变高而没有由用户高度评价的项目的相似度变低。
[0199] 属性权重调整引擎129将经上述调整的每个权重值存储在属性权重数据库131的记录的字段“Weight”中。这里的属性权重数据库131的记录是在每一属性基础上生成的,作为响应于用户的成员ID的记录。
[0200] 为了识别要向用户推荐的项目,推荐引擎126使用存储在属性权重数据库131的记录的字段“Weight”中的值来计算在用户的用户偏好信息与每个项目的项目偏好信息之间的相似度。在相似度(sim(X,Y))的计算中,基于属性权重数据库131的记录而识别的响应于每个用户属性的权重值被用作方程式(1)中的wa。
[0201] 推荐引擎126从具有如此计算的最高相似度的一个项目开始,推荐预定数目的项目。例如,推荐引擎126从高相似度到低相似度而识别预定数目的项目,然后生成由一列项目组成的推荐列表。然后,推荐引擎126将推荐列表传送到终端121。
[0202] 推荐系统100如此向用户推荐项目。由于重要属性从用户到用户是不同的,如果使用基于作为公共固定值的权重计算出的相似度来推荐项目,则可能不能推荐真正匹配用户偏好的项目。
[0203] 用户偏好是非常抽象的概念并且甚至用户表示他们自己的偏好也有困难。用户可能不会容易地发现重要的属性,并且用户偏好可能随时间改变。
[0204] 根据本发明的一个实施例,基于操作日志数据库来估计项目的用户评价,并且设置属性权重调整数据库132的记录的目标相似度。基于目标相似度和每个属性的相似度而执行多回归分析。确定每个用户的属性权重。自动地设置对每个用户最佳的权重。 [0205] 下面参考图11所示的流程图描述图8所示的推荐系统100的属性权重调整数据库生成处理。当生成属性权重调整数据库132的记录时执行该处理。
[0206] 在步骤S101中,属性权重调整引擎129设置操作日志数据库122的分析范围。将分析范围设置为表示日期和时间的信息。在分析范围内的记录是在操作日志数据库122的记录中落在从所指定的日期和时间到当前时间范围内的那些记录。
[0207] 在步骤S102中,属性权重调整引擎129获取在步骤S101中设置的分析范围内的记录。基于在操作日志数据库122的记录的字段“LogTime”中描述的信息而确定记录是否在分析范围内。
[0208] 在步骤S103中,属性权重调整引擎129确定在步骤102中获取的记录是否是预定日志类型的记录。例如,属性权重调整引擎129确定存储在记录的字段“LogType”中的信息是否是要用来生成属性权重调整数据库132的记录的预定类型。例如,存储在字段“LogType”中的信息是“好”或“坏”,处理前进到步骤S104。
[0209] 在步骤S104中,属性权重调整引擎129识别记录的成员ID和项目ID。
[0210] 在步骤S105中,属性权重调整引擎129使推荐引擎126在响应于在步骤S104中识别的成员ID的用户偏好信息与响应于所识别的项目ID的项目偏好信息之间执行匹配处理。在这种情况下,计算方程式(1)。在步骤S105中,属性权重调整引擎129从推荐引擎126获取方程式(1)中的|Xa·Ya|的值作为属性“a”的相似度,并且生成将每个属性的相似度映射到属性ID的信息。如此在每一属性的基础上计算相似度。如前面所讨论的那样,将每个属性的相似度映射到属性ID的信息是存储在属性权重调整数据库132的记录的字段“Attributescore”中的信息。
[0211] 在步骤S106中,属性权重调整引擎129将在步骤S105中获得的信息映射到相似度目标值,从而生成如上参考图10所述的属性权重调整数据库132的记录。然后,属性权重调整引擎129将该记录登记到属性权重调整数据库132上。
[0212] 如上所述,如果要存储在要用于生成属性权重调整数据库132的记录的记录的字段“LogType”中的信息是“好”,则目标相似度是“100.0”。另外,如果要存储在要用于生成属性权重调整数据库132的记录的记录的字段“LogType”中的信息是“坏”,则目标相似度是“-100.0”。
[0213] 如果在步骤S103中确定在步骤S102中获得的记录不是预定日志类型的记录,则跳过步骤S104-S106。
[0214] 在步骤S107中,确定是否检查了分析范围内的所有记录。如果在步骤 S107中确定尚未检查完分析范围内的所有记录,则处理返回到步骤S102。
[0215] 重复步骤S102-S107,直至在步骤S107中确定检查了分析范围内的所有记录。 [0216] 如此执行属性权重调整数据库生成处理。
[0217] 下面参考图12所示的流程图描述图8所示的推荐系统100的属性权重计算处理。对终端121的每个用户以预定时间间隔周期性地执行该处理。更具体地说,首先对用户A执行属性权重计算处理,然后在从第一定时起的预定天数之后的下一定时再次对用户A执行属性权重计算处理。在从第二定时起的预定天数之后再次对用户A执行属性权重计算处理,等等。
[0218] 或者,每次从用户发出执行命令时,可以执行属性权重计算处理。
[0219] 在步骤S121中,属性权重调整引擎129识别成员ID。在从现在起要执行的处理中,计算响应于在步骤S121中识别的成员ID的用户的属性权重。
[0220] 在步骤S122中,属性权重调整引擎129从存储在属性权重调整数据库132上的记录当中检查在步骤S121中识别的成员ID的记录。
[0221] 在步骤S123中,属性权重调整引擎129确定在步骤S122中检查的记录数是否等于或大于N。这里,N是预先确定的数,并且用作阈值,根据所述阈值而确定存在足够的记录数用于执行多回归分析。
[0222] 如果在步骤S123中确定存在N个或更多记录,则处理前进到步骤S124。
[0223] 在步骤S124中,属性权重调整引擎129基于在步骤S122中检查的属性权重调整数据库132的记录而调整用户的权重。基于来自属性权重调整数据库132的记录的字段“TargetScore”的目标相似度和来自属性权重调整数据库132的记录的字段“Attributescore”的每个属性的相似度,通过多回归分析来执行权重调整。
[0224] 在步骤S125中,属性权重调整引擎129识别从步骤S124得到的权重,作为在步骤S121中识别的用户的每个属性的权重。
[0225] 在步骤S126中,属性权重调整引擎129更新属性权重数据库131,以反映在步骤S125中识别的用户的属性权重。更具体地说,从图9所示的属性权重数据库131的记录获取在步骤S121中识别的成员ID的记录,并且检查这些记录的字段“AttributeId”的值。在步骤S125中识别的用户的属性权重改写具有表示该属性的字段“AttributeId”的值的记录的字段“Weight”的值。属性数等于用户偏好信息的分量数。例如,如果存在100个用户偏好 信息分量,则改写属性权重数据库131的100个记录的字段“Weight”的值。 [0226] 在步骤S126之后,属性权重调整引擎129在步骤S127中执行属性权重调整数据库管理处理。在属性权重调整数据库管理处理中,从属性权重调整数据库132中删除不必要的记录。稍后将参考图13-15描述属性权重调整数据库管理处理的细节。
[0227] 以这种方式执行属性权重计算处理。
[0228] 根据本发明的一个实施例,基于每个用户的操作日志数据库而估计项目的用户评价,并且如前面参考图11所讨论的那样设置属性权重调整数据库132的记录的目标相似度。如前面参考图12所讨论的那样,使用目标相似度和每个属性的相似度来执行多回归分析。如此确定用户的属性权重。自动地设置对每个用户最佳的权重。
[0229] 下面参考图13的流程图描述在图12的步骤S127中的属性权重调整数据库管理处理。
[0230] 在步骤S141中,属性权重调整引擎129从属性权重调整数据库132的记录当中,检查在步骤S121中识别的成员ID的每个记录的生成日期和时间。例如,属性权重调整引擎129检查在图10所示的字段“UpdateTime”处标识日期和时间的信息。
[0231] 在步骤S142中,属性权重调整引擎129按在步骤S141检查到的生成日期和时间从旧到新的次序识别X%的记录。在这种情况下,识别具有在步骤S121中识别的成员ID的记录的总数的X%(例如,50%)。X的值是预先确定的。
[0232] 在步骤S143中,属性权重调整引擎129删除在步骤S142中识别的属性权重调整数据库132的记录。
[0233] 以这种方式执行属性权重调整数据库管理处理。通过删除旧记录,可以调整用户的每个属性的权重,以响应用户偏好的变化。
[0234] 基于操作日志数据库122的记录而生成属性权重调整数据库132的记录。响应于在终端121上进行的用户的旧操作而生成的属性权重调整数据库132的记录具有旧的生成日期和时间。响应于在终端121上进行的用户的新操作而生成的属性权重调整数据库132的记录具有新的生成日期和时间。
[0235] 在对用户偏好的重要性方面,用户操作可以彼此不同。例如,用户可以防止删除给定内容的数据,或者可以在“收藏夹”文件夹中登记给定内容。 这种操作可以被理解成用户对内容(项目)的积极评价并且暗示对内容的强烈偏好。这种操作清楚地表示积极评价。 [0236] 虽然用户再现和查看给定内容的数据暗示对内容(项目)的积极评价,但是这种操作未必确保用户对内容的强烈偏好。用户可能仅仅为检查目的而简单地查看所记录内容的数据。
[0237] 因此,在对用户偏好的重要性方面,用户操作彼此不同。如果自动地删除旧数据而不注意用户操作的类型,则可能不能使用所认可的用户偏好适当地执行权重调整。 [0238] 在图12的步骤S127的属性权重调整数据库管理处理中,还考虑用户操作的类型。如同下面在图12的步骤S127的属性权重调整数据库管理处理中描述的那样,考虑用户操作的类型。
[0239] 图14示出了属性权重调整数据库132的另一示例。每行上的数据对应于如前面参考图10讨论的属性权重调整数据库132的每个记录。属性权重调整数据库132的每个记录包括五个字段:字段“MemberId”、字段“TargetScore”、字段“Attributescore”、字段“UpdateTime”和字段“容许使用次数”。
[0240] 图14中的字段“MemberId”、字段“TargetScore”、字段“Attributescore”和字段“UpdateTime”与图10的对应字段相同,并且这里省略其讨论。
[0241] 图14中的字段“容许使用次数”存储数值,其表示记录可以在属性权重计算处理中使用多少次。当生成记录时,存储在字段“容许使用次数”中的是响应于由操作日志数据库122识别的操作类型而确定的值。
[0242] 如果用户执行清楚地表示用户对项目的积极评价的操作时,则存储在操作日志数据库122的记录的字段“LogType”中的信息是“好3”。例如,如果用户执行暗示用户对项目的积极评价的操作时,则存储在字段“LogType”中的信息可以是“好2”或“好1”。 [0243] 如果用户删除响应于项目的内容数据或者如果用户执行清楚地表示用户消极评价的操作,则存储在字段“LogType”中的信息是“坏3”。如果用户执行暗示用户消极评价的操作,则存储在字段“LogType”中的信息可以是“坏2”或“坏1”。
[0244] 当生成属性权重调整数据库132的记录时,存储在操作日志数据库122的记录的字段“LogType”中的信息可以是“好3”。在这样的情况下,将“3”存储在字段“容许使用次数”中。当生成属性权重调整数据库132的记录时, 存储在操作日志数据库122的记录的字段“LogType”中的信息可以是“好2”或“好1”。在这样的情况下,将“2”或“1”存储在字段“容许使用次数”中。
[0245] 当生成属性权重调整数据库132的记录时,存储在操作日志数据库122的记录的字段“LogType”中的信息可以是“坏3”。在这样的情况下,将“3”存储在字段“容许使用次数”中。类似地,当生成属性权重调整数据库132的记录时,存储在操作日志数据库122的记录的字段“LogType”中的信息可以是“坏2”或“坏1”。在这样的情况下,将“2”或“1”存储在字段“容许使用次数”中。
[0246] 仅仅为解释性目的而描述存储在操作日志数据库122的记录的字段“LogType”中的信息“好3”、“好2”、“好1”、坏3”、“坏2”和“坏1”。实际所存储的信息可以是不同的。重要的是通过操作类型来确定存储在字段“容许使用次数”中的值。
[0247] 如果在属性权重调整数据库管理处理中考虑操作类型,则将属性权重调整数据库132构造成如图14所示。使用图14所示的属性权重调整数据库132来执行图11和12所示的处理。
[0248] 下面参考图15的流程图描述在图12的步骤S127中的属性权重调整数据库管理处理的另一示例。在属性权重调整数据库管理处理中,考虑操作类型。
[0249] 在步骤S161中,属性权重调整引擎129从属性权重调整数据库132的记录当中,更新在步骤S121中识别的成员ID的每个记录的容许使用次数。例如,按“1”递减在步骤S121中识别的成员ID的所有记录中的每个存储在图14的字段“容许使用次数”中的值。 [0250] 在步骤S162中,属性权重调整引擎129识别具有“0”作为在步骤S161中更新的容许使用次数的记录。例如,在图14的第三行的记录具有值“2”作为当前的容许使用次数,并且在步骤S161中的更新使容许使用次数的值为“1”。例如,在图14的第四行的记录具有值“3”作为当前的容许使用次数,并且在步骤S161中的更新使容许使用次数的值为“2”。 [0251] 在第二、第五和第六行的记录具有值“1”作为当前的容许使用次数,并且在步骤S161中的更新使容许使用次数的值为“0”。在步骤S162中,识别在第二、第五和第六行的记录具有“0”。
[0252] 在步骤S163中,属性权重调整引擎129删除在步骤S162中所识别的具 有“0”的记录。
[0253] 以这种方式执行属性权重调整数据库管理处理。由于基于响应于操作类型确定的容许使用次数的值来确定是否删除记录,因此在属性权重调整数据库管理处理中考虑了操作类型。如此构建适当地反映用户偏好的属性权重调整数据库132。适当地调整用户的每个属性的权重。
[0254] 可以使用硬件或软件来执行上面的系列处理步骤。如果使用软件来执行系列处理步骤,则可以从记录介质或经由网络将形成软件的程序安装到包含在特定硬件中的计算机,或诸如图16所示的使用其上安装的各种程序来执行多种功能的通用个人计算机700的计算机。
[0255] 图16中的中央处理单元(CPU)701在以下程序的控制下执行多种处理:存储在只读存储器(ROM)702上的程序或从存储单元708载入到随机存取存储器(RAM)703的程序。RAM 703还存储CPU 701在执行处理时使用的数据。
[0256] CPU 701、ROM 702和RAM 703经由总线704而彼此互连。输入-输出接口705连接到总线704。
[0257] 输入-输出接口705还连接到包括键盘、鼠标等的输入单元706,包括诸如阴极射线管(CRT)或液晶显示器(LCD)的显示器、扬声器等的输出单元707,包括硬盘等的存储单元708,包括诸如调制解调器或LAN卡等网络接口的通信单元709。通信单元709经由网络(包括因特网)而执行通信处理。
[0258] 在需要时将驱动器710连接到输入-输出接口705。适当时,将诸如磁盘、光盘、磁光盘或半导体存储器的可拆卸介质711装载到驱动器710上。将从可拆卸介质711读取的计算机程序安装到存储单元708上。
[0259] 如果使用软件执行上述处理步骤,则从诸如因特网的网络或从诸如可拆卸介质711的记录介质安装软件的计算机程序。
[0260] 记录介质包括与图16所示的计算机分开提供的装载程序的可拆卸介质711,以将计算机程序分发到用户。可拆卸介质711可以是以下一种:磁盘(诸如软盘(注册商标))、光盘(诸如光盘只读存储器(CD-ROM)、或数字多功能盘(DVD))、磁光盘(MD(迷你盘)(注册商标))和半导体存储器。记录介质还包括ROM 702和包含在存储单元708中的硬盘,每个分布在计算机中并且将计算机程序存储在其上。
[0261] 可以以本说明书中描述的处理步骤的时间系列次序来执行计算机程序,或者可以并行执行或可以在任意定时执行。
[0262] 本申请包含与2008年9月8日向日本专利局提交的日本优先权专利申请JP2008-229312中公开的主题内容相关的主题内容,在此通过引用将其全文合并于此。 [0263] 本领域的技术人员应当理解,可以在所附权利要求或其等价物的范围内根据设计需要或其它因素进行各种修改、组合、再组合和变更。