用于混合信息查询的方法和系统
背景
1.技术领域
本教导涉及用于因特网服务的方法、系统和编程。尤其,本教导涉及用于向因特网用户提供信息的方法、系统和编程。
2.技术背景的讨论
搜索引擎是为指定的关键词搜索文档并返回其中找到这些关键词的文档的列表的程序。图1阐释现有技术的搜索引擎100。搜索引擎100通过web爬行器检索web页面。然后,由主模块102分析每一页面的内容,以便判断应当如何索引它。关于web页面的数据被存储在索引数据库104,以用于以后的查询。在用户106通过使用关键词向搜索引擎100输入查询108时,主模块102检查其索引,并且根据其准则从索引数据库104向用户106提供最佳匹配文档例如web页面的列表,作为查询结果110。然而,已知的搜索引擎100仅准确地按照来自查询的输入查找文档中的词或短语。它仅允许通过关键词查询文档。换句话说,现有技术的搜索引擎100中,查询108仅限于关键词,且查询结果限于文档。
现有技术的搜索引擎100中,通过内容分析器112和内容建议模块114,可以获得个性化内容推荐。传统内容推荐可以以两种方式中的一种实现——通过协同过滤或基于内容的过滤。协同过滤方法基于用户的公开信息例如既往行为以及由其他用户的类似判决构建模型,且使用该模型来预测用户可能感兴趣的其他内容。基于内容的过滤方法利用数据库104中所存储的已知内容的一系列独立特性,以便推荐具有相似性质的附加内容。另外,现有技术的搜索引擎100通常仅考虑用户当中的显式关系和基于用户的在线内容消费活动明确表示的用户的兴趣。尽管在一些现有的技术处理了隐式关系,但隐式关系大多数是经由特设方法(ad-hoc approach)标识的。此外,传统的推荐系统通常仅获取由用户自愿提供的数据,例如,通过提问,或在用户直接地与推荐系统交互时由推荐系统记录的数据,例如,在用户登录推荐系统时的cookie或活动日志。结果,推荐系统的新用户或不活跃用户不能用来提供用于构建推荐模型的数据。相应地,对于其个人数据不可用或稀缺的新用户或不活跃用户,传统的推荐系统在个性化内容推荐方面变得较为低效。
因此,存在提供用于基于与用户相关联的信息进行混合信息查询的经改善的解决方案的需要,无论这样的信息是静态的、动态的、显式的还是隐式的,所有都以系统的和有效的方式来解决上述问题。
概述
本教导涉及用于混合信息查询的方法、系统和编程。
在一个示例中,公开了一种在至少一种机器上实现的方法,每一机器具有至少一个处理器、存储和连接到网络以便进行混合信息查询的通信平台。首先从与混合查询相关联的用户接收请求。根据关于用户、特征和文档中的一种的输入以及关于用户、特征和文档中的一种的所期望的混合查询结果来表示混合查询。然后,确定在输入和所期望的混合查询结果之间的映射。基于所收集的并且与一个或多个用户相关联的混合信息,建立混合模型。基于该混合模型执行映射,以便基于输入获得所期望的混合查询结果。最终,作为对混合查询的响应,提供所期望的混合查询结果。
在另一示例中,公开了一种在至少一种机器上实现的方法,每一机器具有至少一个处理器、存储和连接到网络以便进行混合信息查询的通信平台。首先从与混合查询相关联的用户接收请求和授权信息,以便访问用户的动态私有信息。根据关于用户、特征和文档中的一种的输入以及关于用户、特征和文档中的一种的所期望的混合查询结果来表示混合查询。然后,基于授权信息接收与用户相关联的动态私有信息。检索基于所收集的并且与一个或多个用户相关联的混合信息所建立的混合模型。将用户的动态私有信息合并在混合模型中,以便获得经更新混合模型。基于输入和经更新混合模型标识所期望的混合查询结果。最终,作为对混合查询的响应,提供所期望的混合查询结果。
在又一个示例中,公开了一种在至少一种机器上实现的方法,每一机器具有至少一个处理器、存储和连接到网络以便进行混合信息查询的通信平台。连续地收集与一个或多个用户相关的混合信息。连续地分析混合信息,以便基于混合信息标识混合信息中的一种或多种显式关系并且导出在一个或多个用户当中的一种或多种隐式关系。然后,基于显式关系和隐式关系连续地索引混合信息,以使得一个或多个用户中的每一个与感兴趣的话题、另一用户和内容通过混合索引中的至少一种相关联。基于混合索引连续地更新混合模型。将该混合模型用于基于混合查询导出混合查询结果。根据关于用户、特征和文档中的一种的输入和关于用户、特征和文档中的一种的混合查询结果表示混合查询。
在不同的示例中,公开了一种用于混合信息查询的系统。该系统包括混合查询接口和混合响应推荐引擎。混合查询接口被配置为从与混合查询相关联的用户接收请求,并且作为对混合查询的响应,提供所期望的混合查询结果。根据关于用户、特征和文档中的一种的输入以及关于用户、特征和文档中的一种的所期望的混合查询结果来表示混合查询。混合响应推荐引擎被配置为确定在输入和所期望的混合查询结果之间的映射。混合响应推荐引擎还被配置为检索基于所收集的并且与一个或多个用户相关联的混合信息所建立的混合模型,并且基于该混合模型执行映射,以便基于输入获得所期望的混合查询结果。
在另一不同的示例中,公开了一种用于混合信息查询的系统。该系统包括混合查询接口、混合信息获取器、混合建模单元和混合响应推荐引擎。混合查询接口被配置为从与混合查询相关联的用户接收请求和授权信息,以便访问用户的动态私有信息,并且作为对混合查询的响应,提供所期望的混合查询结果。根据关于用户、特征和文档中的一种的输入以及关于用户、特征和文档中的一种的所期望的混合查询结果来表示混合查询。混合信息获取器被配置为基于授权信息检索与用户相关联的动态私有信息。混合建模单元被配置为检索基于所收集的并且与一个或多个用户相关联的混合信息所建立的混合模型,并将用户的动态私有信息合并在混合模型中,以便获得经更新混合模型。混合响应推荐引擎被配置为基于输入和经更新混合模型标识所期望的混合查询结果。
在再一种不同的示例中,公开了一种用于混合信息查询的系统。该系统包括混合信息获取器、混合信息剖析单元、显式/隐式关系/兴趣索引器和混合建模单元。混合信息获取器被配置为连续地收集与一个或多个用户相关的混合信息。混合信息剖析单元被配置为连续地分析混合信息,以便基于混合信息标识混合信息中的一种或多种显式关系并且导出在一个或多个用户当中的一种或多种隐式关系。显式/隐式关系/兴趣索引器被配置为基于显式关系和隐式关系连续地索引混合信息,以使得一个或多个用户中的每一个与感兴趣的话题、另一用户和内容通过混合索引中的至少一种相关联。混合建模单元被配置为基于混合索引连续地更新混合模型。将该混合模型用于基于混合查询导出混合查询结果。根据关于用户、特征和文档中的一种的输入和关于用户、特征和文档中的一种的混合查询结果表示混合查询。
其他概念涉及用于混合信息查询的软件。根据这一概念的软件产品包括至少一种机器可读非暂态介质由该介质携带的信息。由该介质携带的信息可以是关于与请求相关联的参数或操作参数的可执行程序代码数据,例如与用户、请求或社会团体等等相关的信息。
在一个示例中,一种机器可读有形和非暂态介质上记录有用于混合信息查询的信息,其中,在由机器读取时,该信息引起机器执行一系列步骤。首先从与混合查询相关联的用户接收请求。根据关于用户、特征和文档中的一种的输入以及关于用户、特征和文档中的一种的所期望的混合查询结果来表示混合查询。然后,确定在输入和所期望的混合查询结果之间的映射。基于所收集的并且与一个或多个用户相关联的混合信息,建立混合模型。基于该混合模型执行映射,以便基于输入获得所期望的混合查询结果。最终,作为对混合查询的响应,提供所期望的混合查询结果。
在另一示例中,一种机器可读有形和非暂态介质上记录有用于混合信息查询的信息,其中,在由机器读取时,该信息引起机器执行一系列步骤。首先从与混合查询相关联的用户接收请求和授权信息,以便访问用户的动态私有信息。根据关于用户、特征和文档中的一种的输入以及关于用户、特征和文档中的一种的所期望的混合查询结果来表示混合查询。然后,基于授权信息接收与用户相关联的动态私有信息。检索基于所收集的并且与一个或多个用户相关联的混合信息所建立的混合模型。将用户的动态私有信息合并在混合模型中,以便获得经更新混合模型。基于输入和经更新混合模型标识所期望的混合查询结果。最终,作为对混合查询的响应,提供所期望的混合查询结果。
在又一个示例中,一种机器可读有形和非暂态介质上记录有用于混合信息查询的信息,其特征在于,在由机器读取时,该信息引起机器执行一系列步骤。连续地收集与一个或多个用户相关的混合信息。连续地分析混合信息,以便基于混合信息标识混合信息中的一种或多种显式关系并且导出在一个或多个用户当中的一种或多种隐式关系。然后,基于显式关系和隐式关系连续地索引混合信息,以使得一个或多个用户中的每一个与感兴趣的话题、另一用户和内容通过混合索引中的至少一种相关联。基于混合索引连续地更新混合模型。将该混合模型用于基于混合查询导出混合查询结果。根据关于用户、特征和文档中的一种的输入和关于用户、特征和文档中的一种的混合查询结果表示混合查询。
在下面的描述中将部分陈述附加优点和新颖特征,且本领域中的技术人员在检查下列内容和附图后将明显看出部分附加优点和新颖特征,或者可以通过各示例的产生或操作来获知附加优点和新颖特征。可以通过下面讨论的详尽示例中所陈述的各种方法的各方面、手段和组合的实践和使用来实现和获取本教导的优点。
附图简述
参考各示例性实施例进一步描述在此描述的方法、系统和/或编程。参考附图详细描述这些示例性实施例。这些实施例是非限制性示例性实施例,其中,贯穿附图中的多个视图,类似的标号表示相似的结构,且其中:
图1叙述基于关键词查询和文档查询结果的现有技术的搜索引擎;
图2是根据本教导的一种实施例的用于混合信息查询的系统的高层次示例性系统图;
图3(a)和图3(b)阐释根据本教导的一种实施例的用于混合信息查询的系统在其中操作的混合数据空间;
图4是根据本教导的一种实施例的用于混合信息查询及其自举(bootstrapcapability)能力的自成一体系统(self-contained system)的高层次描述;
图5是根据本教导的一种实施例的用于混合信息查询的系统的示例性混合查询引擎的系统图;
图6是根据本教导的一种实施例的混合查询引擎的示例性过程流程图;
图7是根据本教导的一种实施例的混合查询引擎的示例性混合数据档案的系统图;
图8是根据本教导的一种实施例的混合查询引擎的示例性混合数据档案的系统图;
图9是根据本教导的一种实施例的混合查询引擎的示例性混合信息获取器的系统图;
图10是根据本教导的一种实施例的混合查询引擎的示例性混合信息剖析单元的系统图;
图11(a)是根据本教导的一种实施例的混合信息剖析单元的示例性混合用户信息分析器的系统图;
图11(b)是根据本教导的一种实施例的混合信息剖析单元的示例性混合内容信息分析器的系统图;
图11(c)是根据本教导的一种实施例的混合信息剖析单元的示例性混合活动信息分析器的系统图;
图12是根据本教导的一种实施例的混合查询引擎的示例性混合建模单元的系统图;
图13(a)是根据本教导的一种实施例的混合建模单元的示例性用户信息表征单元的系统图;
图13(b)是根据本教导的一种实施例的用户信息表征单元的示例性过程流程图;
图14(a)是根据本教导的一种实施例的混合建模单元的示例性用户相关内容表征单元和用户活动表征单元的系统图;
图14(b)根据本教导的一种实施例的用户相关内容表征单元和用户活动表征单元的示例性过程流程图;
图15(a)是根据本教导的一种实施例的混合建模模块的示例性建模模块的系统图;
图15(b)是根据本教导的一种实施例的建模模块的示例性模型精化单元的系统图;
图15(c)是根据本教导的一种实施例的建模模块的示例性过程流程图;
图16是根据本教导的一种实施例的混合查询引擎的示例性混合响应推荐引擎的系统图;
图17是根据本教导的一种实施例的混合响应推荐引擎的示例性过程流程图;
图18(a)和图18(b)描绘根据本教导的不同实施例其中应用混合信息查询的联网环境的示例性实施例;以及
图19叙述可以在其上实现本教导的通用计算机架构。
详细描述
在下列详细描述中,为了提供对相关教导的透彻理解,作为示例陈述了众多特定细节。然而,本领域中的技术人员应明显看出,无需这样的细节就可以实践本教导。在其他实例中,已经以相对高的层次而非详细地描述了众所周知的方法、过程、系统、组件和/或电路,以便避免不必要地模糊本教导的各方面。
本公开内容描述混合信息查询的方法、系统和编程的各方面。作为对以用户、特征和文档的形式中的任何一种给出的查询的响应,在此公开的方法和系统能够推荐用户、特征和文档中的任何一种。不仅基于显式用户兴趣或关系而且也基于隐式关系(经由例如派生或传播基于用户的在线行为历史推断和/或导出的)将本公开内容中的查询和结果关联起来。此外,连续地收集在线和离线用户和内容信息两者,例如静态动态用户简档和用户相关的内容,以便时常更新用于响应推荐模型,在这样的意义上,在本公开内容中信息查询是“混合的”。此外,基于用户在系统上的活跃度,该方法和系统也是自适应的。该方法和系统具有一旦新用户即使以一些基本用户属性注册到系统就提供相当良好的推荐能力,并且然后,随着用户的参与增加,逐渐地和连续地改善用户的简档。
图2是根据本教导的一种实施例的用于混合信息查询的系统的高层次示意图。系统200包括混合查询引擎202,其负责响应于从用户208发送的混合查询206提供混合查询结果204。在可以查询什么以及基于什么信息方面,系统200是高度灵活的。例如,在查询和查询结果之间的映射关系可以是用户到用户、用户到文档、用户到特征、文档到用户、文档到文档、文档到特征、特征到用户、特征到文档以及特征到特征中的任何一种。在一个示例中,将用户用作查询,混合查询引擎202可以推荐(1)另一用户,例如社交网络中明确地呈现用户的朋友、关注者、兴趣组伙伴等等,以及尽管没有明确地连接但基于用户的显式关系用算法标识的“相似”用户;(2)用户的简档特征;以及(3)用户明确地创建、喜爱、转发、评论等等且根据推荐模型可能感兴趣的文档。在另一示例中,将文档用作查询查询,混合查询引擎202可以推荐(1)相似的或相关的文档,其中用算法计算相似性或相关性;(2)文档的特征,例如关键词或话题;以及(3)明确地创建、喜爱、转发评论等等的用户,或根据推荐模型可能感兴趣的用户。在又一个示例中,将诸如关键词、实体、话题、潜变量(latent variable)等的特征用作查询,混合查询引擎202可以(1)基于相关特征与查询的相关性推荐相关特征;(2)推荐具有这些特征的文档;以及(3)推荐其简档匹配这些特征的用户。
在这一示例中,通过混合查询接口210传输混合查询206和混合查询结果204,作为混合查询引擎202的输入和输出,并且由混合响应推荐引擎212根据混合推荐模型214和混合数据档案216中所存储的混合信息做出推荐。混合数据档案216中的混合信息可以由混合查询引擎202连续地收集和更新。另外,在这一示例中,不仅基于显式关系/兴趣而且也基于隐式关系/兴趣(根据从诸如用户行为等的离线和在线用户信息两者收集的混合信息推断),可以做出个性化响应推荐。通过显式/隐式关系/兴趣索引器218索引显式和隐式关系/兴趣两者。经索引的关系/兴趣可以被存储在混合数据档案216中,作为混合信息的一部分,并且被用来创建和连续地精化混合模型214。
图3(a)和图3(b)阐释根据本教导的一种实施例的用于混合信息查询的系统在其中操作的混合数据空间。用户、内容、活动和特征(例如关键词)全部都投影到相同的空间,以使得可以基于在不同数据当中的隐式关系做出推理。图3(a)阐释关于可以收集和利用信息来推断用户的或者由用户共享的混合关系/兴趣的一个示例。例如,可以基于用户在线活动推断在不同用户中共享的兴趣。在一个示例中,如果查询用户U1点击内容C1,那么,系统可以推断U1对话题C1具有隐式兴趣。在另一示例中,如果U1将C1转发给另一用户Uk且Uk点击C1,那么,系统可以推断U1和Uk共享对话题C1的相同兴趣。在又一个示例中,如果U1评论C1且另一用户Ui点击U1对C1的评论,那么,系统可以推断U1和Ui共享对话题C1的相同的隐式兴趣。在又一示例中,如果Ui点击另一内容Cn,且Uk也点击相同的内容Cn,那么,系统可以推断Ui和Uk共享对话题Cn的相同兴趣。在又一示例中,如果U1和U2处于相同的社会团体,或者如果U1关注U2或者被U2关注,且U1点击C1,那么,系统可以推断U2也对话题内容1感兴趣。用户的或由用户共享的混合关系/兴趣可以用来建立在查询和查询结果之间的映射。在一个示例中,用户对具体话题内容的显式或隐式兴趣可以被用来建立在用户和具有具体话题的文档之间的链接。在另一示例中,两个用户共享的对具体话题内容的相同兴趣可以被用来建立在两个用户之间的链接。
图3(b)阐释一种用于混合信息查询的系统在其中操作的混合数据空间。这种混合空间与常规方案的不同之处在于,它利用多元化的活动范围来链接用户、文档和特征。根据这种空间和在不同信息片段当中的相互关系,该系统可以将用户分组成不同的兴趣组、探索用户之间的关系并标识隐式隐藏的用户关系以及他们的隐式共享的兴趣。在图3(b)中,除了用户、活动和内容之外,各特征也是其中执行混合信息查询的混合数据空间的一部分。各特征可以包括例如文档中的关键词、文档的话题、兴趣组的话题、实体或潜变量。
图4是根据本教导的一种实施例用于混合信息查询的自成一体系统及其自举能力的高层次示意图。在这一示例中,在新用户注册到系统时,新用户提供简档信息,简档信息可以用于利用基于现有用户构建的现有混合模型的存在来做出所推荐的响应。基于包括用户属性和文档的混合信息构建现有的混合模型。在首轮推荐之后,新用户的属性可以被合并到现有模型中,且可以基于进一步收集的关于所有用户的混合信息做出精化。每一新用户连续地迁移,变成了现有用户,且他们的属性被合并到连续地精化的混合模型。即是说,系统可以类似这样进化,并在该自成一体生态系统(self-contained eco system)中实现自我完善。
图5是根据本教导的一种实施例的用于混合信息查询的系统的示例性混合查询引擎的系统图。混合查询引擎202包括混合响应推荐引擎212,其被配置为基于来自混合数据档案216的混合信息和由混合建模单元502构建和精化的混合模型214推荐用户、特征和文档中的任何一种,作为对以用户、特征和文档的形式中的任何一种给出的混合查询的混合响应。
如先前所讨论的,混合信息包括关于用户的任何静态、动态、在线或离线用户信息以及与用户对这样的内容的使用相关联的内容信息。混合信息也包括与用户的在线活动相关联的活动信息以及用户的所有显式关系和隐式关系和兴趣,显式关系和隐式关系和兴趣由显式/隐式关系兴趣索引器218以索引的形式来索引。另外,混合信息还可以包括所导出的用户信息和基于活动信息获得的所导出的内容信息。在一些实施例中,诸如从文档提取的关键词或感兴趣的话题等的特征信息可以被包括在混合数据档案216中,作为混合信息的一部分。
为了实现最新的和全面的信息剖析,可以通过在线和离线信息取出机制两者获得混合信息,即,当用户离线时由混合信息获取器504连续地收集静态信息,且当用户在线时由混合信息获取器504与用户登录模块506联合实时收集动态信息。混合信息获取器504负责收集广泛的离线信息,例如反映用户的长期兴趣或对公共上下文兴趣的静态用户和内容信息。混合信息获取器504也被配置为,与用户登录模块506联合,捕捉在线用户信息,例如在用户登录到该系统时的时间期间的动态用户和内容信息,该动态用户和内容信息反映用户的短期兴趣或对特定实时上下文的兴趣。在线和离线混合信息具有互补的目的,这是它们以互补的分辨率(长期对即时、共同对特定)反映用户的兴趣。当离线用户信息更加完整且消耗更多时间以便捕捉时,以经常性的方式连续地收集静态用户和内容信息。对于动态用户和内容信息,在一个示例中,用户可以登录到用户登录模块506并向其提供授权信息,例如具有时间限制的私有令牌,以便访问用户的社交网络账户,使得混合信息获取器504可以在运行时从用户的私有社交网络账户访问和捕捉用户的私有数据。私有数据可以包括用户的最近新闻、事件、博客、社会更新等等。信息的表示可以非常灵活:基于关键词、用户属性、用户类别、潜在空间等等,在这个意义上,所取出的信息也是“混合的”。各种表示可以通常属于如以上所描述的三种类别的信息或从其导出:关于用户的用户信息、与用户对这样的内容的使用相关联的内容信息以及与用户的在线活动相关联的活动信息。
可以将由混合信息获取器504取出的“原始”数据馈送到混合信息剖析单元508,以便导出或推断附加信息,以便构建相对于用户或文档的在线和离线简档。通过对混合信息执行各种分析来做出混合信息剖析各种分析例如但不限于从用户属性提取特征、从用户属性导出/推断特征、从用户属性导出/推断偏好/兴趣、从文档提取关键词、导出/推断文档的话题、预测将来的用户活动。混合信息剖析单元508也负责索引在相同的类别内或跨越不同的信息类别的明确相关或隐式相关的混合信息。如以上所描述的,除了显式关系和兴趣之外,例如,通过由混合信息剖析单元508分析用户的活动信息以及其他混合信息,也可以标识隐式关系和兴趣。在线和离线剖析和索引可以是以用户为中心或以内容为中心,即,围绕用户或文档构建简档。在线和离线简档和索引可以被存储在混合数据档案216中,作为混合信息的一部分。链接两个或更多个混合信息片段的所有索引可以被存储在关系档案510中,以便一旦查询输入到达就进行查询结果的快速检索。
在这一示例中,混合建模单元502被配置为构建和连续地精化将任何查询输入映射到相同的或不同的查询结果的不同推荐模型。在每一种模型中,一种类型的混合信息可以被表示为矩阵,且可以应用两个或更多个矩阵,以便获得从混合查询输入到混合查询输出的映射。在一个示例中,基于表示关于所有现有用户的用户特征的用户属性矩阵和表示关于现有用户的话题/关键词(即,内容特征)的话题/关键词矩阵,可以建立该模型。
应注意,如在此所描述的模型可以被用来促进或允许这样的混合查询,这是因为该模型中所包含的信息允许广泛匹配,以便标识混合查询寻找的查询结果。如所讨论的,可以通过标识话题/关键词矩阵中相似的各行来实现基于感兴趣话题的用户到用户匹配。即是说,对应于这样的行的用户具有共享的兴趣。另一方面,如果查询关于具有相似的属性的其他用户,则可以通过就在表示查询用户的行和表示其他用户的各行之间的相似性对用户属性矩阵进行分析来执行用户到用户匹配。在另一示例中,如果查询用户提供作为输入的文档并要求相似的文档,那么,需要执行文档到文档匹配。只要存在从指向在这样的话题下的实际文档的话题/关键词矩阵中经标识的话题做出的索引,那么这也能通过在此公开的模型来促进。在这种情况中,首先可以解析和分析输入文档,并且标识特征例如关键词或话题。通过这样的话题并且通过遵循索引来进行跟踪,可以标识相似的文档。以相同的方式,如果经由查询提供文档,且该请求是标识对相似文档感兴趣的其他用户,则作为查询响应,可以标识话题/关键词矩阵中包括相似的话题或关键词的各行,并且可以标识对应于这样的用户的各行。
除了如以上所描述的属性-话题矩阵之外,用于构建混合模型214的其他矩阵数据可以包括各种关系的用户-用户矩阵、各种关系的用户-内容矩阵、用户-属性矩阵、内容-关键词矩阵、关键词-关键词共同发生/共同位置(co-occurrence/co-location)矩阵等等。为了构建混合模型214,可以以适当的权重和正则化将联合矩阵因数分解应用到矩阵中的一些或全部,以便获得所有用户和内容的潜在表示,以及从用户属性映射到潜变量和从关键词映射到潜变量的变换矩阵。
在这一示例中,混合信息获取器504、混合信息剖析单元508和混合建模单元502以经常性的方式连续地离线运行,以便刷新混合数据档案216、混合模型214和关系档案510。一旦混合查询处理单元512接收到混合查询请求,例如,在新用户注册或第三方服务提供商发送请求时,则首先标识该类型的查询输入和所期望的查询结果。取决于查询输入和所期望的查询结果是用户、特征还是文档,由混合响应推荐引擎212选择混合查询模块514中的适当的处理器和混合响应模块516中的适当的单元,以便通过查找表(索引)或相似性检索做出推荐。
图6是根据本教导的一种实施例的混合查询引擎的示例性过程的流程图。从框602、604、606开始,分别取出与所有用户相关的用户信息、内容信息和活动信息并将其馈送到混合数据档案216。在框608,基于从混合数据档案216检索的连续地更新的混合信息,执行混合剖析。移动到框610,基于经刷新的混合信息,构建且连续地精化混合模型214。在框612、614、616,也以经常性的方式分别基于混合模型214执行基于用户的链接、基于特征的链接和基于文档的链接,以便在框618索引所推荐的用户、特征和文档,以供快速更新和检索。应注意,框602–618全部都离线执行,以便减少在推荐期间的延迟时间。现在移动到框620,一旦检测到现有用户在线,那么,通过遵循相应的索引,可以直接地基于当前混合模型和混合信息做出推荐。如果在线用户是新用户,则在框624新用户注册,以使得在框626系统可以建立新用户的离线用户简档,并且在框628基于新用户的简档执行混合剖析。
图7和图8是根据本教导的一种实施例的混合查询引擎的示例性混合数据档案的系统图。如以上所描述的,每一类型的混合信息可以被存储在混合数据档案216的九个子档案中的一个。子档案702、704、706存储用户信息。例如,可以由混合信息获取器504收集静态和动态用户信息,且将分别其存储在静态用户相关信息档案702和动态用户相关信息档案704中。已导出的用户相关信息档案706存储由混合信息剖析单元508导出的用户信息。在一个示例中,可以应用链接传播方法,以便基于社交图谱和用户活动(例如,关注,朋友)将名人的用户信息(例如,类别)传播给社交网络中的每一用户。可以通过社交网络中的关注者的数量来推断社会团体成员的名人状态。通常,可以推断社交网络中的用户的重要性,且具有显著数量的关注者的重要性用户的个人兴趣可以被用来推断关注者的兴趣。
子档案708、710、712存储内容信息。例如,可以由混合信息获取器504收集静态内容信息和动态内容信息,并将其存储在静态内容相关信息档案708和动态内容相关信息档案710中。已导出的内容相关信息档案712存储由混合信息剖析单元508导出的内容信息。在一个示例中,可以从具有已知话题的静态或动态内容导出具有相同的或相似的话题的内容。在另一示例中,可以从已知的静态或动态内容导出诸如对文章的评论或编辑等的关联内容。另外,活动信息档案714存储由混合信息获取器504提取的活动信息,且关键词信息档案716和话题信息档案718分别存储关键词和感兴趣的话题,它们是由混合信息剖析单元508从用户信息和内容信息导出的特征。
如上面所讨论的,可以应用交叉索引以便创建相对于各种混合信息的索引。例如,内容-用户索引链接文档和创建、喜爱、共享、转发、评论该文档的用户以及由混合模型214确定的可能对文档感兴趣的用户的列表。在另一示例中,内容-特征索引(例如,内容-关键词、内容-话题)链接文档及其所提取的关键词和已导出/已推断的话题。在又一个示例中,每一用户可以通过以<键,值>对的形式的基于用户索引链接到另一用户、特征(关键词、话题)或内容,其中该键是用户和该值是用户、特征和文档中的任何一种。连续地创建带有时间戳的混合数据档案216中的索引。基于混合信息和它们的索引,可以基于用户或文档创建静态和动态简档720、724。例如,用户的静态简档反映用户的一般属性,例如性别、种族、生日或长期兴趣,同时动态简档反映用户的短期属性,例如当前位置或短期兴趣。可以组合静态和动态简档720、724以便创建反映长期特征和短期特征两者的经合并的简档726。
如图中所示出8,可以由静态索引构建器802、动态索引构建器804和已导出索引构建器806创建带有标签的索引。可以以经常性的方式周期性地构建索引。然而,在任何两次运行中之间,可以将折叠方法应用到任何新的文档或用户,以便分别为它们构建增量索引或Δ索引。在需要推荐时,可以由经索引用户交叉检索器808、内容交叉检索器810或经索引活动交叉检索器812以最小值延迟时间执行通过遵循带有标签的适当索引的查找操作。然后,可以通过混合数据访问接口814从适当的子档案检索基于索引标识的所期望的查询结果。
图9是根据本教导的一种实施例的混合查询引擎的示例性混合信息获取器的系统图。可以由混合信息获取器504通过网络从任何内容源902动态地监视和检索混合信息。在这一示例中的内容源902包括但不限于社交网络站点(例如,Facebook、人人、QQ)、在线新闻源、在线游戏站点、在线购物站点、博客、微博(例如,Twitter、新浪微博)。
可以通过混合信息获取器504所采用的不同机制监视和收集不同类型的混合信息。在这一示例中,可以由web爬行器904收集用户相关的内容和用户简档,且可以由活动获取器906通过例如由每一内容源902提供的公共API 908监视用户活动。用户相关的活动可以包括将用户链接到内容或反映用户的兴趣的任何在线活动,例如浏览网站、点击广告、购买产品、关注企业实体或个体(例如,朋友)、评论、转发、喜爱或共享博客或微博条目、更新社交网络账户的状态等等。也可以由混合信息获取器504采用公共信息监视器910,以便通过公共API 908收集任何其他合适的公共信息。另外,混合信息获取器504可以包括用户/内容/活动过滤器/传播器912,它可以负责通过例如用户的活动和社交网络设置中的社交图谱来推断用户的兴趣。例如,用户/内容/活动过滤器/传播器912可以被配置为应用链接传播方法以便基于社交图谱和用户活动(例如,关注、朋友)将名人的标签(例如,类别)传播给社交网络中的每一用户。可以通过社交网络中的关注者的数量来推断社会团体成员的名人状态。一般地,可以推断用户在社交网络中的重要性,且具有显著数量的关注者的重要用户的个人兴趣可以用来推断关注者的兴趣。而且,如以上所描述的,经过用户授权,私有信息获取器914可以用来从诸如用户的社交网络账户等的内容源902收集私有数据。在这一示例中,基于由公共信息监视器910收集的公共信息和/或由私有信息获取器914访问的私有数据,收集用户的社交图谱。
为了将所监视的混合信息关联到正确的用户,混合信息获取器504可以采用基于用户的过滤器916,以便对于所收集的每一信息片段标识在该信息和正确的用户之间的对应关系。在这一示例中,用户/内容/活动过滤器/传播器912也可以负责减少将要保存的内容和活动的体积,以便以最小的丢失重要相关信息风险来最大化效率。可以根据某些准则执行所收集的数据的这样的体积减少。在一个示例中,可以过滤掉超过阈值时间周期的过期的内容或活动。在另一示例中,可以由用户/内容/活动过滤器/传播器912移除重复信息。混合信息获取器504也可以包括用户简档分析器918,其被配置为获得用户的登录信息,例如由新用户提供的属性或由现有用户更新的属性。如上所述,混合信息获取器504可以连续地运行,以便给混合数据档案216提供和更新动态用户信息和内容信息以及活动信息。
图10是根据本教导的一种实施例的混合查询引擎的示例性混合信息剖析单元的系统图。混合信息剖析单元508包括混合用户信息分析器1002、混合内容信息分析器1004和混合活动信息分析器1006。混合用户信息分析器1002被配置为分析诸如用户属性等的用户信息,并将它传播到混合数据档案216中的用户相关的子档案。混合内容信息分析器1004被配置为通过例如特征提取和解析和分析内容信息,将所提取的特征填充到混合数据档案216中的关键词和话题信息文件夹。混合活动信息分析器1006被配置为分析将用户链接到内容、将兴趣/关系指派给用户并他们链接到感兴趣的内容和特征(关键词/话题)的活动。混合信息剖析单元508也可以包括离线简档生成器1008、在线简档生成器1010和经合并简档生成器1012,以便基于如以上所描述的混合信息剖析分别创建离线、在线和经合并简档。
对于用户信息剖析或内容信息剖析,除了关键词、话题、属性等等,还存在潜变量。可以从对所有种类的关系的用户-用户矩阵、所有种类的关系的用户-内容矩阵、内容-关键词矩阵等等的联合矩阵因数分解例如奇异值分解导出潜变量。例如,用户属性矩阵中的用户属性和话题/关键词矩阵中的话题/关键词可以被一起聚类成并行话题/聚类。然后,矩阵因数分解可以被应用到这两种带有共享潜在用户简档矩阵的矩阵,其中每一行对应于具体用户的潜在简档,指示用户与每一话题/聚类的兴趣/同源关系。然后,可以应用折叠式推理以便基于用户属性或话题/关键词信息获得用户潜在向量。
图11(a)是根据本教导的一种实施例的混合信息剖析单元的示例性混合用户信息分析器的系统图。混合用户信息分析器1002包括基于用户的索引器1102、静态用户信息分析器1104、动态用户信息分析器1106和经导出用户信息生成器1108。基于用户的索引器1102负责对所有用户信息执行基于用户的索引。静态用户信息分析器1104和动态用户信息分析器1106分别负责分析离线和在线用户信息。诸如用户属性或用户偏好/感兴趣的话题等的用户特征可以由静态和动态用户信息分析器1104、1106获得,且由基于用户的索引器1102相对于混合数据档案216中的其他混合信息被索引。另外,基于所分析的静态或动态用户信息,由混合信息检索器1110从混合数据档案216检索关于内容、活动或特征的相关信息。然后,信息推理单元1112联合经导出用户信息生成器1108使用被检索相关的信息,以便基于预定义知识模型1114推断、导出或传播已知的信息,以便获得经导出的用户信息。然后,这样的经导出用户信息被存储回到与用户相关的混合数据档案216,且可以用来在关系档案510中提取和存储隐式或显式关系或兴趣。例如,通过分析用户的离线用户信息,静态用户信息分析器1104可以确定用户具有对篮球的长期兴趣。基于最近的社交网络状态更新,动态用户信息分析器1106还可以确定用户刚刚将他的当前位置改变成芝加哥。然后,信息推理单元1112可以推断用户可能对芝加哥的篮球队感兴趣。混合信息检索器1110可以检索与芝加哥的篮球队相关的混合信息,并将其相对于用户信息交叉索引。例如,可以将关于芝加哥公牛队的文章与用户索引起来,以便形成内容-用户索引,且可以相对于用户索引芝加哥公牛队的比赛以便形成用户-用户索引。在一个示例中,信息推理单元1112还可以标识用户从芝加哥的西北大学毕业,且因而导出该用户可能对西北大学的篮球而不是芝加哥公牛队更感兴趣。也与其他混合信息一起交叉索引这样的经导出用户信息,并将其存储回到混合数据档案216。
图11(b)是根据本教导的一种实施例的混合信息剖析单元的示例性混合内容信息分析器的系统图。混合内容信息分析器1004包括内容-特征交叉索引器1120、静态内容信息分析器1122、动态内容信息分析器1124和经导出内容信息生成器1126。内容-特征交叉索引器1120负责执行内容-特征交叉索引。静态内容信息分析器1122和动态内容信息分析器1124分别负责分析离线和在线内容信息。诸如关键词或话题等的内容特征可以由静态和动态内容分析器1122、1124获得,且可以由内容-特征交叉索引器1120索引。另外,基于经分析的静态或动态内容信息,可以从混合数据档案216检索关于用户(例如,也阅览刚才分析的内容的其他用户)、活动(例如,相同的用户或共享与所讨论的用户共享相同的兴趣的其他用户的既往活动)或特征的相关信息,以便由特征提取器1128联合特征档案/索引器1130基于语言模型1132推断、导出或传播已知的信息,以便获得经导出内容信息,例如相关的内容、相同的作者关于相同的话题的内容、由其他人转发的关于相同的话题的内容、或者从与所讨论的用户共享相同的兴趣的另一用户所转发的链接检索的内容。然后,将这样的经导出内容信息存储回到与用户相关的混合数据档案216。
图11(c)是根据本教导的一种实施例的混合信息剖析单元的示例性混合活动信息分析器的系统图。混合活动信息分析器1006包括基于活动的索引器1140、活动信息分析器1142、动态活动信息分析器1144和用户/兴趣标识器1146。基于活动的索引器1140负责对所有混合信息执行基于活动的索引。活动信息分析器1142和动态活动信息分析器1144分别负责分析既往活动信息和动态活动信息。基于经分析的既往活动信息或动态活动信息,可以由混合信息检索器1148从混合数据档案216检索关于相同的用户(例如,也阅览刚才分析的、并且已知的与所讨论的用户共享关于该话题的相同兴趣的其他用户的反应)或者相同的用户或也具有与当前用户相同的简档的其他用户的既往活动的相关信息,以便由活动相关性评估单元1150基于行为相关性准则1152推断、导出或预测当前用户可能采取的可能动作。这种所预测的动作可以被用来与实际的动作(以后收集)比较,且可以利用差异来精化混合推荐模型。然后,将这样的所预测的活动存储回到与用户相关的混合数据档案216,且可以用来在关系档案510中提取和存储隐式或显式关系或兴趣。如以上相对于图3(a)和图3(b)所讨论的,活动信息以及诸如用户或内容信息等的其他混合信息可以由用户/兴趣标识器1146用来标识隐式用户关系或兴趣。
图12是根据本教导的一种实施例的混合查询引擎的示例性混合建模单元的系统图。在这一示例中的混合建模单元502包括用户表征模块1202和建模模块1204。在这一示例中的用户表征模块1202包括三个单元,每一个负责处理一种类型的混合信息。混合信息中的用户相关的内容和用户活动分别由用户相关内容表征单元1208和用户活动表征单元1210表征,且被转换成话题/关键词信息(例如,由话题/关键词矩阵表示)。用户简档(属性)由用户信息表征单元1206表征,且被用户信息表征单元1206转换成用户特征信息(例如,由用户属性矩阵表示)。用户特征信息和话题/关键词信息两者被馈送到建模模块1204,以便生成混合推荐模型214。如上所述,可以由混合信息获取器504动态地收集和监视用户简档和用户相关的内容和活动。另外,每一新用户在就注册到系统时可以通过用户登录模块506(在这里未示出)提供基本用户简档。
建模模块1204被配置为基于话题信息和从用户表征模块1202馈送的用户特征信息建立混合模型214,例如从用户映射到感兴趣的话题的模型。在这一示例中,可以基于表示关于所有现有用户的用户特征的用户属性矩阵和表示关于现有用户的话题/关键词的话题/关键词矩阵建立该模型。应注意,可以以减少用户属性矩阵或话题/关键词矩阵的维数的方式选择要馈送到建模模块1204的信息,以使得计算上有竞争力。这样的所选择的信息在选择的时候可以是最相关的。鉴于用户的环境的兴趣或上下文可以随时间改变这一事实,仍然存储其他所收集的数据,以使得在需要时可以检索某些信息,且在例如模型需要彻底精化时使用这些信息。例如,随着时间推移,用户的兴趣可以改变。在用户没有选择所推荐的内容时可以观察到这一点。在这种情况中,可以从话题/关键词矩阵移除与这样的未经选择的内容相关联的话题,并且可以检索新的兴趣以便代替陈旧的兴趣。应理解,由于大量的关键词数据,通常减少内容特征矩阵的维度。是否应当执行降维是逐个情况而做出的设计选择。
图13(a)是根据本教导的一种实施例的用户表征模块的示例性用户信息表征单元的系统图。用户信息表征单元1206可以包括用户属性分析单元1302、用户属性分类单元1304和用户属性量化单元1306。用户属性分析单元1302负责从所接收的用户简档提取基本用户属性。由用户属性分析单元1302提取的特征可以被表示为每一用户的特征向量,且所有特征向量可以直接地保存在特征数据库1308中而无需任何降维处理。换句话说,在这一示例中,特征数据库1308以特征向量的原始维度来存储特征向量。用户信息表征单元1206生成用户特征信息,用户特征信息可以被表示为m×n矩阵,且各行对应于用户,且各列对应于以降低的维度的用户特征。为了减少计算复杂度,相比于被存储在特征数据库1308中的特征向量的原始维度,矩阵中的用户特征向量的维度可以由用户属性分类单元1304和用户属性量化单元1306减少。
用户属性分类单元1304被配置为基于其值与感兴趣的内容的相关性(即,预定义特征分类配置1310)导出每一用户的分类特征。在一个示例中,对于“城市”属性可以由用户特征分类单元1304导出各种特征,例如它是否来自诸如北京、上海等的一级城市、该城市的因特网渗透率等等。在另一示例中,对于“大学/系”属性,所导出的特征可以包括该系是技术、艺术还是科学、大学的等级等等。用户特征量化单元1306被配置为根据数据分析将每一特征量化成值范围,即预定义的特征量化配置1312。在一个示例中,对于“生日”属性,它可以被用户特征量化单元1306量化成预定义的年龄组,例如20+、40+、60+等等。而且,可以量化“生日”属性以便导出两个其他特征:星座和中国生肖。基于占星术和数字命理学,基于他的/她的星座和中国生肖,可以推断出诸如用户的个性等的特征,这些特征还可以与其他特征组合,以便推断用户的可能社会角色和感兴趣的话题。在又一个示例中,统计的数据驱动的方法可以被应用到特征量化。例如,话题可以被看作是标签,且属性在它们的真值方面可以被认为是特征,然后,根据决策树分类器中的每一属性的截止值,可以从数据获取有效特征量化。最终,输出以降低的维度的用户特征向量。如上所述,用户特征向量包括从用户的离线信息提取的特征(其反映用户的长期和共同的兴趣)、表示用户的属性(例如,性别、年龄)的特征(这对于不活跃用户来说尤其有用)以及在每个用户登录的运行时从在线用户信息提取的特征(其反映用户的短期兴趣)。
图13(b)是根据本教导的一种实施例的用户信息表征单元的示例性过程流程图。从框1320开始,由用户信息表征单元1206接收混合用户信息,无论它是在线信息还是离线信息。然后,在框1322由用户属性分析单元1302分析用户信息以便提取原始用户简档。在框1324,原始用户简档可以被归档在特征数据库1308中以供将来使用,例如模型精化。进行到框1326,可以分类用户特征以便基于预定义特征分类配置导出特征。在框1328,还可以相对于预定义特征量化配置来量化分类用户特征,以便减少用户特征向量的维度。最终,在框1330,由用户信息表征单元1206生成具有降低的维度的用户特征信息。
图14(a)是根据本教导的一种实施例的用户表征模块的示例性用户相关内容表征单元和用户活动表征单元的系统图。用户相关内容表征单元1208和用户活动表征单元1210负责生成指示每一用户的兴趣简档的话题/关键词信息。话题/关键词信息可以被表示为m×h话题/关键词矩阵,且各行对应于用户,且各列对应于以降低的维度的话题/关键词。
用户相关内容表征单元1208可以包括用户内容分析器1402,其负责执行基于语言模型1404和词汇表1406从混合内容信息选择关键词,并将所提取的关键词存储在用户关键词存储1408中。如以上所描述的,内容信息可以是由用户消费或贡献的任何在线或离线内容,例如新闻、文章、事件、博客、社会更新等等。用户内容分析器1402可以应用任何已知的语言模型,以便从内容提取关键词和/或标识感兴趣的话题,例如通过文本分类中的特征选择方法,例如文档频率(一个词在语料库中的多少个文档中发生)、互信息、信息增益、卡方(chi-square)等等。所有那些特征选择方法可以帮助相对于来自用户相关的动态内容的任何预定义的类别(感兴趣的话题)从各种候选关键词选择最具指标性的关键词或关键短语。
用户活动表征单元1210可以包括用户活动分析器1410,其负责基于活动上下文信息和话题层次结构1412分析用户的活动信息。可选地,所有已收集的用户活动可以被存储在活动存储1414以供将来使用。活动上下文信息指示每一用户活动的上下文,例如活动发生的时间、活动发生的地点等等,在聚集不同的用户活动时,它们可以具有不同的权重。另外,按照惯例,诸如“点击”等的用户动作被看作是典型的活动。在这一示例中,也可以观察到“转发”且可以用来推断兴趣的活动。活动将内容链接到动作,且这样的活动反映用户对内容的兴趣。不同的活动可以不同地对该兴趣加权。例如,如果用户点击文档,可以反映用户喜爱该内容的事实。如果活动是“转发”,则这种动加权得更多,即,存在与用户相关联的更强的喜爱程度,例如,“非常喜爱它”。此外,如果用户甚至对该内容进行评论(另一活动),则可以指示用户十分喜爱该内容,这是因为用户主动参与贡献该内容的外围。
用户活动表征单元1210也可以包括话题/关键词确定器1416,其被配置为基于用户活动、从用户关键词存储1408提取的关键词和话题层次结构1412确定感兴趣的话题。在一个示例中,在一个示例中,可以由任何已知分类器根据话题层次结构1412中的相同分类学(taxonomy)将活动和关键词分类在预定义的话题下。例如,可以通过加权线性组合将与相同的用户相关的活动和关键词聚集成单个话题向量。除了显式兴趣之外,如上所述,每一用户的感兴趣的话题也可以通过社交网络设置中的话题传播方法推断为隐式兴趣。所确定的感兴趣的话题可以被表示为每一用户的真值向量(即,相对于关键词和话题的权重的向量),且以它们的原始维度存储在内容特征数据库1418中。为了减少话题/关键词矩阵的中的话题/关键词的维度,话题/关键词降维单元1420可以与预定义的减少激进配置(reduction aggressiveness configuration)1422联合应用。在一个示例中,可以应用文本分类中的已知特征选择方法以便计算每一<话题,关键词>对的分数。然后,使用这些分数来分级每一话题的所有关键词。通过设置关于分数或为每一话题所选择的关键词的数量的阈值,可以减少话题向量的维度。例如,诸如“足球”、“篮球”、“迈克尔·乔丹”、“NBA”等的关键词可以被看作是“运动”话题的最具指标性的关键词,且因而被包括在话题/关键词矩阵中。
图14(b)是根据本教导的一种实施例的用户相关内容表征单元和用户活动表征单元的示例性过程的流程图。在框1430,由用户相关内容表征单元1208接收混合内容信息。在框1432,分析所接收的内容以便基于语言模型和词汇表提取关键词。然后,在框1434由例如统计分类器估计与所接收的混合内容信息相关的感兴趣的话题。在框1436,也由用户活动表征单元1210接收用户活动信息。在框1438,分析所接收的活动,并且在框1440确定它们的性质,例如活动是支持还是反对话题。在框1442,基于所估计的话题和所确定的活动的性质,可以标识隐式的感兴趣的话题(例如,支持或反对话题)。进行到框1444,与每一用户相关联的所有已标识的话题,无论是显式的还是隐式的,都可以被归档在话题/关键词数据库1418中。在框1446,可以执行降维以便减少话题/关键词矩阵中的话题的维度。最终,在框1448,由用户相关内容表征单元1208和用户活动表征单元1210生成具有降低的维度的话题信息。
图15(a)是根据本教导的一种实施例的示例性建模模块的系统图。在这一示例中,建模模块1204包括初始建模单元1502、模型合并单元1504和模型精化单元1506。初始建模单元1502被配置为例如基于现有用户的用户属性矩阵和话题/关键词矩阵向混合响应推荐模块1508提供初始模型。在这一示例中,建模模块1204还包括用户属性矩阵生成器1510和话题/关键词矩阵生成器1512。如上所述,用户表征模块1202可以分别负责提供用户特征信息和话题/关键词信息中的用户属性矩阵和话题/关键词矩阵。在这一示例中,建模模块1204可以采用降维单元1514以便减少分别以它们的原始维度存储在用户特征数据库1516和话题/关键词数据库1518中的特征向量和话题向量的维度。然后,用户属性矩阵生成器1510和话题/关键词矩阵生成器1512分别组合所有现有用户的用户特征向量和话题/关键词向量,以便生成用户属性矩阵和话题/关键词矩阵。
模型合并单元1504被配置为通过连续地将每一新用户的信息(例如,新用户简档、所估计的感兴趣的话题)附加到现有模型的用户属性和话题/关键词矩阵生成合并模型。假定在线活动连续地发生和改变,则模型精化单元1506负责基于动态用户相关的内容和活动动态地精化混合推荐模型214,并表征用户特征和感兴趣的话题。另外,在所估计的话题和实际的用户所选择的内容之间的差异可以由模型精化单元1506用来调整当前的推荐模型。应注意,用户选择还是不选择所建议内容的片段是用户或用户的活动的动态行为的一部分。可以总是将最新的混合模型提供给话题估计模块412,以便实现话题刺激(topicsstimulation)。
除了上述的用户属性矩阵和话题/关键词矩阵之外,可以通过联合矩阵因数分解例如奇异值分解从各种矩阵导出潜变量,包括所有种类的关系的用户-用户矩阵、所有种类的关系的用户-文档矩阵、文档-关键词矩阵、用户-关键词矩阵(例如,从用户自标签提取(self-tag),且明确订阅的关键词)等等。
通过用户属性矩阵和话题/关键词矩阵,可以导出各种关系。例如,通过联合矩阵因数分解,通过标识具有相似的属性和兴趣的用户(通过标识两个矩阵中的各行相似),可以推断用户到用户的关系。例如,用户属性矩阵中的相似的行对应于具有相似的属性的用户。话题/关键词矩阵中的相似行对应于共享相似兴趣的用户。两个矩阵中相似的用户可以是属性上相似且共享共同兴趣的那些。经由那些矩阵,可以标识隐式地相关的两个用户,例如,尽管从不会面且从不通信但仍然经由共同兴趣相关的用户。基于这样的矩阵,可以构建反映在用户之间关系(无论是显式还是隐式)的用户-用户矩阵。举例来说,对于任何用户,可以借助于对应于被认为是与该用户相关的其他用户的隔行构建矩阵。那些被标识为相关的用户可以是用户向朋友发送或转发文章、文档或特定话题的任何其他信息的那些人。那些朋友清楚地或明确地与该用户相关。反过来,被标识为与该用户相关的用户可以是向该用户发送或共享内容的那些用户。那些用户是是明确地相关的用户且可以通过所监视的用户活动来标识。同时,通过标识用户属性矩阵中的相似的行,由于具有相似的属性,可能彼此不认识的用户可以被标识为隐式地相关。另外,通过检测话题/关键词矩阵中的相似的行,可以标识可能彼此根本不认识的、共享共同兴趣的用户。彼此还不认识但被标识为相似的这样的用户隐式地相关,且可以被添加到用户-用户矩阵,以便记录所有可能的、显式的或隐式的相关用户。在这个矩阵中,对于每一对关系,比如说在第一用户第二用户之间的关系,可以标记它们如何相关。例如,用户-用户矩阵的各列可以对应于属性、不同的话题/关键词、或社会连接,例如经由不同的社会团体。通过那些装置,可以标识明确地或隐式地与具体的用户相关的人,且可以将这样的信息合并在用户-用户矩阵中,该矩阵将允许任何类型的用户到用户查询。
类似地,也可以明确地构建用户-文档矩阵。例如,对于每一用户,可以将用户明确地访问的任何文档包括在这样的矩阵中。另外,也可以包括可以经由隐式关系推断的文档。例如,如果存在被认为是与用户相关(例如在某些共享的兴趣方面)的其他用户,也可以将那些其他用户所访问的任何文档包括在用户-文档矩阵中,带有例如关于该文档的源以及它如何相关的指示。对于这样的文档中的每一个,可以记录一些表征例如话题,以便促进用户到文档推荐。经常调整这种矩阵。可以移除在一段时间内不访问的文档或用户明确地拒绝的文档。基于所监视的在线活动,可以添加新的文档。以这种方式,向用户推荐的内容可以保持新鲜和最新。
此外,也可以构建附加的矩阵以便组织所收集或观察的海量信息。例如,可以构建文档-关键词矩阵,其中对于每一文档,基于文档中的词的重要性,可以提取各种关键词,如先前所讨论的。可以使用任何已知的技术做出这一点。这样的矩阵中的每一文档可以具有交叉索引到比如说用户-文档矩阵中引用的文档。类似地,用户-文档矩阵中的每一用户可以被交叉索引到用户-用户矩阵中所列出的用户。以这种方式,每一矩阵中的信息针对特定映射,但是通过跨越不同的矩阵的交叉索引,可以挖掘并导出复杂的关系和附加的信息。
图15(b)是根据本教导的一种实施例的建模模块的示例性模型精化单元的系统图。在这一示例中,模型精化单元1506包括差异检测器1520、精化模式确定器1522、用户子群过滤器1524、基于时间的兴趣过滤器1526、基于的位置兴趣过滤器1528、矩阵更新单元1530和模型精化器1532。如上所述,可以由差异检测器1520检测和分析在所估计的话题和实际的用户所选择的话题之间的差异。取决于差异的程度,精化模式确定器1522负责决定实施模型精化的模式。在一个示例中,如果差异低于阈值,则可以选择渐进的精化模式。然后,基于动态监视的用户信息,矩阵更新单元1530更新用户属性矩阵和话题矩阵。在另一示例中,如果差异高于阈值,这意味着所估计的感兴趣的话题不是用户期望的内容,则可以使用话题/关键词矩阵重新映射单元1534,以便通过将所估计的话题从话题/关键词矩阵交换出去来更新话题/关键词矩阵。
在又一个示例中,可以应用带有子模型的层次模型以便进一步精化混合推荐模型214。例如,可以由基于时间的兴趣过滤器1526和基于位置的兴趣过滤器1528应用基于不同的时间帧或位置的层次模型,以便仅收集每一用户的落在特定时间帧的用户相关的内容和活动。例如,当在线时,工作日和周末/夜晚时候的用户可以具有不同的感兴趣话题。取决于需要做出推荐的时间,每一用户的子模型可以被分割成这样的时间帧并这样使用。类似地,可以由用户子群过滤器1524应用基于用户子群的子模型,以便仅收集特定的子群中的用户的内容和活动。更多相似的用户可以被分组在一起,以便更精确地建模这一子群的兴趣。由用户子群过滤器1524、基于时间的兴趣过滤器1526或基于位置的兴趣过滤器1528应用的层次模型可以被馈送到矩阵更新单元1530,以便引起模型精化器1532调整混合推荐模型214。例如,如上所述,初始模型可以被分割成相对于时间或用户的子模型。模型精化器1532还可以生成各子模型的子矩阵的集合,并使用新的子矩阵建立推荐模型。
图15(c)是根据本教导的一种实施例的建模模块的示例性过程的流程图。从框1540开始,由建模模块1204接收用户特征信息和话题信息。在框1542,基于所接收的用户特征信息和话题/关键词信息生成用户属性矩阵和话题/关键词矩阵。然后,在框1544使用用户属性矩阵和话题/关键词矩阵建立推荐模型。进行到框1546,由模型精化单元1506连续地监视和接收诸如动态用户相关的内容和用户活动等的动态用户在线行为信息。在框1548,确定用于精化推荐模型的模式。如果选择了渐进的精化模式,则在框1550,由模型精化单元1506使用动态地更新的用户信息更新用户属性矩阵和话题/关键词矩阵。如果在框1552由当前的推荐模型提供的所估计的感兴趣的话题被视为是不期望的,则在框1554可以使用下一最佳话题更新话题/关键词矩阵。否则,可以应用层次模型以便调整当前的推荐模型。在框1556,当前的推荐模型可以被分割成相对于时间、位置或用户的子模型。在框1558,可以为所分割的子模型生成用户属性子矩阵和话题子矩阵的新集合。最终,在框1560,可以使用用户属性子矩阵和话题子矩阵的新集合来建立经精化的推荐模型。
图16是根据本教导的一种实施例的混合查询引擎的示例性混合响应推荐引擎的系统图。如以上所描述的,可以由混合响应推荐引擎212中的相应推荐单元基于混合推荐模型214执行九向查询-结果匹配(nine-way query-result matching)。在这一示例中,每一推荐单元可以通过遵循适当的索引执行查找操作。在一个示例中,如果请求基于用户的查询以搜索其他相关的用户,则用户-用户推荐单元可以基于相对于查询输入中的用户的索引尤其是用户-用户索引来执行查找操作。如以上所描述的,每一索引上可以具有一个标签,该标签在搜索和推荐期间促进查找操作。对于用户-用户索引,该标签可以是例如“共享显式或隐式共同兴趣”、“处于相同的社会团体”等等。在另一示例中,如果请求基于文档的查询搜索用户,那么,通过遵循带有诸如“对相同的文档有贡献”或“可能对文档的话题感兴趣”等等的标签的适当的文档-用户索引,文档-用户推荐单元可以执行查找操作。基于索引的操作可以极大减少用于推荐的延迟时间,这是由于连续地离线执行所有索引操作,且存储了索引以便实现快速检索。为了平衡延迟时间和精度,应注意,可以利用包括当用户在线时从用户的私有数据捕捉的在线用户信息、内容信息和活动信息的在线混合信息来实时调整基于索引获得的查询结果。换句话说,实时、特定的上下文信息可以影响提供给用户的最终查询结果。在一个示例中,用户-用户推荐单元可以基于用户-用户索引将若干相关的用户标识为用户到用户查询的可能查询结果。然而,在线用户活动信息指示用户刚刚停止关注其社交网络中的相关用户中的一个。在这种情况中,混合响应推荐引擎212可以通过实时移除该用户来调整查询结果。
图17是根据本教导的一种实施例的混合响应推荐引擎的示例性过程的流程图。从框1702开始,由混合响应推荐引擎212接收与混合查询相关联的请求。根据关于用户、特征和文档中的一种的输入以及关于用户、特征和文档中的一种的所期望的混合查询结果来表示混合查询。在框1704,确定在输入和所期望的混合查询结果之间的映射。然后,在框1706检索基于所收集的并且与一个或多个用户相关联的混合信息所建立的混合模型。进行到框1708,基于该混合模型执行映射,以便基于输入获得所期望的混合查询结果。最终,在框1710,提供所期望的混合查询结果以作为对混合查询的响应。
图18(a)和图18(b)描绘根据本教导的不同实施例在其中执行混合信息查询的高层次示例性系统配置。在图18(a)中,示例性系统1800包括混合查询引擎1802、内容入口1804、用户1806、网络1808和内容源1810。网络1808可以是单个网络或不同网络的组合。例如,网络1808可以是局域网(LAN)、广域网(WAN)、公共网络、私有网络、专有网络、公共电话交换网络(PSTN)、因特网、无线网络、虚拟网络或其任何组合。网络1808也可以包括各种网络接入点,例如有线或无线接入点,例如基站或因特网交换点1808-a、…、1808-b,数据源可以通过其连接到网络以便经由网络发射信息。
用户1806可以属于不同类型,例如经由桌面型连接(1806-d)连接到网络1808的用户、经由无线连接(例如通过膝上型计算机(1806-c)、手持式设备(1806-a)、或汽车中的内建设备(1806-b))连接到网络1808的用户。用户1806可以经由网络1808将与混合信息查询相关联的请求和用户信息发送给内容入口1804(例如,搜索引擎、社交网络站点等等),并通过网络1808从内容入口104接收所推荐的混合响应。在这一示例中的混合查询引擎1802可以充当后端支持,以便基于来自用户1806的请求中的混合查询将所期望的混合查询结果提供给内容入口1804。即是说,在这一示例中,内容入口1804可以是将混合查询引擎1802用作供应方(Vendor)以便处理用户请求中的混合信息查询的实体。来自内容入口1804的请求包括来自用户1806的混合查询,而来自混合查询引擎1802的结果在输出上传送给内容入口1804。
内容源1810包括多个内容源1810-a、1810-b、…、1810-c。内容源可以对应于由实体主控的web站点,无论是个人、企业或诸如USPTO.gov等的组织、诸如cnn.com和Yahoo.com等的内容提供商还是诸如tweeter或博客等的内容输入源。混合查询引擎1802和内容入口1804两者可以访问来自内容源1810-a、1810-b、…、1810-c中的任何的信息,以便获得动态与用户相关的混合信息1806。例如,混合查询引擎1802可以监视和收集来自内容源1810的动态用户相关的内容和活动以及用户简档,并将该信息用作连续地更新推荐模型以便提供最新混合查询结果的基础。
图18(b)呈现与图18(a)中所示出的类似的系统配置,但有以下不同:混合查询引擎1802现在被配置成独立的服务提供商,其直接与用户1806交互,以便以提供混合信息查询服务。在示例性系统1812中,混合信息推荐102可以接收带有来自用户1806的基本信息和/或与用户1806相关联的动态内容的请求,并直接将所期望的混合查询结果提供给用户1806,而不经过第三方内容入口1804。
为了实现本教导,计算机硬件平台可以被用作在此描述的元素中的一个或多个的硬件平台。这样的计算机的硬件元件、操作系统和编程语言本质上是常规的,且假设本领域中的技术人员对其充分熟悉,以便使用那些技术来基本上实现如在此所描述的DCP处理。带有用户界面元件的计算机可以被用来实现个人计算机(PC)或其他类型的工作站或终端设备,但如果经过适当地编程,计算机也可以充当服务器。相信本领域中的技术人员熟悉这样的计算机设备的结构、编程和一般操作,且作为结果,附图应该是不言自明的。
图19叙述可以在其上实现本教导的通用计算机架构,且具有包括用户界面元件的计算机硬件平台的功能框图阐释。该计算机可以是通用计算机或专用计算机。这种计算机1900可以被用来实现如在此所描述的混合信息查询架构的任何组件。系统200的不同组件可以全都经由其硬件、软件程序、固件或其组合在诸如计算机1900等的一个或多个计算机上实现。尽管仅示出了一个这样的计算机,为方便起见,可以在多个相似平台上以分布方式实现涉及混合信息查询的计算机功能,以便分散处理负载。
例如,计算机1900包括被连接为去往和来自网络的通信端口1902,网络连接到其上以便促进数据通信。计算机1900也包括以一个或多个处理器的形式的中央处理单元(CPU)1904,用于执行程序指令。示例性计算机平台包括内部通信总线1906、不同形式的程序存储和数据存储例如盘1908、只读存储器(ROM)1910或随机存取存储器(RAM)1912,以用于要由计算机处理或通信的各种数据文件以及可能要由CPU 1904执行的程序指令。计算机1900也包括I/O组件1914,支持在计算机1900和其中的其他组件例如用户界面元件1916之间的输入/输出流。计算机1900也可以经由网络通信接收编程和数据。
因此,可以以编程实现上面叙述的混合信息查询的方法的各方面的各方面方法。本技术的各程序方面可以被认为是可以被认为是通常以在机器可读介质上携带或在其中实现的可执行代码和/或关联数据的形式的“产品”或“制品”。有形非暂态“存储”类型介质包括存储器或用于计算机、处理器等等或其关联模块的其他存储中的任何或全部,例如各种半导体存储器、磁带驱动器、盘驱动器等等,它们可以在任何时候为软件编程提供存储。
有时可以通过诸如因特网或各种其他电信网络等的网络传输软件的全部或部分。例如,这样的通信可以允许将来自一个计算机或处理器的软件加载到另一计算机或处理器。因而,可以承载软件元件的另一介质包括光、电和电磁波,例如在本地设备之间的跨越物理接口、通过有线和光缆网络以及在各种空中链路上而使用的。携带这样的波的物理元素例如有线或无线链路、光链路等等也可以被看作是承载软件的介质。除非限于有形“存储”介质,否则在此所使用的诸如计算机或机器“可读介质”等的术语是指参与向处理器提供指令以供执行的任何介质。
因此,机器可读介质可以采取多种形式,包括但不限于有形存储介质、载波介质或物理传输介质。非易失性存储介质包括例如光盘或磁盘,例如任何计算机中的存储设备中的任一种或类似物,它们可以被用来实现附图中所示出的系统或其组件中的任一个。易失性存储介质包括动态存储器,例如这样的计算机平台的主存储器。有形传输介质包括同轴电缆、铜线和光纤,包括在计算机系统内形成总线的线路。载波传输介质可以采取电或电磁信号或者声波或光波(例如在射频(RF)和红外(IR)数据通信期间所生成的那些)的形式。因此,计算机可读介质的一般形式包括例如:软盘、柔性盘、硬盘、磁带、任何其他磁介质、CD-ROM、DVD或DVD-ROM、任何其他光学介质、打卡纸带、具有打孔图案的任何其他物理存储介质、RAM、PROM和EPROM、闪速EPROM、任何其他存储器芯片或盒式磁带、传输数据或指令的载波、传输这样的载波的电缆或链路、或计算机可以从中读取编程代码和/或数据的任何其他介质。这些形式的计算机可读介质中的多种可以参与向处理器传送一个或多个序列的一个或多个指令以供执行。
本领域中的技术人员将认识到,本教导适合于各种修改和/或改进。例如,尽管可以在硬件设备中实施以上所描述的各种组件的实现,但它也可以是被实现为仅有软件的解决方案。另外,在此公开的系统的组件可以被实现为固件、固件/软件组合、固件/硬件组合或硬件/固件/软件组合。
虽然前面已经描述了被认为是最佳的模式和/或其他示例,但应理解,其中可以做出各种修改,且在此公开的主题可以以各种形式和示例实现,且本教导可以在众多应用中应用,在此仅描述了这些应用中的一些。所附权利要求旨在要求保护落入本教导的真实范围内的任何及所有应用、修改和变更。