组推荐的虚拟助理生成的制作方法

文档序号:14910628发布日期:2018-07-10 23:18阅读:180来源:国知局

本申请涉及组推荐的虚拟助理生成。



背景技术:

一些计算设备可以提供用户接口,用户可以从该用户接口与虚拟计算助理(例如,也称为“智能助理”或简称为“助理”)进行聊天、说话或以其他方式通信,以使助理响应用户的需求输出有用的信息,或以其他方式执行某些操作来帮助用户完成各种现实世界的或虚拟的任务。一些助理可以执行操作以同时帮助用户组,例如基于组成员的偏好来向用户组提供推荐。



技术实现要素:

总的来说,本公开的技术可以使与组的用户相关联的虚拟的计算助理(例如,也称为“智能助理”或简称为“助理”)能够基于用户的私人信息为组提供推荐,而不向组的其他用户披露各个用户的私人信息。例如,计算助理可以基于用户的可用信息(例如,用户的公开信息或用户已经同意可用于推荐生成的信息)生成原始推荐列表。虽然原始推荐列表可能是该组用户普遍感兴趣的,但该组的一个或多个个人用户可能会有同意或反对某些推荐的私人偏好。因此,如果助理可以在生成推荐时访问指示私人偏好的用户的私人信息,那么原始推荐列表可能对该组更有意义。然而,可能不希望与特定用户相关联的助理访问另一私人信息和另一个用户的私人偏好。

根据本公开的一种和多种技术,每个相应的助理可以基于其相关联的用户的私人信息来评价来自原始列表的推荐,以便包括在精简的推荐列表中。如果其相关联的用户的相应私人信息指示相关联的用户对该推荐具有否定偏好,则每个相应的助理可以确定不包括(即,敲除)精简的列表中的推荐。然后,助理可以向用户呈现(即,显示或以其他方式输出)精简的列表。这样,相应的助理可以提供更高质量的组推荐,其考虑到组中每个用户的个人偏好,同时仍然保护其相关用户的私人信息的隐私。

在一个示例中,一种方法包括:响应于接收到为一组用户进行推荐的请求,并且基于该组的用户的第一隐私级别数据,生成用于该组的原始推荐列表。在该示例中,该方法还包括:由与该组的用户相关联的相应计算助理基于该组的用户的相应的第二隐私级别数据来评价来自推荐的原始列表的推荐以包括在用于该组的精简的推荐列表中,其中,第二隐私级别比第一隐私级别更受限制。在该示例中,该方法还包括响应于精简的推荐列表包括至少一项推荐而输出精简的推荐列表用于向组的用户呈现。

在另一示例中,一种计算设备包括:至少一个处理器;以及包括指令的至少一个存储器,所述指令在被执行时使得所述至少一个处理器提供助理,该助理被配置为:响应于接收到为一组用户进行推荐的请求并且基于该组的用户的第一隐私级别数据而生成用于该组的原始推荐列表;向与组的用户相关联的相应的计算助理输出原始推荐列表;从与组的用户相关联的相应的计算助理并且基于该组的用户的相应的第二隐私级别数据接收是否应将来自原始推荐列表的推荐包括在用于该组的精简的推荐列表中的指示,其中第二隐私级别比第一隐私级别更受限制;以及响应于精简的推荐列表包括至少一项推荐而输出精简的推荐列表以呈现给该组的用户。

在另一示例中,一种存储指令的非暂时性计算机可读存储介质,所述指令在被执行时使得计算设备的一个或多个处理器:响应于接收到为一组用户进行推荐的请求并且基于该组的用户的第一隐私级别数据而生成用于该组的原始推荐列表;向与组的用户相关联的相应的计算助理输出原始推荐列表;从与组的用户相关联的相应的计算助理并且基于该组的用户的相应的第二隐私级别数据接收是否应将来自原始推荐列表的推荐包括在用于该组的精简的推荐列表中的指示,其中第二隐私级别比第一隐私级别更受限制;以及响应于精简的推荐列表包括至少一项推荐而输出精简的推荐列表以呈现给该组的用户。

一个或多个示例的细节在附图和下面的描述中阐述。本公开的其它特征、目的和优点将从描述和附图以及权利要求显而易见。

附图说明

图1是示出根据本公开的一个或多个方面的执行示例虚拟助理的示例系统的概念图。

图2是示出根据本公开的一个或多个方面的示例计算设备的框图,该计算设备被配置为执行示例虚拟助理。

图3是示出根据本公开的一个或多个方面的示例计算系统的框图,该计算系统被配置为执行示例虚拟助理。

图4是示出根据本公开的一个或多个方面的由执行示例虚拟助理的一个或多个处理器执行的示例操作的流程图。

图5是示出根据本公开的一个或多个方面的由执行示例虚拟助理的一个或多个处理器执行的示例操作的流程图。

具体实施方式

图1是示出根据本公开的一个或多个方面的执行示例虚拟助理的示例系统的概念图。图1的系统100包括助理服务器系统160,其经由网络130与搜索服务器系统180和计算设备110A-110N(统称为“计算设备110”)通信。虽然系统100被示出为分布在助理服务器系统160、搜索服务器系统180和计算设备110之间,但是在其它示例中,属于系统100的特征和技术可以由计算设备110的本地组件在内部执行。类似地,助理服务器系统160可以包括某些组件并且执行在以下描述中本来归于搜索服务器系统180和/或计算设备110的各种技术。

网络130表示用于在计算系统、服务器和计算设备之间传输数据的任何公共或专用通信网络,例如蜂窝、Wi-Fi和/或其他类型的网络。助理服务器系统160可以经由网络130与计算设备110的计算设备交换数据,以提供当计算设备110连接到网络130时计算设备110可访问的虚拟助理服务。助理服务器系统160可以经由网络130与搜索服务器系统180交换数据以访问由搜索服务器系统180提供的搜索服务。计算设备110可以经由网络130与搜索服务器系统180交换数据以访问由搜索服务器系统180提供的搜索服务。

网络130可以包括一个或多个网络集线器、网络交换机、网络路由器或任何其他网络设备,其可操作地相互联接,从而提供在服务器系统160和180与计算设备110之间的信息交换。计算设备110、助理服务器系统160和搜索服务器系统180可以使用任何合适的通信技术来跨网络130发送和接收数据。计算设备110、助理服务器系统160和搜索服务器系统180可以各自使用相应的网络链路可操作地联接到网络130。将计算设备110、助理服务器系统160和搜索服务器系统180联接到网络130的链路可以是以太网或其他类型的网络连接,并且这样的连接可以是无线和/或有线连接。

助理服务器系统160和搜索服务器系统180表示任何合适的远程计算系统,例如能够向诸如网络130的网络发送和从该网络接收信息的一个或多个台式计算机、膝上型计算机、大型机、服务器、云计算系统等。助理服务器系统160托管虚拟助理服务(或至少提供对其的访问)。搜索服务器系统180托管搜索服务(或至少提供对其的访问)。在一些示例中,助理服务器系统160和搜索服务器系统180表示提供经由云对它们相应的服务的访问的云计算系统。

计算设备110中的每一个表示单独的移动或非移动计算设备。计算设备110的示例包括移动电话、平板计算机、膝上型计算机、台式计算机、服务器、大型机、机顶盒、电视机、可穿戴设备(例如、计算机化手表、计算机化眼镜、计算机化手套等)、家庭自动化设备或系统(例如、智能恒温器或家庭助理设备)、个人数字助理(PDA)、游戏系统、媒体播放器、电子书阅读器、移动电视平台、汽车导航或信息娱乐系统、或任何其他类型的移动、非移动、可穿戴和不可穿戴的计算设备,其被配置为执行或访问虚拟助理并经由诸如网络130的网络接收信息。

助理服务器系统160和/或搜索服务器系统180可以经由网络130与计算设备110通信,以使计算设备110访问由助理服务器系统160提供的虚拟助理服务和/或为计算设备110提供对由搜索服务器系统180提供的搜索服务的访问。在提供虚拟助理服务的过程中,助理服务器系统160可以经由网络130与搜索服务器系统180通信,以获得用于为用户提供虚拟助理服务信息以完成任务的搜索结果。

系统100可以向多个用户提供虚拟助理服务。虚拟助理服务可以由本地和远程组件的组合来提供。在图1的示例中,助理服务器系统160包括远程助理模块123A-123N(统称为“远程助理模块123”)和用户信息数据存储125A-125N(统称为“用户信息数据存储125”)。远程助理模块123中的每一个可以维护用户信息数据存储125中的相应用户信息数据存储作为助理服务器系统160经由网络130为特定用户提供的相应虚拟助理服务的一部分。例如,远程助理模块123A可以维护用户信息数据存储125A作为助理服务器系统160经由网络130为用户A提供的虚拟助理服务的一部分,远程助理模块123B可以维护用户信息数据存储125B作为助理服务器系统160经由网络130为用户B提供的虚拟助理服务的一部分...并且远程助理模块123N可以维护用户信息数据存储125N作为助理服务器系统160经由网络130为用户N提供的虚拟助理服务的一部分。

计算设备110A包括用户接口设备(UID)112、用户接口(UI)模块120、本地助理模块122A和用户信息数据存储124A。本地助理模块122A可以维护用户信息数据存储124A作为为诸如用户A的特定用户在计算设备110A上本地执行的虚拟助理服务的一部分。计算设备110中的其他计算设备可以包括类似于计算设备110A的组件。在一些示例中,计算设备110中的每个相应的计算设备可以包括与相应用户相关联的相应的本地助理模块和相应的用户信息数据存储。例如,计算设备110B可以包括与用户B相关联的本地助理模块122B(未示出)和用户信息数据存储124B(未示出)...并且计算设备110N可以包括与用户B相关联的本地助理模块122N(未示出)和用户信息数据存储124N(未示出)。本地助理模块122A–122N可以统称为“本地助理模块122”。用户信息数据存储124A–124N可以统称为“用户信息数据存储124”。

模块120、122、123和182可以执行使用在计算设备110、助理服务器系统160或搜索服务器系统180之一中驻留和/或在计算设备110、助理服务器系统160或搜索服务器系统180之一处执行的软件、硬件、固件或硬件、软件和固件的混合来描述的操作。计算设备110、助理服务器系统160和搜索服务器系统180可以执行具有多个处理器或多个设备的模块120、122、123和182。计算设备110、助理服务器系统160和搜索服务器系统180可以将模块120、122、123和182执行为在底层硬件上执行的虚拟机。模块120、122、123和182可以作为操作系统或计算平台的一个或多个服务执行。模块120、122、123和182可以作为在计算平台的应用层处的一个或多个可执行程序执行。

计算设备110A的UID 112可以用作计算设备110A的输入和/或输出设备。UID 112可以使用各种技术来实现。例如,UID 112可以用作使用存在敏感输入屏幕的输入设备,例如电阻式触摸屏、表面声波触摸屏、电容触摸屏、投影电容触摸屏、压敏屏幕、声学脉冲识别触摸屏或另一存在敏感显示器技术。

UID 112可以用作使用麦克风技术、红外传感器技术或用于接收用户输入的其他输入设备技术的输入设备。例如,UID 112可以使用内置麦克风技术来检测UI模块120和/或本地助理模块122处理以完成任务的语音输入。作为另一示例,UID 112可以包括可以从计算设备110A的用户接收触觉输入的存在敏感显示器。UID 112可以通过检测来自用户的一个或多个手势(例如,用户用手指或触控笔触摸或指向UID 112的一个或多个位置)来接收触觉输入的指示。

UID 112可以用作输出(例如,显示)设备并且向用户呈现输出。UID 112可以用作使用任何一个或多个显示设备的输出设备,例如液晶显示器(LCD)、点阵显示器、发光二极管(LED)显示器,有机发光二极管(OLED)显示器,电子墨水或能够向计算设备110A的用户输出可见信息的类似的单色或彩色显示器。UID 112可以用作使用扬声器技术、触觉反馈技术或用于向用户输出信息的其它输出设备技术的输出设备。UID 112可以呈现与由本地助理模块122和/或远程助理模块123A提供的虚拟助理相关的用户接口(例如,用户接口114)。UID 112可以呈现与在计算设备110处执行和/或可从计算设备110访问的计算平台、操作系统、应用和/或服务(例如,电子邮件、聊天、在线服务、电话、游戏等)的其他特征相关的用户接口。

UI模块120可以管理与UID 112和计算设备110A的其他组件的用户交互,包括与助理服务器系统160的交互,以便经由UID 112提供助理服务。当计算设备110A的用户在UID 112处查看输出和/或提供输入时,UI模块120可以使UID 112输出用户接口,例如用户接口114(或其他示例用户接口)。当用户与用户接口在不同时间交互时,并且当用户和计算设备110A处于不同位置时,UI模块120和UID 112可以接收来自用户的输入(例如,语音输入、手势输入等)的一个或多个指示。UI模块120和UID 112可以解释在UID 112处检测到的输入,并且可以将关于在UID 112处检测到的输入的信息中继到本地助理模块122A和/或在例如计算设备110A处执行的一个或多个其他相关联的平台、操作系统、应用和/或服务,以使计算设备110A执行功能。

UI模块120可以从在计算设备110A和/或诸如服务器系统160和180的一个或多个远程计算系统上执行的一个或多个相关联的平台、操作系统、应用和/或服务接收信息和指令。此外,UI模块120可以充当在计算设备110A处执行的一个或多个相关联的平台、操作系统、应用和/或服务与计算设备110A的各种输出设备(例如,扬声器、LED指示器、音频或触觉输出设备等)之间的中介,以利用计算设备110A产生输出(例如,图形、闪光、声音、触觉响应等)。

搜索模块182可以执行对被确定为与搜索模块182自动生成(例如,基于与计算设备110A相关联的场境信息)或者搜索模块182从助理服务器系统160或计算设备110接收的搜索查询相关的信息的搜索(例如,作为虚拟助理代表计算设备110的计算设备的用户正在完成的任务的一部分)。搜索模块182可以基于搜索查询来进行因特网搜索以识别与各种信息源(例如,存储在本地或远程到搜索服务器系统180)当中的搜索查询相关的信息(例如,天气或交通状况、新闻、股票价格、运动分数、用户日程、运输日程、零售价格等)。在执行搜索之后,搜索模块182可以将从搜索返回的信息(例如,搜索结果)输出到助理服务器系统160或计算设备110中的计算设备。

在图1的示例中,用户接口114是与由计算设备110A访问的虚拟助理服务(例如,由助理服务器系统160的本地助理模块122和/或远程助理模块123A提供)相关联的图形用户接口。在一些示例中,用户接口114可以是可听的用户接口。如图1所示,用户接口114示出了在计算设备110A的用户(即,“用户A”),计算设备110B的用户(即,“用户B”)、计算设备110C的用户(即,“用户C”)和在计算设备110处执行或可访问的虚拟助理之间的对话的文本。用户接口114可以包括各种形式的虚拟助理信息,例如可听声、振动、文本、图形、内容卡、图像等。UI模块120可以使UID 112基于UI模块120经由网络130从助理服务器系统160接收的数据来输出用户接口114。UI模块120可以接收作为来自助理服务器系统160和/或本地助理模块122的输入以用于呈现用户接口114的信息(例如,音频数据、文本数据、图像数据等),以及来自助理服务器系统160和/或本地助理模块122的指令以用于在UID 112处在用户接口114内呈现信息。

计算设备110的本地助理模块122和助理服务器系统160的远程助理模块123可以各自执行本文所述的相似功能,以自动执行用于用户组的相应助理,该助理被配置为向该用户组提供推荐。远程助理模块123和用户信息数据存储125表示示例虚拟助理的服务器端或云实现,而本地助理模块122和用户信息数据存储124表示示例虚拟助理的客户端或本地实现。

模块122和123可以各自包括配置成作为智能个人助理执行的相应软件代理,智能个人助理可以为个人(例如,计算设备110中的计算设备的用户)执行任务或服务。模块122和123可以基于用户输入(例如,在UID 112处检测到)、位置感知(例如,基于场境)和/或访问来自各种信息源(例如,本地存储在计算设备110、助理服务器系统160上,或者经由搜索服务器系统180提供的搜索服务获得)的其他信息(例如,天气或交通状况、新闻、股票价格、运动分数、用户日程、运输日程、零售价格等)的能力来执行这些任务或服务。模块122和123可以执行人工智能和/或机器学习技术以代表用户自动识别和完成一个或多个任务。

由远程助理模块123和本地助理模块122提供的相应的助理可以自动创建、生成或以其他方式维护信息的个人记录并且将个人记录作为用户特定的值以结构化和语义的方式分别存储为用户信息数据存储124和用户信息数据存储125。数据存储124和125可以分别使由远程助理模块123和本地助理模块122执行的相应的助理能够快速访问个人信息(例如,用户特定的值)以完成真实世界任务、虚拟任务,或以其他方式响应于用户的即时或未来需求。

在首先接收到用户允许这样做的明确许可之后,助理模块122和123可以仅保留与用户相关联的个人记录。因此,用户可以完全控制他们的助理收集和使用关于其的信息的方式。例如,在保留与计算设备110A的用户A相关联的个人记录之前,助理模块122A和123A可以使UI模块120经由UID 112呈现用户接口,该用户接口请求用户A选择框、点击按钮、发出语音输入或以其他方式向用户接口提供特定输入,该特定输入由助理模块122A和123A解释为对助理模块122A和123A收集和使用用户A的个人信息的明确而肯定的同意。

在将个人信息存储在数据存储124和125之前,助理模块122和123可以将作为个人记录维护的信息加密或以其他方式处理以去除用户的实际身份。例如,该信息可以由助理模块122和123处理,使得当存储在数据存储124和125上时,任何个人可识别信息都从用户的个人记录中被移除。

助理模块122和123可以使UI模块120呈现用户接口,用户可以从用户接口修改或移除来自存储在数据存储124和125上的个人记录的信息。例如,用户接口可以提供区域,用户可以在该区域处提供输入以向助理模块122和123传送用于修改或移除个人信息的特定片段的命令。这样,计算设备110的每个用户可以完全控制由相应的助理模块122和123在数据存储124和125上保留的信息。

助理模块122和123可以使用户能够控制使用数据存储124和125中的信息的方式。例如,助理模块122和123可以将在数据存储124和125中的信息加标签、标记或以其他方式注释为具有各种隐私级别。例如,助理模块122和123可以将数据存储124和125中的一些信息标记为具有第一隐私级别,并且将数据存储124和125中的一些信息标记为具有第二隐私级别。第二隐私级别可能比第一隐私级别更具限制性。也就是说,标记为具有第二隐私级别的信息可以被认为比标记为具有第一隐私级别的信息更私密。在一些示例中,标记为具有第一隐私级别的信息可以是公共信息,或者可以其他方式公开获得的信息。

在执行各种操作的过程中,助理模块122和123可以将标记有各种隐私级别的数据存储124和125中的信息用于不同的目的。例如,信息越私密,助理模块122和123在保护信息方面可能越严格。例如,助理模块122和123可以向其他用户和/或与其他用户相关联的虚拟助理披露或以其他方式提供标记为公开的信息,而对其他用户和/或与其他用户相关联的虚拟助理隐藏或以其他方式保护标记为私密的信息。以这种方式,计算设备110的每个用户可以完全控制相应的助理模块122和123如何使用数据存储124和125上的信息。

由数据存储124和125存储的个人记录中的每个条目可以与可由助理模块122和123快速遍历或解析的预定义模式相关联,以在当前时间找到信息助理模块122和123所需要的信息,以了解用户需求并帮助用户完成任务。一旦个人信息已被记录为用户特有的一个或多个值,则与用户相关联的助理模块122和123中的助理模块可以快速地使用与用户相关联的存储在数据存储124和125上的信息来完成任务。如果没有正在进行的任务,则助理模块122和123可以向用户(例如,经由用户接口114)提供关于助理如何可以在将来使用该信息来帮助用户的示例。用户可以稍后在UID 112提供输入以命令助理模块122和123忘记或修改该信息。

由数据存储124和125存储的值可以是文本值(例如,人的姓名、地点的名称、实体的其他文本描述符)、数值(例如,年龄、身高、体重、其他生理数据、与实体相关联的其他数字信息)或指向与数据存储相关联的用户的特定值的指针(例如,指向用户的知识图中的实体的在存储器中的位置、指向地址簿中的联系人的存储器中的位置,等等)。换句话说,特定于用户的值可以采取许多形式并且特定于由记录模式定义的个人记录的字段。该值可以指示特定于用户的实际信息,或者可以是对可以从其检索特定于用户的信息的位置的引用。

计算设备110的用户可以在组中。组的示例包括但不限于社交媒体网站上的组、聊天室、群聊、用户组的特别指定或多个用户的任何其他联盟。计算设备110的用户可以自己加入组,被添加到组(在接收到用户的同意之后)或创建组。

助理模块122和123可以被配置成向一组用户提供一个或多个推荐,该推荐也称为组推荐或多用户推荐。例如,用户可以请求与该用户相关联的助理模块122和123中的助理模块为组提供一个或多个推荐。组推荐的一些示例包括但不限于娱乐(例如,组观看的电影的推荐)、食物(例如,组前往的饭店或酒吧的推荐)、旅行(例如,旅行地点、搭乘的航班或旅游的推荐)和分享的商品(例如,汽车/电视/游戏机的购买推荐)。

由与请求的用户(即,请求推荐的用户)相关联的助理模块122和123提供的组推荐的质量可以与对与请求的用户相关联的助理模块122和123可用的信息的质量有关。例如,与请求的用户相关联的助理模块122和123可以使用的关于组中的用户的信息越多,所得到的推荐的质量越高(即,该推荐将更可能被该组织的成员接受)。因此,可能需要与请求的用户相关联的助理模块122和123尽可能多地使用组中各个成员的个人信息,以便生成可能被该组的更多成员接受的推荐。

然而,该组的用户可能不希望他们的信息能够被该组的其他成员或与请求的用户相关联的助理模块122和123访问。因此,与请求的用户相关联的助理模块122和123可能对除了请求的用户之外的组的用户的信息仅具有有限的访问权。因此,与请求的用户相关联的助理模块122和123可以基于用于组的用户的第一隐私级别数据来生成原始推荐列表。第一隐私级数据可以包括该组的用户的公共信息和/或该组的用户已经同意可用于群组推荐目的的信息。由于原始推荐列表是基于该组的用户的有限数据生成的,所以原始推荐列表可能不像当与请求的用户相关联的助理模块122和123有权访问该组的其他用户的私人信息时那样质量高。

根据本公开的一种和多种技术,与组的用户相关联的助理模块122和123中的相应的助理模块可以基于该组的用户的相应的第二隐私级别数据来评价来自原始推荐列表的推荐以包括用于在该组的精简的推荐列表中。例如,与该组的第一用户相关联的助理模块122和123(例如,助理模块122A和/或123A)可以基于第一用户的第二隐私级别来评价来自原始推荐列表的推荐,以包括在用于该组的精简的推荐列表中,与该组的第二用户相关联的助理模块122和123(例如,助理模块122B和/或123B)可以基于第二用户的第二隐私级别来评价来自原始推荐列表的推荐,以包括在用于该组的精简的推荐列表中,等等。第二隐私级别数据可能比第一隐私级别数据更受限制。例如,一些数据可能默认被标记为第二隐私级别数据,和/或该组的用户可能已经调整了一个或多个设置,以使数据被标记为第二隐私级别数据。

与组的用户相关联的助理模块122和123中的相应的助理模块可以将评价结果输出到与请求的用户相关联的助理模块122和123。例如,与组的用户相关联的助理模块122和123中的相应的助理模块可以针对原始推荐列表中的每个相应的推荐输出是否应将该相应推荐包括在用于该组的精简的推荐列表中的指示。当特定用户的第二隐私级别数据指示该特定用户对该推荐有任何否定偏好时,与该特定用户相关联的助理模块122和123可以确定特定推荐不应该被包括在精简的推荐列表中。当数据指示用户不接受该推荐、不喜欢该推荐、可以接受该推荐但更喜欢另一个选项、或具有任何其他否定含义时,用户的数据可以指示该用户对于推荐具有否定偏好。然而,可以不将理由或解释与评价结果一起提供给与请求的用户相关联的助理模块122和123。

与请求的用户相关联的助理模块122和123可以接收评价结果,并且确定是否应该将来自原始推荐列表的任何推荐包括在精简的推荐列表中。如果与组的用户相关联的助理模块122和123中没有相应的助理模块确定该推荐不应该被包括在精简的推荐列表中,则来自原始推荐列表的推荐应该被包括在精简的推荐列表中。

响应于精简的推荐列表包括至少一项推荐,与请求的用户相关联的助理模块122和123可以输出精简的推荐列表,以向组的用户呈现。例如,与请求的用户相关联的助理模块122和123可以将精简的推荐列表输出给与组的其他用户相关联的助理模块122和123,它们可以显示、说出或以其他方式输出以呈现给其相关联的用户。由于组的用户不知道原始推荐列表,并且该组的用户不知道哪个用户的助理模块导致推荐不被包括在精简的推荐列表中,所以与组的用户相关联的助理模块122和123中的相应助理模块可能会对来自原始推荐列表中的推荐有效地具有盲“否决权”。这样,助理模块122和123可以提供更高质量的推荐,同时仍保护其相关联的用户的私人信息的隐私。

在诸如上述示例的一些示例中,请求的用户可能被包括在为其生成推荐的用户组中。例如,用户可以请求针对该用户和一个或多个其他用户的推荐。这样,在这样的示例中,可以基于请求的用户的数据来生成推荐。在一些示例中,请求的用户可能不包括在为其生成推荐的用户组中。例如,用户可以请求针对其他用户的推荐(例如,管理助理可以请求针对一组其他用户的推荐)。因此,在这样的示例中,可以不基于请求的用户的数据来生成推荐。

上述方法提供的若干好处是:1)在利用用户的个人信息为包含该用户的组生成更高质量的推荐的同时,保持个人用户的个人信息的隐私性,2)生成更高质量的推荐,以最大限度减少达成组共识所需的时间以及由此的功率(如电池功率)的量。

图2是示出根据本公开的一个或多个方面的示例计算设备的框图,该计算设备被配置为执行示例虚拟助理。图2的计算设备210在下文中描述为图1的计算设备110中的计算设备的示例。图2仅示出了计算设备210的一个特定示例,并且计算设备210的许多其他示例可以在其他示例中使用,并且可以包括示例性计算设备210中包括的组件的子集,或者可以包括图2中未示出的附加组件。

如图2的示例所示,计算设备210包括用户接口设备(USD)212,一个或多个处理器240,一个或多个通信单元242,一个或多个输入组件244,一个或多个输出组件246以及一个或多个存储组件248。USD212包括显示组件202、存在敏感输入组件204、麦克风组件206和扬声器组件208。计算设备210的存储组件248包括UI模块220、助理模块222、搜索模块282、一个或多个应用模块226和用户信息数据存储224。

通信信道250可以互连组件212、240、242、244、246和248中的每一个,以用于组件间通信(物理地、通信地和/或可操作地)。在一些示例中,通信信道250可以包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其它方法。

计算设备210的一个或多个通信单元242可以通过在一个或多个网络(例如,图1的系统100的网络130)上发送和/或接收网络信号而经由一个或多个有线和/或无线网络与外部设备(例如,图1的系统100的助理服务器系统160和/或搜索服务器系统180)通信。通信单元242的示例包括网络接口卡(例如,以太网卡)、光收发器、射频收发器、GPS接收器或可发送和/或接收信息的任何其他类型的设备。通信单元242的其它示例可以包括短波无线电、蜂窝数据无线电、无线网络无线电以及通用串行总线(USB)控制器。

计算设备210的一个或多个输入组件244可以接收输入。输入的示例为触觉、音频和视频输入。在一个示例中,计算设备210的输入组件242包括存在敏感输入设备(例如,触敏屏幕、PSD)、鼠标、键盘、语音应答系统、相机、麦克风或用于检测人或机器的输入的任何其他类型的设备。在一些示例中,输入组件242可以包括一个或多个传感器组件、一个或多个位置传感器(GPS组件、Wi-Fi组件、蜂窝组件)、一个或多个温度传感器、一个或多个运动传感器(例如,加速度计、陀螺仪)、一个或多个压力传感器(例如,气压计)、一个或多个环境光传感器和一个或多个其他传感器(例如,红外接近传感器、湿度计传感器等)。仅举几个其他非限制性示例,其他传感器可以包括心率传感器、磁力计、葡萄糖传感器、嗅觉传感器、罗盘传感器、计步器传感器。

计算设备110的一个或多个输出组件246可以生成输出。输出的示例为触觉、音频和视频输出。在一个示例中,计算设备210的输出组件246包括存在敏感显示器、声卡、视频图形适配器卡、扬声器、阴极射线管(CRT)监视器、液晶显示器(LCD)或用于生成到人或机器的输出的任何其他类型的设备。

计算设备210的UID 212可以类似于计算设备110的UID 112,并且包括显示组件202、存在敏感输入组件204、麦克风组件206和扬声器组件208。显示组件202可以是屏幕,在该处信息由USD 212显示,而存在敏感输入组件204可以检测显示组件202处和/或附近的对象。扬声器组件208可以是由UID 212从其播放可听信息的扬声器,而麦克风组件206可以检测在显示部件202和/或扬声器部件208处和/或附近提供的可听输入。

虽然被示出为计算设备210的内部组件,但是UID 212还可以表示与计算设备210共享数据路径以发送输入和/或接收输出的外部组件。例如,在一个示例中,UID 212表示位于计算设备210的外部包装内并物理连接到外部包装的计算设备210的内置组件(例如,移动电话上的屏幕)。在另一示例中,UID 212表示计算设备210的外部组件,其位于计算设备210的包装或外壳的外部并与包装或外壳物理分离(例如,与计算设备210共享有线和/或无线数据路径的监视器、投影仪等)。

作为一个示例范围,存在敏感输入组件204可以检测诸如在显示组件202的2英寸或更小的距离内的手指或触控笔的对象。存在敏感输入组件204可以确定对象在该处被检测的显示组件202的位置(例如,[x,y]坐标)。在另一示例范围中,存在敏感输入组件204可以检测到显示组件202的距离为6英寸或更小的对象,并且其他范围也是可能的。存在敏感输入组件204可以使用电容、电感和/或光学识别技术来确定由用户的手指选择的显示组件202的位置。在一些示例中,存在敏感输入组件204还使用如关于显示组件202所描述的触觉、音频或视频刺激向用户提供输出。在图2的示例中,PSD 212可以呈现用户接口(例如,图1的图形用户接口114)。

扬声器组件208可以包括内置于计算设备210的外壳的扬声器,并且在一些示例中,可以是内置于一组有线或无线耳机的扬声器,耳机可操作地联接到计算设备210。麦克风组件206可以检测发生在UID 212处或附近的可听输入。麦克风组件206可以执行各种噪声消除技术以去除背景噪声并将用户言语与检测到的音频信号隔离开。

计算设备210的UID 212可以检测作为来自计算设备210的用户的输入的二维和/或三维手势。例如,UID 212的传感器可以在UID 212的传感器的阈值距离内检测用户的移动(例如,移动手、手臂、笔、触控笔)。UID 212可以确定移动的二维或三维向量表示,并将向量表示与具有多个维度的手势输入(例如,挥手、捏、拍、笔画等)相关联。换句话讲,UID 212可以在不要求用户在UID 212输出信息以进行显示的屏幕或表面处或附近作手势的情况下检测多维手势。相反,UID 212可以检测在传感器处或附近执行的多维手势,该传感器可以或可以不位于UID 212输出用于显示的信息的屏幕或表面附近。

一个或多个处理器240可以实现与计算设备210相关联的功能和/或执行与计算设备210相关联的指令。处理器240的示例包括应用处理器、显示控制器、辅助处理器、一个或多个传感器集线器、以及配置成用作处理器、处理单元或处理设备的任何其他硬件。模块220、222、226和282可以由处理器240操作以执行计算设备210的各种动作、操作或功能。例如,计算设备210的处理器240可以检索和执行由存储组件248存储的指令,指令导致处理器240执行操作模块220、222、226和282。当由处理器240执行时,指令可以使计算设备210将信息存储在存储组件248内。

计算设备210内的一个或多个存储组件248可以存储用于在计算设备210的操作期间进行处理的信息(例如,在数据在计算设备210处执行期间,计算设备210可以存储由模块220、222、226和282访问的数据)。在一些示例中,存储组件248是临时存储器,这意味着存储组件248的主要目的不是长期存储。计算设备210上的存储组件248可以被配置为用于信息的短期存储的易失性存储器,因此如果断电则不保留存储的内容。易失性存储器的示例包括随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)以及本领域已知的其它形式的易失性存储器。

在一些示例中,存储组件248也包括一个或多个计算机可读存储介质。在一些示例中,存储组件248包括一个或多个非暂时的计算机可读存储介质。存储组件248可以被配置成存储比通常由易失性存储器存储的更大量的信息。存储组件248还可以被配置用于信息的长期存储的非易失性存储器空间并且在电源接通/关闭循环之后保留信息。非易失性存储器的示例包括磁性硬盘、光盘、软盘、闪存或电可编程存储器(EPROM)或电可擦除和可编程(EEPROM)存储器的形式。存储组件248可以存储与模块220、222、226和282以及数据存储224相关联的程序指令和/或信息(例如,数据)。存储组件248可以包括存储器,该存储器被配置为存储与模块220、222、226和282以及数据存储224相关联的数据或其他信息。

UI模块220可以包括图1的计算设备110的UI模块120的所有功能,并且可以执行与UI模块120类似的操作,以用于管理计算设备210例如在212处提供的用户接口(例如,用户接口114),以促进计算设备110的用户与助理模块222之间的交互。例如,计算设备210的UI模块220可以从助理模块222接收包括用于输出(例如,显示或播放音频)助理用户接口(例如,用户接口114)的指令的信息。UI模块220可以通过通信信道250从助理模块222接收信息,并使用数据来生成用户接口。UI模块220可以通过通信信道250发送显示或可听输出命令和相关联的数据,以使UID 212在UID 212处呈现用户接口。

在一些示例中,UI模块220可以接收在UID 212处检测到的一个或多个用户输入的指示,并且可以将关于用户输入的信息输出到助理模块222。例如,UID 212可以检测来自用户的语音输入并向UI模块220发送关于该语音输入的数据。

UI模块220可以向助理模块222发送语音输入的指示以进一步解释。助理模块222可以基于语音输入来确定检测到的语音输入表示用户对助理模块222执行一个或多个任务的请求。

应用模块226表示在计算设备210处执行并可从计算设备210访问的所有各种单独应用和服务,其可以由诸如助理模块222的助理访问,以向用户提供信息和/或执行任务。计算设备210的用户可以与与一个或多个应用模块226相关联的用户接口进行交互,以使计算设备210执行功能。应用模块226的许多示例可以存在并且包括健身应用、日历应用、搜索应用、地图或导航应用、运输服务应用(例如,公交车或列车跟踪应用)、社交媒体应用、游戏应用、电子邮件应用、聊天或消息传递应用、因特网浏览器应用、或可以在计算设备210执行的任何和所有其他应用。

计算设备210的搜索模块282可以代表计算设备210执行集成搜索功能。搜索模块282可以由UI模块220,应用模块226中的一个或多个和/或助理模块222来调用以代表它们执行搜索。当被调用时,搜索模块282可以执行搜索功能,例如,生成搜索查询并且基于生成的搜索查询在各种本地和远程信息源上执行搜索。搜索模块282可以将执行的搜索的结果提供给调用的组件或模块。也就是说,搜索模块282可以响应于调用命令将搜索结果输出到UI模块220、助理模块222和/或应用模块226。

助理模块222可以包括图1的计算设备110中的计算设备的本地助理模块122中的本地助理模块的所有功能,并且可以执行与用于提供助理的本地助理模块类似的操作。在一些示例中,助理模块222可以在本地(例如,在处理器240处)执行以提供助理功能。在一些示例中,助理模块222可以充当计算设备210可访问的远程助理服务的接口。例如,助理模块222可以是到图1的助理服务器系统160的远程助理模块124中的远程助理模块的接口或应用编程接口(API)。

类似于图1的系统100的用户信息数据存储124和125,用户信息数据存储224可以存储由助理模块222创建的个人记录,其包括助理模块222已经学习或被提供的关于计算设备210的用户的信息。除了由搜索模块282提供的任何信息之外,助理模块222还可以依赖于存储在数据存储224处的信息,以执行助理任务。

类似于图1的助理模块122和123,助理模块222可以被配置成生成针对一组用户的推荐。例如,助理模块222可以基于该组的用户的第一隐私级别数据来生成原始推荐列表,并且输出原始推荐列表,以便由与该组的其他用户相关联的计算助理进行评价。助理模块222可以从与该组的其他用户相关联的计算助理接收关于来自原始推荐列表的推荐是否应被包括在用于该组的精简的推荐列表中的指示。在一些示例中,指示可以是肯定的。例如,与该组的另一个用户相关联的计算助理可以向助理模块222输出来自原始推荐列表的推荐的列表,这些推荐被批准包括在精简的推荐列表中。在一些示例中,指示可以是否定的。例如,与该组的另一个用户相关联的计算助理可以向助理模块222输出未被批准包括在精简的推荐列表中的来自原始推荐列表的推荐的列表(即,与另一个用户相关联的计算助理否决的来自原始推荐列表的推荐的列表)。

与该组的用户相关联的计算助理可以基于该组的用户的相应的第二隐私级别数据来生成指示。如上所述,标记有第二隐私级别的数据的使用可能比标记有第一隐私级别的数据更受限制。同样如上所述,可以向该组的用户提供用于控制哪些数据被标记为第二隐私级别的选项,并且与该组的其他用户相关联的计算助理可以接收同意以使用标记有第二隐私级别的数据用于生成组推荐。

当特定用户的第二隐私级别数据指示该特定用户对该推荐有任何否定偏好时,与该组的该特定用户相关联的计算助理可以确定特定推荐不应该被包括在精简的推荐列表中。当数据指示用户不接受该推荐、不喜欢该推荐、可以接受该推荐但更喜欢另一个选项、或具有任何其他否定含义时,用户的数据可以指示该用户对于推荐具有否定偏好。

助理模块222可以基于由计算助理执行的评价来生成精简的推荐列表。例如,助理模块222可以确定包括在原始推荐列表中的每个相应的推荐是否已被至少一个计算助理否决。如果原始推荐列表中的推荐没有被任何计算助理否决,则助理模块222可以将该推荐包括在精简的推荐列表中。

响应于精简的推荐列表包括至少一项推荐(即,在来自原始推荐列表的至少一项推荐未被与该组的用户相关联的任何计算助理否决的情况下),助理模块222可以输出精简的推荐列表以呈现给该组的用户。作为一个示例,助理模块222可以使UI模块220经由显示组件202显示包括精简的推荐列表的GUI。作为另一示例,助理模块222可以使UI模块220经由扬声器组件208输出包括精简的推荐列表的合成语音。作为另一示例,助理模块222可以将精简的推荐列表输出到与该组的其他用户相关联的计算助理,计算助理然后可以向其相应的用户显示、说出或以其他方式输出精简的推荐列表。

在一些示例中,精简的推荐列表可能不包括任何推荐。例如,来自原始推荐列表的每个推荐都可能被与该组的用户相关联的计算助理中的至少一个计算助理否决。在一些示例中,助理模块222可以通知计算设备210的用户助理模块222无法为该组生成任何推荐。然而,助理模块222不能为组生成任何推荐可能是不期望的,特别是在基于用户对推荐具有任何否定偏好而精简掉推荐的情况下。

根据本公开的一种和多种技术,助理模块222可以使与组的用户相关联的计算助理基于该组的用户的加权的第二隐私级别数据来评价来自原始推荐列表的推荐,以便包括在修改后的精简的推荐列表中。作为一个示例,响应于确定用于该组的特定用户的第二隐私级别数据指示该特定用户对该推荐具有完全否定的偏好,与该组的该特定用户相关联的计算助理可以确定来自原始推荐列表的推荐不应被包括在修改后的精简的推荐列表中。作为另一示例,响应于确定用于该组的特定用户的第二隐私级别数据指示该特定用户对该推荐具有部分否定的偏好,与该组的该特定用户相关联的计算助理可以确定来自原始推荐列表的推荐应被包括在修改后的精简的推荐列表中。

当数据指示用户不接受该推荐、不喜欢该推荐、绝不接受该推荐或具有任何其他完全否定偏好时,该用户的数据可以指示该用户对于推荐具有完全否定偏好。例如,指示用户是素食主义者的数据可能表明,如果用户对于去牛排馆会感到被冒犯,则用户具有完全否定偏好。当数据指示用户可以接受该推荐但是更喜欢另一个选项、通常不喜欢该推荐但是为了组可以接受该推荐或具有任何其他缓和的含义时,用户的数据可以指示用户对于推荐具有部分否定偏好。例如,指示用户是素食主义者的数据可能表明,如果用户对于点沙拉感觉还可以,则用户具有部分否定偏好。

助理模块222可以基于由计算助理执行的评价来生成修改后的精简的推荐列表。例如,助理模块222可以确定包括在原始推荐列表中的每个相应的推荐是否已被至少一个计算助理基于加权的数据而否决。如果来自原始推荐列表的推荐未被任何计算助理基于加权的数据而否决,助理模块222可以将该推荐包括在修改后的精简的推荐列表中。

响应于修改后的精简的推荐列表包括至少一项推荐,助理模块222可以输出修改后的精简的推荐列表以呈现给该组的用户。作为一个示例,助理模块222可以使UI模块220经由显示组件202显示包括修改后的精简的推荐列表的GUI。作为另一示例,助理模块222可以使UI模块220经由扬声器组件208输出包括修改后的精简的推荐列表的合成语音。作为另一示例,助理模块222可以将修改后的精简的推荐列表输出到与该组的其他用户相关联的计算助理,计算助理然后可以向其相应的用户显示、说出或以其他方式输出修改后的精简的推荐列表。

在一些示例中,与该组的用户相关联的计算助理(包括助理模块222)可以避免输出用于生成推荐列表(精简的或修改后的精简的)的数据的任何指示。例如,计算助理可以避免指示推荐列表是基于第二隐私级别数据(即,是精简的列表)还是加权的第二隐私级别数据(即,是修改后的精简的列表)。计算助理可以避免输出关于原始推荐列表的任何指示。因此,计算助理可以使得能够基于组成员的私人数据生成组推荐,而不会泄露私人数据。这样,计算助理可以为组生成更高质量的推荐。

图3是示出根据本公开的一个或多个方面的示例计算系统的框图,该计算系统被配置为执行示例虚拟助理。图3的助理服务器系统360在下文中描述为图1的助理服务器系统160的示例。图3仅示出了助理服务器系统360的一个特定示例,并且助理服务器系统360的许多其他示例可以在其他示例中使用,并且可以包括示例助理服务器系统360中包括的组件的子集,或者可以包括图3中未示出的附加组件。

如图3的示例中所示,助理服务器系统360包括一个或多个处理器340、一个或多个通信单元342和一个或多个存储设备348。存储设备348包括助理模块322、搜索模块382和用户信息数据存储325A–325N(统称为“用户信息数据存储325”)。

处理器340类似于图2的计算系统210的处理器240。通信单元342类似于图2的计算系统210的通信单元242。存储设备348类似于图2的计算系统210的存储设备248。通信信道350类似于图2的计算系统210的通信信道250,并且因此可以互连组件340、342和348中的每一个以进行组件间通信。在一些示例中,通信信道350可以包括系统总线、网络连接、进程间通信数据结构或用于传送数据的任何其它方法。

助理服务器系统360的搜索模块382类似于计算设备210的搜索模块282,并且可以代表助理服务器系统360执行集成搜索功能。也就是说,搜索模块482可以代表助理模块322执行搜索操作。在一些示例中,搜索模块382可以与外部搜索系统进行交互以代表助理模块322执行搜索操作。当被调用时,搜索模块382可以执行搜索功能,例如,生成搜索查询并且基于生成的搜索查询在各种本地和远程信息源上执行搜索。搜索模块382可以将执行的搜索的结果提供给调用的组件或模块。也就是说,搜索模块382可以将搜索结果输出到助理模块322。

助理模块322可以包括图1的本地助理模块122中的本地助理模块和远程助理模块123中的远程助理模块以及图2的计算设备210的助理模块222的所有功能。助理模块322可以执行与远程助理模块122中的远程助理模块类似的操作,以提供可经由助理服务器系统360访问的助理服务。也就是说,助理模块322可以用作到远程助理服务的接口,该远程助理服务对于通过网络与助理服务器系统360通信的计算设备是可访问的。例如,助理模块322可以是到图1的助理服务器系统160的远程助理模块122中的远程助理模块的接口或API。

类似于图1的系统100的用户信息数据存储124和125,用户信息数据存储325可以分别存储由助理模块322创建的个人记录,其包括助理模块322已经学习或被提供的关于相应的用户的信息。除了由搜索模块382提供的任何信息,助理模块322还可以依赖于存储在数据存储325处的信息,以执行助理任务。

图4是示出根据本公开的一个或多个方面的由执行示例虚拟助理的一个或多个处理器执行的示例操作的流程图。下面在图1的系统100的场境中描述图4。例如,根据本公开的一个或多个方面,当在计算设备110A的一个或多个处理器处执行时,本地助理模块122A可以执行操作402-420中的一个或多个。并且在一些示例中,根据本公开的一个或多个方面,当在助理服务器系统160的一个或多个处理器处执行时,远程助理模块122A可以执行操作402-420中的一个或多个。仅为了说明的目的,下面在图1的计算设备110A的场境中描述图4。

在操作中,计算设备110A可以接收对于为一组用户生成推荐的请求(402)。如在图1的示例中所示,用户A、用户B和用户C可以在群聊中。用户A可能会问:“大家还有兴趣在三月份旅行吗?”,用户B可能会回答说“我有兴趣”,用户C可能会问“你考虑去哪里?”。然而,看到聊天的情况,用户B可能会说“别再这样,我们总是说不到一起”。为了避免讨论潜在的目的地,用户A可能会说他们会“让他们的虚拟助理提供一些推荐”。在图1的示例中,用户A可以通过输入助理激活命令来向他们的虚拟助理询问一些推荐,并提供对该组用户的推荐的请求。例如,UI模块120可以在用户A的UID 112处接收用户输入的指示,其中用户A键入“@assistant我们应该在3月份去哪里旅行”。UI模块120可以将用户输入提供到助理模块122A和/或123A。

与组的用户相关联的助理模块可以获得组的用户的同意,以使用第一和第二隐私级别数据(404)。例如,助理模块122A和/或123A可以获得用户A的同意以使用用户A的第一和第二隐私级别数据,助理模块122B和/或123B可以获得用户B的同意以使用用户B的第一和第二隐私级别数据,并且助理模块122C和/或123C可以获得用户C的同意以使用用户C的第一和第二隐私级别数据。

助理模块122A和/或123A可以基于该组的用户的第一隐私级别数据来生成用于该组的原始推荐列表(406)。例如,助理模块122A和/或123A可以评价用户A、用户B和用户C的第一隐私级别数据而生成原始推荐列表。在该示例中,用于组的第一隐私级别数据可以指示用户A、用户B和用户C都喜欢冬季山地运动(例如,滑雪或滑雪板运动)、波旁酒和热带度假。基于第一隐私级别数据,助理模块122A和/或123A可以生成原始推荐列表,以包括适合冬季山地运动的博兹曼山、适合品尝波旁酒和参观酿酒厂的肯塔基州列克星敦市、以及适合海滩度假的加勒比岛。助理模块122A和/或123A可以传播或以其他方式输出原始推荐列表到与组的其他用户相关联的计算助理。例如,助理模块122A和/或123A可以将原始推荐列表输出到与用户B相关联的计算助理(例如,助理模块122B和/或123B)、以及与用户C相关联的计算助理(例如,助理模块122C和/或123C)。

与组的用户相关联的相应的计算助理可以基于该组的用户的相应的第二隐私级别数据来评价来自原始推荐列表的推荐以包括在精简的推荐列表中(408)。例如,助理模块122A和/或123A可以基于用户A的第二隐私级别数据来确定用户A是否对来自原始推荐列表的推荐有任何否定的偏好。类似地,与用户B相关联的计算助理可以基于用户B的第二隐私级别数据来确定用户B是否对来自原始推荐列表的推荐有任何否定的偏好,并且与用户C相关联的计算助理可以基于用户C的第二隐私级别数据来确定用户C是否对来自原始推荐列表的推荐有任何否定的偏好。

继续上述示例,助理模块122A和/或123A可以至少基于指示用户A最近去滑雪旅行的用户A的第二隐私级别数据来确定用户A对在博兹曼山的冬季山地运动具有部分否定偏好。因此,助理模块122A和/或123A可以确定在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂以及在加勒比岛的海滩度假应该被包括在精简的列表中,并且不应将在博兹曼山的冬季山地运动包括在精简的列表中。

与用户B相关联的计算助理可以至少基于用户B的第二隐私级别数据(该数据指示,用户B正打算要小孩,并且进行了关于寨卡病毒的大量搜索)和指示加勒比岛上存在寨卡病毒的数据来确定用户B对于加勒比岛具有完全否定的偏好。因此,与用户B相关联的计算助理可以确定在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂以及在博兹曼山的冬季山地运动应该被包括在精简的列表中,并且不应将在加勒比岛的海滩度假包括在精简的列表中。

与用户C相关联的计算助理可以至少基于指示用户C已尝试少饮酒的用户C的第二隐私级别数据来确定用户C对在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂具有部分否定偏好。因此,与用户C相关联的计算助理可以确定在博兹曼山的冬季山地运动和在加勒比岛的海滩度假应该被包括在精简的列表中,并且不应将在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂包括在精简的列表中。

助理模块122A和/或123A可以基于由计算助理执行的评价来生成精简的推荐列表。例如,助理模块122A和/或123A可以确定包括在原始推荐列表中的每个相应的推荐是否已被至少一个计算助理否决。如果来自原始推荐列表的推荐没有被任何计算助理否决,则助理模块122A和/或123A可以将该推荐包括在精简的推荐列表中。

助理模块122A和/或123A可以确定在所得到的精简的推荐列表中是否存在任何推荐(410)。响应于精简的推荐列表包括至少一项推荐(即,在来自原始推荐列表的至少一项推荐未被与该组的用户相关联的任何计算助理否决的情况下)(410的“是”分支),助理模块122A和/或123A可以输出精简的推荐列表(412)。作为一个示例,助理模块122A和/或123A可以使UI模块120显示包括精简的推荐列表的GUI。作为另一示例,助理模块122A和/或123A可以使UI模块120输出包括精简的推荐列表的合成语音。作为另一示例,助理模块122A和/或123A可以将精简的推荐列表输出到与该组的其他用户相关联的计算助理,计算助理然后可以向其相应的用户显示、说出或以其他方式输出精简的推荐列表。

响应于精简的推荐列表不包括至少一项推荐(410的“否”分支),与组的用户相关联的相应的计算助理可以基于该组用户的加权的相应的第二隐私级别数据来评价来自原始推荐列表的推荐以包括在修改后的精简的推荐列表中(414)。在一些示例中,评价可以同时执行。例如,与组的用户相关联的相应的计算助理可以基于用于该组的用户的相应的第二隐私级别数据来同时评价来自原始推荐列表的推荐以包括在精简的推荐列表中,并且基于该组的用户的加权的第二个隐私级别数据来评价来自原始推荐列表的推荐以包括在修改后的精简的推荐列表中。如果修改后的精简的列表包括至少一项推荐(416的“是”分支),则助理模块122A和/或123A可以输出修改后的精简的推荐列表(418)。例如,助理模块122A和/或123A可以以类似于上述精简的推荐列表的输出的方式输出修改后的精简的推荐列表。如果修改后的精简的列表不包括至少一项推荐(416的“否”分支),则助理模块122A和/或123A可以输出计算助理不能为该组提供任何推荐的指示(420)。

继续上述示例,其中原始推荐列表包括适合冬季山地运动的博兹曼山、适合品尝波旁酒和参观酿酒厂的肯塔基州列克星敦市、以及适合海滩度假的加勒比岛。助理模块122A和/或123A可以基于评价确定在精简列表中没有剩余的推荐。具体地讲,博兹曼山的冬季山地运动被用户A的计算助理(即助理模块122A和/或123A)否决,在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂被用户C的计算助理(即助理模块122C和/或123C)否决,并且在加勒比岛的海滩度假被用户B的计算助理(即助理模块122B和/或123B)否决。

与用户A、用户B和用户C相关联的计算助理可以基于相应的用户的加权的相应的第二隐私级别数据来评价来自原始推荐列表的推荐,以便包括在修改后的精简的推荐列表中。例如,因为用户A的第二个隐私级别数据表明,用户A只对博兹曼山的冬季山地运动有部分否定的偏好,并且没有对在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂和在加勒比岛的海滩度假的否定偏好,所以助理模块122A和/或123A可以确定在博兹曼山的冬季山地运动、在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂和在加勒比岛的海滩度假都应被包括在修改后的精简的列表中。类似地,因为用户C的第二个隐私级别数据表明,用户C只对在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂有部分否定的偏好,并且没有对博兹曼山的冬季山地运动和在加勒比岛的海滩度假的否定偏好,所以与用户C相关联的计算助理可以确定在博兹曼山的冬季山地运动、在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂和在加勒比岛的海滩度假都应被包括在修改后的精简的列表中。然而,因为用户B的第二个隐私级别数据表明,用户B对在加勒比岛的海滩度假具有完全否定偏好,并且对在博兹曼山的冬季山地运动和在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂没有否定偏好,所以与用户B相关联的计算助理可以确定在博兹曼山的冬季山地运动和在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂应被包括在修改后的精简的列表中,并且在加勒比岛的海滩度假不应被包括在修改后的精简的列表中。

助理模块122A和/或123A可以基于评价确定在博兹曼山的冬季山地运动和在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂应被包括在修改后的精简的列表中。由于修改后的精简的列表包括至少一项推荐,因此助理模块122A和/或123A可以输出修改后的精简的列表以呈现给该组的用户。

图5是示出根据本公开的一个或多个方面的由执行示例虚拟助理的一个或多个处理器执行的示例操作的流程图。下面在图1的系统100的场境中描述图5。例如,根据本公开的一个或多个方面,当在计算设备110A的一个或多个处理器处执行时,本地助理模块122A可以执行操作502-524中的一个或多个。并且在一些示例中,根据本公开的一个或多个方面,当在助理服务器系统160的一个或多个处理器处执行时,远程助理模块122A可以执行操作402-520中的一个或多个。仅为了说明的目的,下面在图1的计算设备110A的场境中描述图5。

在操作中,计算设备110A可以接收对于为一组用户生成推荐的请求(502)。如在图1的示例中所示,用户A、用户B和用户C可以在群聊中。用户A可能会问:“大家还有兴趣在三月份旅行吗?”,用户B可能会回答说“我有兴趣”,用户C可能会问“你考虑去哪里?”。然而,看到聊天的情况,用户B可能会说“别再这样,我们总是说不到一起”。为了避免讨论潜在的目的地,用户A可能会说他们会“让他们的虚拟助理提供一些推荐”。在图1的示例中,用户A可以通过输入助理激活命令来向他们的虚拟助理询问一些推荐,并提供对该组用户的推荐的请求。例如,UI模块120可以在用户A的UID 112处接收用户输入的指示,其中用户A键入“@assistant我们应该在3月份去哪里旅行”。UI模块120可以将用户输入提供到助理模块122A和/或123A。

与组的用户相关联的助理模块可以获得组的用户的同意,以使用第一和第二隐私级别数据(504)。例如,助理模块122A和/或123A可以获得用户A的同意以使用用户A的第一和第二隐私级别数据,助理模块122B和/或123B可以获得用户B的同意以使用用户B的第一和第二隐私级别数据,并且助理模块122C和/或123C可以获得用户C的同意以使用用户C的第一和第二隐私级别数据。

助理模块122A和/或123A可以基于该组的用户的第一隐私级别数据来生成用于该组的原始推荐列表(506)。例如,助理模块122A和/或123A可以评价用户A、用户B和用户C的第一隐私级别数据而生成原始推荐列表。在该示例中,用于组的第一隐私级别数据可以指示用户A、用户B和用户C都喜欢冬季山地运动(例如,滑雪或滑雪板运动)、波旁酒和热带度假。基于第一隐私级别数据,助理模块122A和/或123A可以生成原始推荐列表,以包括适合冬季山地运动的博兹曼山、适合品尝波旁酒和参观酿酒厂的肯塔基州列克星敦市、以及适合海滩度假的加勒比岛。助理模块122A和/或123A可以传播或以其他方式输出原始推荐列表到与组的其他用户相关联的计算助理。例如,助理模块122A和/或123A可以将原始推荐列表输出到与用户B相关联的计算助理(例如,助理模块122B和/或123B)、以及与用户C相关联的计算助理(例如,助理模块122C和/或123C)。

与组的用户相关联的相应的计算助理可以基于该组的用户的相应的第二隐私级别数据来评价来自原始推荐列表的推荐以包括在精简的推荐列表中(508)。例如,助理模块122A和/或123A可以基于用户A的第二隐私级别数据来确定用户A是否对来自原始推荐列表的推荐有任何否定的偏好。类似地,与用户B相关联的计算助理可以基于用户B的第二隐私级别数据来确定用户B是否对来自原始推荐列表的推荐有任何否定的偏好,并且与用户C相关联的计算助理可以基于用户C的第二隐私级别数据来确定用户C是否对来自原始推荐列表的推荐有任何否定的偏好。

继续上述示例,助理模块122A和/或123A可以至少基于指示用户A最近去滑雪旅行的用户A的第二隐私级别数据来确定用户A对在博兹曼山的冬季山地运动具有部分否定偏好(例如,60%的反对)。因此,助理模块122A和/或123A可以确定在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂以及在加勒比岛的海滩度假应该被包括在精简的列表中,并且不应将在博兹曼山的冬季山地运动包括在精简的列表中。

与用户B相关联的计算助理可以至少基于用户B的第二隐私级别数据(该数据指示,用户B正打算要小孩,并且进行了关于寨卡病毒的大量搜索)和指示加勒比岛上存在寨卡病毒的数据来确定用户B对于加勒比岛具有完全否定的偏好(例如,100%的反对)。因此,与用户B相关联的计算助理可以确定在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂以及在博兹曼山的冬季山地运动应该被包括在精简的列表中,并且不应将在加勒比岛的海滩度假包括在精简的列表中。

与用户C相关联的计算助理可以至少基于指示用户C已尝试少饮酒的用户C的第二隐私级别数据来确定用户C对在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂具有部分否定偏好(例如,25%的反对)。因此,与用户C相关联的计算助理可以确定在博兹曼山的冬季山地运动和在加勒比岛的海滩度假应该被包括在精简的列表中,并且不应将在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂包括在精简的列表中。

助理模块122A和/或123A可以基于由计算助理执行的评价来生成精简的推荐列表。例如,助理模块122A和/或123A可以确定包括在原始推荐列表中的每个相应的推荐是否已被至少一个计算助理否决。如果来自原始推荐列表的推荐没有被任何计算助理否决,则助理模块122A和/或123A可以将该推荐包括在精简的推荐列表中。

助理模块122A和/或123A可以确定在所得到的精简的推荐列表中是否存在任何推荐(510)。响应于精简的推荐列表包括至少一项推荐(即,在来自原始推荐列表的至少一项推荐未被与该组的用户相关联的任何计算助理否决的情况下)(510的“是”分支),助理模块122A和/或123A可以输出精简的推荐列表(512)。作为一个示例,助理模块122A和/或123A可以使UI模块120显示包括精简的推荐列表的GUI。作为另一示例,助理模块122A和/或123A可以使UI模块120输出包括精简的推荐列表的合成语音。作为另一示例,助理模块122A和/或123A可以将精简的推荐列表输出到与该组的其他用户相关联的计算助理,计算助理然后可以向其相应的用户显示、说出或以其他方式输出精简的推荐列表。

响应于精简的推荐列表不包括至少一项推荐(510的“否”分支),与组的用户相关联的相应的计算助理可以基于该组用户的加权的相应的第二隐私级别数据来评价来自原始推荐列表的推荐以包括在修改后的精简的推荐列表中(514)。例如,与该组的用户相关联的计算助理可以确定该用户的第二隐私级别数据是否指示用户对于该推荐具有高于初始阈值的否定偏好。在一些示例中,阈值开始可以设置得较低(例如,5%、10%、15%、...、25%等),并且如下文进一步详细讨论的,如果没有推荐能够被提供则阈值可以增加。在助理确定用户的第二隐私级别数据指示该用户对推荐的偏好高于阈值的情况下,助理可以确定该推荐不应被包括在修改后的精简的推荐列表。在一些示例中,如果助理不能够使用初始阈值提供任何推荐,则助理可以确定用户的第二隐私级别数据是否指示用户对推荐的否定偏好高于增加的阈值(例如,比先前的阈值高5%、10%等)。

如果修改后的精简的列表包括至少一项推荐(516的“是”分支),则助理模块122A和/或123A可以输出修改后的精简的推荐列表(518)。例如,助理模块122A和/或123A可以以类似于上述精简的推荐列表的输出的方式输出修改后的精简的推荐列表。如果修改后的精简的列表不包括至少一项推荐(516的“否”分支),则助理模块122A和/或123A可以确定用来评价推荐的权重是否高于最大阈值(520)。例如,助理模块122A和/或123A可以确定用来评价推荐的阈值是否高于最大总阈值水平(例如,75%、85%、90%、95%)。如果权重高于最大阈值(520的“是”分支),则助理模块122A和/或123A可以输出计算助理不能为该组提供任何推荐的指示(524)。如果权重不高于最大阈值(520的“否”分支),则助理模块122A和/或123A可以增加权重(522)。例如,助理模块122A和/或123A可以将阈值增加5%、10%、20%等。与该组的用户相关联的相应的计算助理可以基于该组的用户的相应的第二隐私级别数据的增加的权重来评价来自原始推荐列表的推荐,以包括在修改后的精简的推荐列表中(514)。例如,与该组的用户相关联的计算助理可以确定该用户的第二隐私级别数据是否指示用户对于该推荐具有高于增加的阈值的否定偏好。在一些示例中,循环可以继续,直到计算助理能够提供至少一项推荐。在一些示例中,循环可以继续,直到用来评价推荐的阈值高于最大总阈值水平。这样,助理模块可以将大多数可取的推荐包括在修改后的精简的列表中,同时不包括某些用户具有强烈否定的偏好的推荐。

继续上述示例,其中原始推荐列表包括适合冬季山地运动的博兹曼山、适合品尝波旁酒和参观酿酒厂的肯塔基州列克星敦市、以及适合海滩度假的加勒比岛。助理模块122A和/或123A可以基于评价确定在精简列表中没有剩余的推荐。具体地讲,博兹曼山的冬季山地运动被用户A的计算助理(即助理模块122A和/或123A)否决,在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂被用户C的计算助理(即助理模块122C和/或123C)否决,并且在加勒比岛的海滩度假被用户B的计算助理(即助理模块122B和/或123B)否决。

与用户A、用户B和用户C相关联的计算助理可以基于相应的用户的加权的相应的第二隐私级别数据来评价来自原始推荐列表的推荐,以便包括在修改后的精简的推荐列表中。例如,与用户A、用户B和用户C相关联的计算助理可以确定相应的用户的第二隐私数据是否指示相应的用户对来自原始推荐列表的推荐的否定偏好满足初始阈值(10%,为了本例的目的)。

例如,因为用户A的第二个隐私级别数据表明,用户A对博兹曼山的冬季山地运动有60%反对的偏好,并且没有对在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂和在加勒比岛的海滩度假的否定偏好,所以助理模块122A和/或123A可以确定在博兹曼山的冬季山地运动(例如,因为60%的反对偏好大于10%的阈值)不应被包括在修改后的精简的列表中,并且在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂和在加勒比岛的海滩度假应被包括在修改后的精简的列表中。类似地,因为用户C的第二个隐私级别数据表明,用户C对于在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂有25%反对的偏好,并且没有对在博兹曼山的冬季山地运动和在加勒比岛的海滩度假的否定偏好,所以与用户C相关联的计算助理可以确定在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂(例如,因为25%的反对偏好大于10%的阈值)不应被包括在修改后的精简的列表中,并且在博兹曼山的冬季山地运动和在加勒比岛的海滩度假应被包括在修改后的精简的列表中。另外,因为用户B的第二个隐私级别数据表明,用户B对在加勒比岛的海滩度假具有100%反对的偏好,并且对在博兹曼山的冬季山地运动和在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂没有否定偏好,所以与用户B相关联的计算助理可以确定在博兹曼山的冬季山地运动和在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂应被包括在修改后的精简的列表中,并且在加勒比岛的海滩度假不应被包括在修改后的精简的列表中。

助理模块122A和/或123A可以基于评价确定来自原始推荐列表的推荐都不应被包括在修改后的精简的列表中(例如,因为博兹曼山的冬季山地运动被用户A的计算助理否决,在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂被用户C的计算助理否决,并且在加勒比岛的海滩度假被用户B的计算助理否决)。因为修改后的精简的列表不包括任何推荐,所以助理模块122A和/或123A可以增加阈值。例如,助理模块122A和/或123A可以将阈值增加到30%。由于用户C对在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂的反对偏好25%低于30%的增加的阈值,因此与用户C相关联的计算助理可以确定在肯塔基州列克星敦市品尝波旁酒和参观酿酒厂应被包括在修改后的精简的推荐列表中。然而,由于用户A对在博兹曼山的冬季山地运动的反对偏好60%高于30%的增加的阈值,与用户A相关联的计算助理可以确定在博兹曼山的冬季山地运动仍然不应被包括在修改后的精简的推荐列表中。类似地,由于用户B对在加勒比岛的海滩度假的反对偏好100%高于30%的增加的阈值,因此与用户B相关联的计算助理可以确定在加勒比岛的海滩度假仍然不应被包括在修改后的精简的推荐列表中。由于修改后的精简的列表包括至少一项推荐,因此助理模块122A和/或123A可以输出修改后的精简的列表以呈现给该组的用户。

以下编号的示例可以示出本公开的一个或多个方面:

示例1.一种方法,包括:响应于接收到为一组用户进行推荐的请求,基于该组的用户的第一隐私级别数据而生成用于该组的原始推荐列表;由与该组的用户相关联的相应的计算助理基于该组的用户的相应的第二隐私级别数据来评价来自原始推荐列表的推荐,以包括在用于该组的精简的推荐列表中,其中第二隐私级别比第一隐私级别更受限制;以及响应于精简的推荐列表包括至少一项推荐,输出精简的推荐列表以呈现给该组的用户。

示例2.示例1的方法,其中,精简的推荐列表包括第一精简的推荐列表,该方法还包括:响应于第一精简的推荐列表包括零推荐,由该组的用户的相应的计算助理基于该组的用户的加权的相应的第二隐私级别数据评价来自原始推荐列表的推荐以用于被包括在用于该组的第二精简的推荐列表中;并且响应于第二精简的推荐列表包括至少一个推荐,输出第二精简的推荐列表用于向组的用户呈现。

示例3.示例2的方法,其中,由与该组的特定用户相关联的计算助理基于该组的该特定用户的相应的第二隐私级别数据来评价来自原始推荐列表的推荐以包括在用于该组的第一精简的推荐列表中包括:响应于确定该组的特定用户的相应的第二隐私级别数据指示该特定用户对该推荐具有任何否定的偏好,确定不将该推荐包括在第一精简的推荐列表中。

示例4.示例3的方法,其中,由与该组的特定用户相关联的计算助理基于该组的该特定用户的加权的相应的第二隐私级别数据来评价来自原始推荐列表的推荐以包括在用于该组的第二精简的推荐列表中包括:响应于确定该组的特定用户的相应的第二隐私级别数据指示该特定用户对该推荐具有完全否定偏好,确定不将该推荐包括在第二精简的推荐列表中。

示例5.示例1–4的任何组合的方法,其中,由与该组的特定用户相关联的计算助理基于该组的该特定用户的加权的相应的第二隐私级别数据来评价来自原始推荐列表的推荐以包括在用于该组的第二精简的推荐列表中包括:响应于确定该组的特定用户的相应的第二隐私级别数据指示该特定用户对该推荐具有部分否定偏好,确定将该推荐包括在第二精简的推荐列表中。

示例6.示例1–5的任何组合的方法,其中,从不包括在该组用户中的请求用户接收请求,并且其中,原始推荐列表不基于请求用户的数据而生成。

示例7.示例1–5的任何组合的方法,其中,从包括在该组用户中的请求用户接收请求,并且其中,原始推荐列表基于请求用户的数据而生成。

示例8.示例1–7的任何组合的方法,其中,请求针对下列中的一者或多者:娱乐推荐;食物推荐;旅游推荐;以及分享的商品推荐。

示例9.示例1–8的任何组合的方法,其中,该组的用户的第一隐私级别数据包括该组的用户的可公开获得的数据。

示例10.一种计算设备,包括:至少一个处理器;以及包括指令的至少一个存储器,指令在被执行时使得至少一个处理器提供计算助理,该计算助理被配置为:响应于接收到为一组用户进行推荐的请求并且基于该组的用户的第一隐私级别数据而生成用于该组的原始推荐列表;向与组的用户相关联的相应的计算助理输出原始推荐列表;从与组的用户相关联的相应的计算助理并且基于该组的用户的相应的第二隐私级别数据来接收是否应将来自原始推荐列表的推荐包括在用于该组的精简的推荐列表中的指示,其中第二隐私级别比第一隐私级别更受限制;以及响应于精简的推荐列表包括至少一项推荐而输出精简的推荐列表以呈现给该组的用户。

示例11.示例10的计算设备,其中,精简的推荐列表包括第一精简的推荐列表,计算助理还被配置成:从与组的用户相关联的相应的计算助理并且基于该组的用户的加权的相应的第二隐私级别数据接收来自原始推荐列表的推荐是否应被包括在用于该组的第二精简的推荐列表中的指示;并且响应于第二精简的推荐列表包括至少一项推荐并且为了呈现给该组的用户而输出第二精简的推荐列表。

示例12.示例11的计算设备,其中,与特定用户相关联的计算助理被配置成:响应于确定该组的特定用户的相应的第二隐私级别数据指示该特定用户对该推荐具有任何否定偏好,确定不将来自原始推荐列表的推荐包括在第一精简的推荐列表中。

示例13.示例12的计算设备,其中,与特定用户相关联的计算助理被配置成:响应于确定该组的特定用户的相应的第二隐私级别数据指示该特定用户对该推荐具有完全否定偏好,确定不将该推荐包括在第二精简的推荐列表中。

示例14.示例10–13的任何组合的计算设备,其中,与特定用户相关联的计算助理被配置成:响应于确定该组的特定用户的相应的第二隐私级别数据指示该特定用户对该推荐具有部分否定偏好,确定将该推荐包括在第二精简的推荐列表中。

示例15.示例10–14的任何组合的计算设备,其中,从不包括在该组用户中的请求用户接收请求,并且其中,原始推荐列表不基于请求用户的数据而生成。

示例16.示例10–14的任何组合的计算设备,其中,从包括在该组用户中的请求用户接收请求,并且其中,原始推荐列表基于请求用户的数据而生成。

示例17.示例10–16的任何组合的计算设备,其中,请求针对下列中的一者或多者:娱乐推荐;食物推荐;旅游推荐;以及分享的商品推荐。

示例18.示例10–17的任何组合的计算设备,其中,该组的用户的第一隐私级别数据包括该组的用户的可公开获得的数据。

示例19.一种存储指令的非暂时性计算机可读存储介质,指令在被执行时使得计算设备的一个或多个处理器:响应于接收到为一组用户进行推荐的请求并且基于该组的用户的第一隐私级别数据而生成用于该组的原始推荐列表;向与组的用户相关联的相应的计算助理输出原始推荐列表;从与组的用户相关联的相应的计算助理并且基于该组的用户的相应的第二隐私级别数据接收是否应将来自原始推荐列表的推荐包括在用于该组的精简的推荐列表中的指示,其中第二隐私级别比第一隐私级别更受限制;以及响应于精简的推荐列表包括至少一项推荐而输出精简的推荐列表以呈现给该组的用户。

示例20.示例19的非暂时性计算机可读存储介质,其中,精简的推荐列表包括第一精简的推荐列表,非暂时性计算机可读存储介质还存储使计算设备的一个或多个处理器执行以下操作的指令:从与组的用户相关联的相应的计算助理并且基于该组的用户的加权的相应的第二隐私级别数据接收来自原始推荐列表的推荐是否应被包括在用于该组的第二精简的推荐列表中的指示;并且响应于第二精简的推荐列表包括至少一项推荐并且为了呈现给该组的用户而输出第二精简的推荐列表。

示例21.示例19的非暂时性计算机可读存储介质,进一步存储指令,指令使一个或多个处理器执行示例1–9的任何组合的方法。

示例22.一种计算设备,包括用于执行示例1–9的任何组合的方法的装置。

在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任何组合中实现。如果在软件中实现,则功能可以作为一个或多个指令或代码存储在计算机可读介质上或在计算机可读介质上传输并且由基于硬件的处理单元执行。计算机可读介质可以包括计算机可读存储介质,其对应于诸如数据存储介质的有形介质;或通信介质,其包括有利于将计算机程序例如根据通信协议从一个地方传送到另一个地方的任何介质。这样,计算机可读介质通常可以对应于:(1)有形的计算机可读存储介质,其为非暂时的;或(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问的任何可用介质,以检索用于实现本公开中描述的技术的指令、代码和/或数据结构。计算机程序产品可以包括计算机可读介质。

作为示例而非限制,这样的计算机可读存储介质可包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、闪速存储器或任何其他存储介质,该介质可用于以指令或数据结构的形式存储所需的程序代码,并且可由计算机访问。另外,任何连接被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字订户线(DSL)或诸如红外线、无线电和微波的无线技术从网站、服务器或其他远程源发送指令,则同轴电缆、光纤电缆、双绞线、DSL或诸如红外线、无线电和微波的无线技术都包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他瞬时介质,而是涉及非瞬态有形存储介质。如本文所使用的磁盘和盘包括压缩盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘,其中磁盘通常以磁性方式再现数据,而盘利用激光以光学方式再现数据。以上的组合也应包括在计算机可读介质的范围内。

指令可以由一个或多个处理器执行,例如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它等效的集成或分立逻辑电路。因此,如本文所使用的术语“处理器”可以指适于实现本文所述技术的任何前述结构或任何其它结构。此外,在一些方面,本文描述的功能可以在专用硬件和/或软件模块内提供。另外,这些技术可在一个或多个电路或逻辑元件中完全实现。

本公开的技术可以在各种各样的设备或装置中实现,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置为执行所公开的技术的设备的功能方面,但不一定需要由不同硬件单元实现。相反,如上所述,各种单元可以组合在硬件单元中,或者由包括如上所述的一个或多个处理器的合作的硬件单元的集合结合合适的软件和/或固件来提供。

已经描述了各种实施例。这些和其它实施例在所附权利要求的范围内。

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