帮助用户在社交关连之间进行高效的信息共享的制作方法

文档序号:23799589发布日期:2021-02-02 12:12阅读:120来源:国知局
帮助用户在社交关连之间进行高效的信息共享的制作方法

[0001]
本公开总体上涉及在网络环境内的数据库和文件管理,且具体涉及用于智能助理系统(smart assistant system)的硬件和软件。
[0002]
背景
[0003]
助理系统可以基于用户输入、位置感知和从各种在线来源访问信息(如天气状况、交通拥堵、新闻、股票价格、用户日程、零售价格等)的能力的组合来代表用户提供信息或服务。用户输入可以包括文本(例如,在线聊天)(尤其是在即时消息传递应用或其他应用中的文本)、声音(voice)、图像或它们的组合。助理系统可以基于用户输入来执行礼宾类型的服务(例如,预订晚餐、购买活动门票、安排旅行)或者提供信息。助理系统也可以基于在线信息和事件执行管理或数据处理任务,而无需用户启动或交互。可以由助理系统执行的那些任务的示例可以包括日程管理(例如,对晚餐约会发送用户由于交通状况而要迟到的告警信息,更新双方的日程,以及改变餐馆预订时间)。助理系统可以通过计算设备、应用编程接口(api)、以及用户设备上应用激增(proliferation)的组合来实现。
[0004]
可以包括社交网络网站的社交网络系统可以使它的用户(例如个人或组织)能够与它交互以及通过它彼此交互。社交网络系统可以利用来自用户的输入来在社交网络系统中创建并存储与用户相关联的用户简档(user profile)。用户简档可以包括用户的人口统计信息、通信渠道信息以及关于个人兴趣的信息。社交网络系统还可以用来自用户的输入来创建并存储用户与社交网络系统的其他用户的关系的记录,以及提供服务(例如,简档/动态消息(news feed)帖子、照片分享、事件组织、消息传递、游戏或广告)以便于在用户之间或当中的社会交互。
[0005]
社交网络系统可以通过一个或更多个网络向用户的移动设备或其他计算设备发送与它的服务相关的内容或消息。用户还可以在用户的移动设备或其他计算设备上安装软件应用,用于访问用户的用户简档和在社交网络系统内的其他数据。社交网络系统可以生成一组个性化的内容对象以显示给用户,例如关连(connect)到该用户的其他用户的汇集的动态(story)的动态消息。
[0006]
特定实施例的概述
[0007]
在特定实施例中,助理系统可以帮助用户获得信息或服务。助理系统可以使用户能够在有状态和多轮会话(stateful and multi-turn conversations)中通过多模态用户输入(如声音、文本、图像、视频)与它进行交互,以获得帮助。助理系统可以创建和存储用户简档,该用户简档包括与用户相关联的个人信息和上下文信息(contextual information)。在特定实施例中,助理系统可以使用自然语言理解来分析用户输入。分析可以基于用户简档,以获得更个性化和上下文感知的理解。助理系统可以基于分析来解析(resolve)与用户输入相关联的实体。在特定实施例中,助理系统可以与不同的代理交互,以获得与解析的实体相关联的信息或服务。助理系统可以通过使用自然语言生成来为用户生成关于信息或服务的响应。通过与用户的交互,助理系统可以使用对话管理技术来管理和转发与用户的会话流。在特定实施例中,助理系统还可以通过汇总(summarize)信息来辅
助用户有效且高效地消化所获得的信息。助理系统还可以通过提供帮助用户与在线社交网络交互(例如,创建帖子、评论、消息)的工具,来帮助用户更好地参与在线社交网络。助理系统另外可以帮助用户管理不同的任务,如持续跟踪事件。在特定实施例中,助理系统可以基于用户简档在没有用户输入的情况下主动(proactively)执行与用户兴趣和偏好相关的任务。在特定实施例中,助理系统可以检查隐私设置,以确保根据用户的隐私设置来允许访问用户的简档或其他用户信息以及执行不同的任务。
[0008]
在特定实施例中,助理系统可以使用户能够容易地与他们的社交关连(social connection)(例如,朋友、家人、同事等)共享他们从助理系统获得的各种类型的信息,例如电影搜索结果、常识、交通信息、新闻等。助理系统可以识别与用户输入相关联的共享信息的请求,并使用助理系统的各种模块来完成该共享任务。可以经由不同的软件/硬件产品以不同的模态将所共享的信息传递给用户的社交关连。例如,john和他的朋友doug可能正在计划一起去西雅图旅行。在他们旅行的那一天,john用助理系统查看天气预报,并相应地得到结果(例如,“今天西雅图的天气是华氏45度,下雨。”)。然后john想和doug共享天气信息。john可以简单地通过说“与john共享它(share it with john)”来向助理系统输入命令。在接收到共享请求时,助理系统可以正确地理解john的意图(intent),并与doug共享天气信息(例如,通过经由消息传递应用向doug发送消息)。在特定实施例中,助理系统可以进行隐私检查,以确保用户请求共享的信息不违反任何隐私设置。为了实现高效的共享,助理系统可以在用户上下文引擎中存储用户与助理系统的先前交互结果,当接收到与其他用户共享这些先前交互结果的请求时,可以容易地检索这些先前交互结果。替代地,助理系统可以存储与关联于用户的先前交互结果相关联的对话状态,并且以后检索该对话状态用于共享。每个存储的交互结果可以与到期时间相关联,在到期时间之后,交互结果变得无效,并且必须由助理系统重新确定。尽管本公开描述了以特定方式经由特定系统共享特定信息,但是本公开设想了以任何合适的方式经由任何合适的系统共享任何合适的信息。
[0009]
在特定实施例中,助理系统可以从与第一用户相关联的客户端系统接收共享在当前对话会话(dialog session)期间生成的内容的共享请求。助理系统然后可以基于自然语言理解模块来识别与该共享请求相关联的一个或更多个内容对象。一个或更多个内容对象可以是在当前对话会话期间先前生成的。在特定实施例中,助理系统可以基于与第一用户相关联的用户简档来确定共享请求所针对的一个或更多个第二用户。助理系统还可以向与一个或更多个第二用户相关联的一个或更多个客户端系统发送一个或更多个识别的内容对象。
[0010]
在实现帮助用户在社会关连之间进行高效的信息共享的目标方面,存在某些技术挑战。一个技术挑战包括从简单的用户输入中(从众多可能的内容对象中)准确地识别要共享的内容对象。本文公开的实施例所提出的解决上述挑战的解决方案是基于存储在对话引擎中的对话状态的对话管理,该方案可以访问用户与助理系统的先前交互,基于该先前交互确定用户输入的上下文,然后基于该上下文来识别要共享的内容对象。另一个技术挑战包括内容对象的高效共享。本文公开的实施例所提出的解决该挑战的解决方案是存储与关联于用户的先前交互结果相关联的对话状态或内容对象,并响应于共享请求来检索该对话状态或内容对象用于共享,这通过搜索和定位内容对象的简单过程而不是重新生成内容对象的过程使得共享更加高效。另一个技术挑战包括准确地识别共享请求的目标用户。本文
公开的实施例所提出的解决该挑战的解决方案是自然语言理解和实体解析的结合,这允许助理系统确定与目标用户相关联的槽(slot),解析这些槽的实体,并相应地识别与目标用户相关联的标识符。另一个技术挑战包括与目标用户共享信息,而不会给他们正在进行的活动造成不便。本文公开的实施例所提出的解决该挑战的解决方案是确定将共享的信息传递给目标用户应该基于的适当的模态,这允许助理系统基于所确定的可能更适合目标用户的当前情况的模态来向目标用户传递内容对象。
[0011]
本文公开的某些实施例可以提供一个或更多个技术优势。实施例的一个技术优势可以包括便于用户访问互联网上感兴趣和有用的信息。实施例的另一个技术优势可以包括通过基于共享的信息在用户之间创建共同主题来加强用户的社交关连。实施例的另一个技术优势可以包括促进第三方内容提供者更高效的广告投放(advertisement delivery),因为用户可以容易地与他/她的社交关连共享产品的广告。本文公开的某些实施例可以不提供、提供一些或全部上述技术优势。鉴于本公开的附图、描述和权利要求,一个或更多个其他技术优势对于本领域技术人员来说是明显的。
[0012]
本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括本文公开的实施例的组件、元件、特征、功能、操作或步骤中的全部、一些或没有一个被包括。根据本发明的实施例在涉及方法、存储介质、系统和计算机程序产品的所附权利要求中被具体公开,其中,在一个权利要求类别(例如,方法)中提到的任何特征也可以在另一个权利要求类别(例如,系统)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求的有意往回引用(特别是多项引用)而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
[0013]
在根据本发明的实施例中,一种方法可以包括由一个或更多个计算系统:
[0014]
从与第一用户相关联的客户端系统接收共享在当前对话会话期间生成的内容的共享请求;
[0015]
基于自然语言理解模块来识别与共享请求相关联的一个或更多个内容对象,其中该一个或更多个内容对象是在当前对话会话期间先前生成的;
[0016]
基于与第一用户相关联的用户简档,确定共享请求所针对的一个或更多个第二用户;和
[0017]
向与一个或更多个第二用户相关联的一个或更多个客户端系统发送用于访问一个或更多个识别的内容对象的指令。
[0018]
共享请求可以与用户输入相关联,该用户输入包括字符串、图像、视频或音频剪辑中的一个或更多个。
[0019]
在根据本发明的实施例中,一种方法可以包括:
[0020]
基于一个或更多个机器学习模型从用户输入中识别共享请求。
[0021]
识别一个或更多个内容对象可以包括:
[0022]
确定与用户输入相关联的一个或更多个槽;
[0023]
访问用户上下文引擎;和
[0024]
基于一个或更多个槽和用户上下文引擎来识别一个或更多个内容对象。
[0025]
识别一个或更多个内容对象可以包括:
[0026]
确定与用户输入相关联的一个或更多个槽;
[0027]
访问与当前对话会话相关联的对话状态,其中对话状态存储在数据储存器中,并且包括与在当前对话会话期间先前生成的一个或更多个内容对象相关联的信息;和
[0028]
基于一个或更多个槽和对话状态来识别一个或更多个内容对象。
[0029]
对话状态还可以包括在当前对话会话期间先前生成的一个或更多个内容对象。
[0030]
一个或更多个内容对象中的每个内容对象可以与第一用户的标识符或到期时间中的一个或更多个相关联。
[0031]
如果一个或更多个识别的内容对象中的每个内容对象所关联的流逝时间小于它所关联的相应的到期时间,则可以选择一个或更多个识别的内容对象中的该每个内容对象。
[0032]
确定共享请求所针对的一个或更多个第二用户可以包括:
[0033]
确定与用户输入相关联的一个或更多个槽,其中该一个或更多个槽包括一个或更多个用户槽;和
[0034]
基于与第一用户相关联的用户简档,解析一个或更多个用户槽以识别与一个或更多个第二用户相关联的一个或更多个实体。
[0035]
可以基于与相应的内容对象相关联的隐私设置来确定一个或更多个识别的内容对象。
[0036]
一个或更多个先前生成的内容对象可以对应于当前对话会话期间来自第一用户的先前帮助请求(assistance request)。
[0037]
在根据本发明的实施例中,一种方法可以包括:
[0038]
为一个或更多个第二用户中的每个第二用户确定与一个或更多个第二用户相关联的一个或更多个模态。
[0039]
向一个或更多个第二用户中的每个第二用户发送一个或更多个识别的内容对象可以基于所确定的一个或更多个模态。
[0040]
一个或更多个模态可以包括文本、音频、图像、视频或其组合。
[0041]
在根据本发明的实施例中,一种方法可以包括:
[0042]
分别为一个或更多个第二用户生成一个或更多个通信内容,其中每个通信内容基于为相应的第二用户确定的一个或更多个模态。
[0043]
在根据本发明的实施例中,一种方法可以包括:
[0044]
基于来自相应的第二用户的一个或更多个信号,确定向与一个或更多个第二用户中的每个第二用户相关联的相应客户端系统发送一个或更多个识别的内容对象是否成功。
[0045]
在根据本发明的实施例中,一种方法可以包括:
[0046]
为第一用户生成一个或更多个通信内容,其中每个通信内容包括与针对每个第二用户的共享请求相关联的状态,该状态指示向相应的客户端系统发送一个或更多个识别的
内容对象是否成功;和
[0047]
向与第一用户相关联的客户端系统发送一个或更多个通信内容,用于在当前对话会话中显示。
[0048]
在根据本发明的实施例中,一种方法可以包括:
[0049]
在确定向相应的客户端系统发送一个或更多个识别的内容对象成功时,在第一用户和相应的第二用户之间发起消息线程。
[0050]
向与相应的第二用户相关联的每个客户端系统发送一个或更多个识别的内容对象可以与通知相关联,该通知指示一个或更多个识别的内容对象由第一用户共享。
[0051]
在根据本发明的实施例中,一个或更多个计算机可读非暂时性存储介质可以体现软件,该软件在被执行时可操作来:
[0052]
从与第一用户相关联的客户端系统接收共享在当前对话会话期间生成的内容的共享请求;
[0053]
基于自然语言处理模块来识别与共享请求相关联的一个或更多个内容对象,其中该一个或更多个内容对象是在当前对话会话期间先前生成的;
[0054]
基于与第一用户相关联的用户简档,确定共享请求所针对的一个或更多个第二用户;和
[0055]
向与一个或更多个第二用户相关联的一个或更多个客户端系统发送一个或更多个识别的内容对象。
[0056]
在根据本发明的实施例中,一种系统可以包括:一个或更多个处理器;以及耦合到处理器的非暂时性存储器,该非暂时性存储器包括由所述处理器可执行的指令,处理器在执行指令时可操作来:
[0057]
从与第一用户相关联的客户端系统接收共享在当前对话会话期间生成的内容的共享请求;
[0058]
基于自然语言处理模块来识别与共享请求相关联的一个或更多个内容对象,其中该一个或更多个内容对象是在当前对话会话期间先前生成的;
[0059]
基于与第一用户相关联的用户简档,确定共享请求所针对的一个或更多个第二用户;和
[0060]
向与一个或更多个第二用户相关联的一个或更多个客户端系统发送一个或更多个识别的内容对象。
[0061]
在根据本发明的实施例中,一种方法,特别地在助理系统中使用的方法,用于通过使用户能够在会话中利用用户输入与助理系统交互以获取帮助,来帮助用户获得信息或服务,其中用户输入包括声音、文本、图像或视频或它们的任意组合,该助理系统特别地通过计算设备、应用编程接口(api)以及用户设备上应用激增的组合来实现,该方法可以包括由一个或更多个计算系统:
[0062]
从与第一用户相关联的客户端系统接收共享在当前对话会话期间生成的内容的共享请求;
[0063]
基于自然语言理解模块来识别与共享请求相关联的一个或更多个内容对象,其中该一个或更多个内容对象是在当前对话会话期间先前生成的;
[0064]
基于与第一用户相关联的用户简档,确定共享请求所针对的一个或更多个第二用
户;和
[0065]
向与一个或更多个第二用户相关联的一个或更多个客户端系统发送用于访问一个或更多个识别的内容对象的指令。
[0066]
一个或更多个计算机可读非暂时性存储介质,其体现软件,该软件在被执行时可操作来执行根据本发明或任何上面提到的实施例的方法。
[0067]
一种系统,特别是一种助理系统,用于通过使用户能够在会话中利用用户输入与助理系统交互以获取帮助,来帮助用户获得信息或服务,其中用户输入包括声音、文本、图像或视频或它们的任意组合,该助理系统特别地通过计算设备、应用编程接口(api)和用户设备上应用激增的组合来实现,该系统包括:一个或更多个处理器;以及耦合到处理器的非暂时性存储器,该非暂时性存储器包括由处理器可执行的指令,处理器在执行指令时可操作来执行根据本发明或任何上面提到的实施例的方法。
[0068]
在根据本发明的实施例中,一种助理系统,用于通过执行以下特征或步骤中的至少一个或更多个来帮助用户:
[0069]-创建并存储包括与用户相关联的个人信息和上下文信息的用户简档
[0070]-使用自然语言理解来分析用户输入,其中该分析可以基于用户简档,以获得更个性化和上下文感知的理解
[0071]-基于分析来解析与用户输入相关联的实体
[0072]-与不同的代理交互,以获得与解析的实体相关联的信息或服务
[0073]-通过使用自然语言生成来为用户生成关于信息或服务的响应
[0074]-通过与用户的交互,使用对话管理技术来管理和转发与用户的会话流
[0075]-通过汇总信息,帮助用户有效地且高效地消化所获得的信息
[0076]-通过提供帮助用户与在线社交网络交互(例如,创建帖子、评论、消息)的工具,来帮助用户更好地参与在线社交网络
[0077]-帮助用户管理不同的任务,例如持续跟踪事件
[0078]-在与用户相关的时间,而没有用户输入的情况下,基于用户简档主动执行与用户兴趣和偏好相关的预授权任务
[0079]-每当有必要确保访问用户简档和执行不同的任务都遵守用户的隐私设置时就检查隐私设置。
[0080]
在根据本发明的实施例中,一种助理系统可以包括以下部件中的至少一个或更多个:
[0081]-消息传递平台,其用于从与用户相关联的客户端系统接收基于文本模态的用户输入,和/或用于接收基于图像或视频模态的用户输入,并在消息传递平台内使用光学字符识别技术对基于图像或视频模态的该用户输入进行处理,以将该用户输入转换成文本,
[0082]-音频语音识别(asr)模块,其用于从与用户相关联的客户端系统接收基于音频模态的用户输入(例如,用户可以说话或者发送包括语音的视频),并将基于音频模态的该用户输入转换成文本,
[0083]-助理xbot,其用于接收消息传递平台或asr模块的输出。
[0084]
在根据本发明的实施例中,一种系统可以包括:
[0085]
至少一个客户端系统(130),特别是电子设备,
[0086]
根据任何上面提到的实施例的至少一个助理系统(140),
[0087]
该客户端系统和该助理系统特别地通过网络(110)彼此连接,
[0088]
其中客户端系统包括用于允许客户端系统(130)处的用户与助理系统(140)交互的助理应用(136),
[0089]
其中助理应用(136)将用户输入传送给助理系统(140),并且基于用户输入,助理系统(140)生成响应并将生成的响应发送给助理应用(136),并且助理应用(136)向客户端系统(130)处的用户呈现响应,
[0090]
其中特别地,用户输入是音频或口头的,并且响应可以是文本的或者也可以是音频或口头的。
[0091]
在根据本发明的实施例中,一种系统可以包括社交网络系统(160),
[0092]
其中客户端系统特别地包括用于访问社交网络系统(160)的社交网络应用(134)。
[0093]
在根据本发明的实施例中,一个或更多个计算机可读非暂时性存储介质可以体现软件,该软件在被执行时可操作来执行根据本发明或任何上面提到的实施例的方法。
[0094]
在根据本发明的实施例中,一种系统可以包括:一个或更多个处理器;以及至少一个存储器,其耦合到处理器并且包括由处理器可执行的指令,处理器在执行指令时可操作来执行根据本发明或任何上面提到的实施例的方法。
[0095]
在根据本发明的实施例中,一种计算机程序产品,优选地包括计算机可读非暂时性存储介质,该计算机程序产品在数据处理系统上被执行时,可操作来执行根据本发明或任何上面提到的实施例的方法。
[0096]
附图简述
[0097]
图1示出了与助理系统相关联的示例网络环境。
[0098]
图2示出了助理系统的示例架构。
[0099]
图3示出了助理系统响应用户请求的示例流程图。
[0100]
图4示出了基于图2中的助理系统的示例架构的帮助信息共享的示例流程图。
[0101]
图5示出了帮助信息共享的示例流程图。
[0102]
图6示出了用于帮助信息共享的示例方法。
[0103]
图7示出了示例社交图。
[0104]
图8示出了嵌入空间的示例视图。
[0105]
图9示出了示例人工神经网络。
[0106]
图10示出了示例计算机系统。
[0107]
示例实施例的描述
[0108]
系统综述
[0109]
图1示出了与助理系统相关联的示例网络环境100。网络环境100包括通过网络110彼此连接的客户端系统130、助理系统140、社交网络系统160和第三方系统170。尽管图1示出了客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110的特定布置,但是本公开设想了客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110的任何合适的布置。作为示例而不是作为限制,客户端系统130、社交网络系统160、助理系统140和第三方系统170中的两个或更多个可以绕过网络110彼此直接连接。作为另一个示例,客户端系统130、助理系统140、社交网络系统160和第三方系统170中的两个或更
多个可以全部或部分地在物理上或逻辑上彼此位于同一位置。此外,尽管图1示出了特定数量的客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110,但是本公开设想了任何合适数量的客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110。作为示例而不是作为限制,网络环境100可以包括多个客户端系统130、助理系统140、社交网络系统160、第三方系统170和网络110。
[0110]
本公开设想了任何合适的网络110。作为示例而不是作为限制,网络110的一个或更多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网的一部分、公共交换电话网(pstn)的一部分、蜂窝电话网、或这些中的两个或更多个的组合。网络110可以包括一个或更多个网络110。
[0111]
链路150可以将客户端系统130、助理系统140、社交网络系统160和第三方系统170连接到通信网络110或连接到彼此。本公开设想了任何合适的链路150。在特定实施例中,一个或更多个链路150包括一个或更多个有线(诸如例如数字用户线路(dsl)或基于电缆的数据服务接口规范(docsis))链路、无线(诸如例如wi-fi或全球互通微波接入(wimax))链路、或光(诸如例如同步光网络(sonet)或同步数字体系(sdh))链路。在特定实施例中,一个或更多个链路150各自包括自组织网络、内联网、外联网、vpn、lan、wlan、wan、wwan、man、互联网的一部分、pstn的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路150、或两个或更多个这种链路150的组合。链路150不需要在整个网络环境100中一定是相同的。一个或更多个第一链路150可以在一个或更多个方面上不同于一个或更多个第二链路150。
[0112]
在特定实施例中,客户端系统130可以是一种电子设备,该电子设备包括硬件、软件或嵌入式逻辑部件、或两个或更多个这样的部件的组合,并且能够执行由客户端系统130实现或支持的适当功能。作为示例而不是作为限制,客户端系统130可以包括计算机系统,如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、gps设备、照相机、个人数字助理(pda)、手持电子设备、蜂窝电话、智能手机、智能扬声器、其他合适的电子设备、或其任何合适的组合。在特定实施例中,客户端系统130可以是智能助理设备。关于智能助理设备的更多信息可以在2018年4月9日提交的美国专利申请第15/949011号、2018年4月10日提交的美国专利申请第62/655751号、2018年1月3日提交的美国专利申请第29/631910号、2018年1月2日提交的美国专利申请第29/631747号、2018年1月3日提交的美国专利申请第29/631913号和2018年1月3日提交的美国专利申请第29/631914号中找到,这些专利申请通过引用并入。本公开设想了任何合适的客户端系统130。客户端系统130可以使在客户端系统130处的网络用户能够访问网络110。客户端系统130可以使它的用户能够与在其他客户端系统130处的其他用户进行通信。
[0113]
在特定实施例中,客户端系统130可以包括web浏览器132,例如microsoft internet explorer、google chrome或mozilla firefox,并且可以具有一个或更多个附加件、插件或其他扩展件,例如toolbar或yahoo toolbar。在客户端系统130处的用户可以输入统一资源定位符(url)或将web浏览器132引导到特定的服务器(例如服务器162或与第三方系统170相关联的服务器)的其他地址,并且web浏览器132可以生成超文本传输协议(http)请求并将http请求传递到服务器。服务器可以接受http请求,并响应于http请求而
向客户端系统130传递一个或更多个超文本标记语言(html)文件。客户端系统130可以基于来自服务器的html文件来显现web界面(例如网页)用于呈现给用户。本公开设想了任何合适的源文件。作为示例而不是作为限制,可以根据特定的需要根据html文件、可扩展超文本标记语言(xhtml)文件或可扩展标记语言(xml)文件来显现web界面。这样的界面还可以执行脚本,诸如例如且没有限制地,用javascript、java、microsoft silverlight编写的脚本、标记语言和脚本的组合(例如ajax(异步javascript和xml))等。在本文,在适当的情况下,对web界面的引用包括一个或更多个相应的源文件(浏览器可以使用这些源文件来显现web界面),反之亦然。
[0114]
在特定实施例中,客户端系统130可以包括安装在客户端系统130上的社交网络应用134。客户端系统130处的用户可以使用社交网络应用134来访问在线社交网络。客户端系统130处的用户可以使用社交网络应用134来与用户的社交关连(connection)(例如,朋友、关注者(follower)、关注账户、联系人等)进行通信。客户端系统130处的用户还可以使用社交网络应用134来与在线社交网络上的多个内容对象(例如,帖子、新闻文章、临时内容等)交互。作为示例而不是作为限制,用户可以使用社交网络应用134浏览热门话题和突发新闻。
[0115]
在特定实施例中,客户端系统130可以包括助理应用136。客户端系统130的用户可以使用助理应用136来与助理系统140交互。在特定实施例中,助理应用136可以包括独立的应用。在特定实施例中,助理应用136可以被集成到社交网络应用134或另一个合适的应用(例如,消息传递应用)中。在特定实施例中,助理应用136也可以集成到客户端系统130、助理硬件设备或任何其他合适的硬件设备中。在特定实施例中,可以经由web浏览器132访问助理应用136。在特定实施例中,用户可以经由不同的模态提供输入。作为示例而不是作为限制,模态可以包括音频、文本、图像、视频等。助理应用136可以将用户输入传送给助理系统140。基于用户输入,助理系统140可以生成响应。助理系统140可以将生成的响应发送给助理应用136。然后,助理应用136可以向客户端系统130的用户呈现响应。所呈现的响应可以基于不同的模态,如音频、文本、图像和视频。作为示例而不是作为限制,用户可以口头向助理应用136询问交通信息(即,经由音频模态)。然后,助理应用136可以将请求传送给助理系统140。助理系统140可以相应地生成结果并将其发送回助理应用136。助理应用136还可以以文本向用户呈现结果。
[0116]
在特定实施例中,助理系统140可以帮助用户从不同的源检索信息。助理系统140还可以帮助用户向不同的服务提供者请求服务。在特定实施例中,助理系统140可以经由客户端系统130中的助理应用136接收用户对信息或服务的请求。助理系统140可以使用自然语言理解来基于用户简档和其他相关信息分析用户请求。分析的结果可以包括与在线社交网络相关联的不同实体。然后,助理系统140可以检索信息或请求与这些实体相关联的服务。在特定实施例中,当为用户检索信息或请求服务时,助理系统140可以与社交网络系统160和/或第三方系统170交互。在特定实施例中,助理系统140可以使用自然语言生成技术为用户生成个性化的通信内容。个性化通信内容可以包括例如检索到的信息或所请求服务的状态。在特定实施例中,助理系统140可以使用户能够通过使用对话管理技术来在有状态和多轮会话中与它进行关于信息或服务的交互。在下面图2的讨论中更详细地描述了助理系统140的功能。
[0117]
在特定实施例中,社交网络系统160可以是可以托管在线社交网络的网络可寻址计算系统。社交网络系统160可以生成、存储、接收并发送社交网络数据(诸如例如,用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据)。社交网络系统160可以由网络环境100的其他部件直接地或经由网络110来访问。作为示例而不是作为限制,客户端系统130可以使用web浏览器132或与社交网络系统160相关联的原生(native)应用(例如,移动社交网络应用、消息传递应用、另一合适的应用或其任何组合)直接地或经由网络110来访问社交网络系统160。在特定实施例中,社交网络系统160可以包括一个或更多个服务器162。每个服务器162可以是单一服务器(unitary server)或跨越多台计算机或多个数据中心的分布式服务器。服务器162可以具有各种类型,诸如,例如且没有限制,web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文描述的功能或过程的另一服务器、或者其任何组合。在特定实施例中,每个服务器162可以包括用于执行由服务器162实现或支持的适当功能的硬件、软件或嵌入式逻辑组件、或两个或更多个这样的部件的组合。在特定实施例中,社交网络系统160可以包括一个或更多个数据储存器164。数据储存器164可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据储存器164中的信息。在特定实施例中,每个数据储存器164可以是关系数据库、纵列(columnar)数据库、相关性数据库或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开设想了任何合适类型的数据库。特定实施例可以提供使客户端系统130、社交网络系统160或第三方系统170能够管理、检索、修改、添加或删除存储在数据储存器164中的信息的接口。
[0118]
在特定实施例中,社交网络系统160可以在一个或更多个数据储存器164中存储一个或更多个社交图。在特定实施例中,社交图可以包括多个节点——其可以包括多个用户节点(各自对应于特定用户)或多个概念节点(各自对应于特定概念)——以及关连节点的多条边。社交网络系统160可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以经由社交网络系统160加入在线社交网络,且然后添加与社交网络系统160中的他们想要关连到的多个其他用户的关连(例如,关系)。在本文,术语“朋友”可以指用户经由社交网络系统160与其形成关连、关联(association)或关系的社交网络系统160的任何其他用户。
[0119]
在特定实施例中,社交网络系统160可以向用户提供对由社交网络系统160支持的各种类型的项目或对象采取动作的能力。作为示例而不是作为限制,项目和对象可以包括社交网络系统160的用户可以属于的群组或社交网络、用户可能感兴趣的事件或日历条目、用户可以使用的基于计算机的应用、允许用户经由服务来购买或销售商品的交易、用户可以执行的与广告的交互、或其他合适的项目或对象。用户可以与能够在社交网络系统160中或者由第三方系统170的外部系统表示的任何事物进行交互,第三方系统170与社交网络系统160分离并且经由网络110耦合到社交网络系统160。
[0120]
在特定实施例中,社交网络系统160能够链接各种实体。作为示例而不是作为限制,社交网络系统160可以使用户能够彼此交互以及从第三方系统170或其他实体接收内容,或者允许用户通过应用编程接口(api)或其他通信渠道与这些实体交互。
[0121]
在特定实施例中,第三方系统170可以包括一种或更多种类型的服务器、一个或更
多个数据储存器、一个或更多个接口(包括但不限于api)、一个或更多个web服务、一个或更多个内容源、一个或更多个网络或任何其他合适的部件(例如,服务器可以与这些部件通信)。第三方系统170可以由与操作社交网络系统160的实体不同的实体进行操作。然而,在特定实施例中,社交网络系统160和第三方系统170可以结合彼此来操作以向社交网络系统160或第三方系统170的用户提供社交网络服务。在这个意义上,社交网络系统160可以提供平台或骨干网,其他系统(例如第三方系统170)可以使用该平台或骨干网来在整个互联网上向用户提供社交网络服务和功能。
[0122]
在特定实施例中,第三方系统170可以包括第三方内容对象提供者。第三方内容对象提供者可以包括可以被传送到客户端系统130的内容对象的一个或更多个源。作为示例而不是作为限制,内容对象可以包括关于用户感兴趣的事情或活动的信息,诸如例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论或其他合适的信息。作为另一个示例而不是作为限制,内容对象可以包括激励内容对象(例如优惠券、折扣券、礼品券或其他合适的激励对象)。
[0123]
在特定实施例中,社交网络系统160还包括用户生成的内容对象,其可以增强用户与社交网络系统160的交互。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统160的任何内容。作为示例而不是作为限制,用户将帖子从客户端系统130传送到社交网络系统160。帖子可以包括数据,例如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容还可以由第三方通过“通信渠道”(例如动态消息或流)来添加到社交网络系统160。
[0124]
在特定实施例中,社交网络系统160可以包括各种服务器、子系统、程序、模块、日志和数据储存器。在特定实施例中,社交网络系统160可以包括下列项中的一个或更多个:web服务器、动作记录器、api请求服务器、相关性和排序引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块(advertisement-targeting module)、用户界面模块、用户简档储存器、关连储存器、第三方内容储存器或位置储存器。社交网络系统160还可以包括合适的部件,如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件、或其任何合适的组合。在特定实施例中,社交网络系统160可以包括用于存储用户简档的一个或更多个用户简档储存器。用户简档可以包括例如,传记信息、人口统计信息、行为信息、社交信息或其他类型的描述性信息(例如工作经历、教育历史、爱好或偏好、兴趣、亲和性或位置)。兴趣信息可以包括与一个或更多个类别相关的兴趣。类别可以是一般的或特定的。作为示例而不是作为限制,如果用户“赞(like)”关于一种品牌的鞋的文章,则该类别可以是品牌,或者“鞋”或“衣服”的一般类别。关连储存器可以用于存储关于用户的关连信息。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好、教育历史或者以任何方式相关或共享共同属性的用户。关连信息还可以包括在不同用户和内容(内部和外部)之间的用户定义的关连。web服务器可以用于经由网络110将社交网络系统160链接到一个或更多个客户端系统130或一个或更多个第三方系统170。web服务器可以包括邮件服务器或用于在社交网络系统160和一个或更多个客户端系统130之间接收并路由(routing)消息的其他消息传递功能。api请求服务器可以允许第三方系统170通过调用一个或更多个api来访问来自社交网络系统160的信息。动作记录器可以用于从web服务器接收关于用户在社交网络系统
160上或之外的动作的通信。结合动作日志,可以维护用户暴露于第三方内容对象的第三方内容对象日志。通知控制器可以向客户端系统130提供关于内容对象的信息。信息可以作为通知被推送到客户端系统130,或者信息可以响应于从客户端系统130接收的请求而从客户端系统130中被拉取。授权服务器可以用于实施社交网络系统160的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被共享。授权服务器可以诸如例如通过设置适当的隐私设置来允许用户选择加入或选择退出使他们的动作由社交网络系统160记录或者与其他系统(例如,第三方系统170)共享。第三方内容对象储存器可以用于存储从第三方(例如第三方系统170)接收的内容对象。位置储存器可以用于存储从客户端系统130接收的与用户相关联的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息以用通知的形式向用户提供相关广告。
[0125]
助理系统
[0126]
图2示出了助理系统140的示例架构。在特定实施例中,助理系统140可以帮助用户获得信息或服务。助理系统140可以使用户能够在有状态和多轮会话中用多模态用户输入(如声音、文本、图像、视频)与其进行交互,以获得帮助。助理系统140可以创建和存储包括与用户相关联的个人信息和上下文信息的用户简档。在特定实施例中,助理系统140可以使用自然语言理解来分析用户输入。分析可以基于用户简档,以获得更个性化和上下文感知的理解。助理系统140可以基于分析来解析与用户输入相关联的实体。在特定实施例中,助理系统140可以与不同的代理交互,以获得与解析的实体相关联的信息或服务。助理系统140可以通过使用自然语言生成来为用户生成关于信息或服务的响应。通过与用户的交互,助理系统140可以使用对话管理技术来管理和转发与用户的会话流。在特定实施例中,助理系统140还可以通过汇总信息来帮助用户有效和高效地消化所获得的信息。助理系统140还可以通过提供帮助用户与在线社交网络交互(例如,创建帖子、评论、消息)的工具,来帮助用户更好地参与在线社交网络。助理系统140另外可以帮助用户管理不同的任务,如持续跟踪事件。在特定实施例中,助理系统140可以在与用户相关的时间,而没有用户输入的情况下,基于用户简档主动执行与用户兴趣和偏好相关的预授权任务。在特定实施例中,助理系统140可以检查隐私设置,以确保根据用户的隐私设置,访问用户的简档或其他用户信息以及执行不同的任务是被允许的。
[0127]
在特定实施例中,助理系统140可以从与用户相关联的客户端系统130中的助理应用136接收用户输入。如果用户输入基于文本模态,则助理系统140可以在消息传递平台205接收它。如果用户输入基于音频模态(例如,用户可以对助理应用136说话或者向助理应用136发送包括语音的视频),则助理系统140可以使用音频语音识别(asr)模块210对其进行处理,以将用户输入转换成文本。如果用户输入基于图像或视频模态,则助理系统140可以使用消息传递平台205内的光学字符识别技术对其进行处理,以将用户输入转换成文本。消息传递平台205或asr模块210的输出可以在助理xbot 215处接收。
[0128]
在特定实施例中,助理xbot 215可以是一种类型的聊天机器人(chat bot)。助理xbot 215可以包括可编程服务通道,可编程服务通道可以是用作用户个人助理的软件代码、逻辑或例程(routine)。助理xbot 215可以作为助理系统140的用户门户。因此,助理xbot 215可以被认为是一种类型的会话代理。在特定实施例中,助理xbot 215可以将文本用户输入发送到自然语言理解(nlu)模块220,以解释用户输入。在特定实施例中,nlu模块
220可以从用户上下文引擎225和语义信息聚合器(semantic information aggregator)230获得信息,以准确理解用户输入。用户上下文引擎225可以存储用户的用户简档。用户的用户简档可以包括用户简档数据,该用户简档数据包括与用户相关联的人口统计信息、社交信息和上下文信息。用户简档数据还可以包括通过动态消息、搜索日志、消息传递平台205等上的对话聚集的用户对多个主题的兴趣和偏好。用户简档的使用可以在隐私检查模块245之后受到保护,以确保用户的信息只能用于他/她的利益,而不能与任何其他人共享。语义信息聚合器230可以向nlu模块220提供与多个预定义的域(domain)、意图和槽相关联的本体数据(ontology data)。在特定实施例中,域可以表示交互的社交背景,例如,教育。意图可以指示用户与助理系统140交互的目的。槽可以表示基本语义实体。例如,“比萨”的槽可以是盘子。语义信息聚合器230还可以从社交图、知识图和概念图中提取信息,并从用户上下文引擎225检索用户简档。语义信息聚合器230还可以通过确定聚合什么信息、注释用户输入的n-gram(n元文法)、基于聚合的信息用置信度分数对n-gram进行排序、将排序后的n-gram公式化为可以被nlu模块220用于理解用户输入的特征,来处理来自这些不同源的信息。基于用户上下文引擎225和语义信息聚合器230的输出,nlu模块220可以以个性化和上下文感知的方式从用户输入中识别域、意图和一个或更多个槽。作为示例而不是作为限制,用户输入可以包括“告诉我如何去星巴克(show me how to get to the starbucks)”。nlu模块220可以基于用户的个人信息和相关联的上下文信息来识别用户想要去的特定星巴克。在特定实施例中,nlu模块220可以包括语言词典(lexicon of language)、语法分析器(parser)和语法规则,以将句子划分成内部表示。nlu模块220还可以包括一个或更多个程序,该程序使用语用学(pragmatics)来执行朴素(naive)语义或随机语义分析,以理解用户输入。在特定实施例中,语法分析器可以基于包括多个长短期记忆(lstm)网络的深度学习架构。作为示例而不是作为限制,语法分析器可以基于循环神经网络文法(rnng)模型,这是一种类型的循环和递归lstm算法。
[0129]
在特定实施例中,来自nlu模块220的所识别的域、意图和一个或更多个槽可以被发送到对话引擎235。在特定实施例中,对话引擎235可以管理用户与助理xbot 215之间的会话流和对话状态。对话引擎235另外可以存储用户和助理xbot 215之间的先前会话。在特定实施例中,对话引擎235可以与实体解析模块240通信,以解析与一个或更多个槽相关联的实体,这支持对话引擎235转发用户和助理xbot 215之间的会话流。在特定实施例中,实体解析模块240可以在解析实体时访问社交图、知识图和概念图。实体可以包括例如独特的用户或概念,每个用户或概念可以具有唯一的标识符(id)。作为示例而不是作为限制,知识图可以包括多个实体。每个实体可以包括与一个或更多个属性值相关联的单个记录。特定记录可以与唯一的实体标识符相关联。对于实体的一个属性,每个记录可以有不同的值。每个属性值可以与置信度概率相关联。属性值的置信度概率表示该值对于给定属性是准确的概率。每个属性值也可以与语义权重相关联。属性值的语义权重可以表示考虑到所有可用信息该值在语义上适合给定属性的程度。例如,知识图可以包括电影“火星救援(the martian)”(2015)的实体,其包括已经从多个内容源(例如,facebook、wikipedia、csm、imdb、metacritics、rovi、tmdb和rotten tomatoes)提取,然后被去重复、解析和融合以生成知识图的单个唯一记录的信息。实体可以与指示电影“火星救援”(2015年)的类型(genre)的空间属性值相关联。实体解析模块240另外可以从用户上下文引擎225请求与用
户输入相关联的用户的用户简档。在特定实施例中,实体解析模块240可以与隐私检查模块245通信,以保证实体的解析不违反隐私策略。在特定实施例中,隐私检查模块245可以使用授权/隐私服务器来实施隐私策略。作为示例而不是作为限制,待解析的实体可以是在他/她的隐私设置中指定他/她的身份不应该在在线社交网络上可搜索的另一个用户,因此实体解析模块240可以响应于请求而不返回该用户的标识符。基于从社交图、知识图、概念图和用户简档获得的信息,并遵循适用的隐私策略,实体解析模块240因此可以以个性化和上下文感知的方式准确地解析与用户输入相关联的实体。在特定实施例中,每个解析的实体可以与由社交网络系统160托管的一个或更多个标识符相关联。作为示例而不是作为限制,标识符可以包括唯一的用户标识符(id)。在特定实施例中,每个解析的实体也可以与置信度分数相关联。
[0130]
在特定实施例中,对话引擎235可以基于所识别的意图和域以及所解析的实体与不同的代理通信。在特定实施例中,代理可以包括第一方代理250和第三方代理255。在特定实施例中,第一方代理250可以包括可由助理系统140访问和控制的内部代理(例如,与在线社交网络提供的服务相关联的代理(messenger、instagram))。在特定实施例中,第三方代理255可以包括助理系统140不能控制的外部代理(例如,音乐流代理(声田(spotify))、门票销售代理(ticketmaster))。第一方代理250可以与第一方提供者260相关联,该第一方提供者260提供由社交网络系统160托管的内容对象和/或服务。第三方代理255可以与第三方提供者265相关联,该第三方提供者265提供由第三方系统170托管的内容对象和/或服务。
[0131]
在特定实施例中,从对话引擎235到第一方代理250的通信可以包括请求由第一方提供者260提供的特定内容对象和/或服务。因此,第一方代理250可以从第一方提供者260检索所请求的内容对象和/或执行命令第一方提供者260执行所请求服务的任务。在特定实施例中,从对话引擎235到第三方代理255的通信可以包括请求由第三方提供者265提供的特定内容对象和/或服务。因此,第三方代理255可以从第三方提供者265检索所请求的内容对象和/或执行命令第三方提供者265执行所请求服务的任务。第三方代理255可以访问隐私检查模块245,以保证在与第三方提供者265交互之前没有隐私侵犯。作为示例而不是作为限制,与用户输入相关联的用户可以在他/她的隐私设置中指定他/她的简档信息对于任何第三方内容提供者是不可见的。因此,当从第三方提供者265检索与用户输入相关联的内容对象时,第三方代理255可以在不向第三方提供者265透露哪个用户正在请求内容对象的情况下完成检索。
[0132]
在特定实施例中,第一方代理250或第三方代理255中的每一个可以被指定用于特定域。作为示例而不是作为限制,域可以包括天气、运输、音乐等。在特定实施例中,助理系统140可以协同使用多个代理来响应用户输入。作为示例而不是作为限制,用户输入可以包括“指引我到我的下一个会议(direct me to my next meeting)”。助理系统140可以使用日历代理来检索下一个会议的位置。助理系统140然后可以使用导航代理来指引用户到下一个会议。
[0133]
在特定实施例中,第一方代理250或第三方代理255中的每一个可以从用户上下文引擎225检索用户简档,从而以个性化和上下文感知的方式执行任务。作为示例而不是作为限制,用户输入可以包括“为我预订去机场的乘坐(book me a ride to the airport)”。运输代理可以执行预订乘坐的任务。运输代理可以在预订乘坐之前从用户上下文引擎225检
索用户的用户简档。例如,用户简档可以指示用户更喜欢出租车,因此运输代理可以为用户预订出租车。作为另一个示例,与用户简档相关联的上下文信息可以指示用户赶时间,因此运输代理可以为用户从拼车服务(例如,uber、lyft)预订乘坐,因为从拼车服务获得乘坐可能比出租车公司更快。在特定实施例中,第一方代理250或第三方代理255中的每一个在执行任务时可以考虑其他因素。作为示例而不是作为限制,其他因素可以包括价格、评级、效率、与在线社交网络的伙伴关系等。
[0134]
在特定实施例中,对话引擎235可以与会话理解编写器(cu编写器)270通信。对话引擎235可以将所请求的内容对象和/或所请求服务的状态发送给cu编写器270。在特定实施例中,对话引擎235可以将所请求的内容对象和/或所请求服务的状态作为<k,c,u,d>元组(tuple)发送,其中k指示知识源、c指示通信目标、u指示用户模型,并且d指示话语(discourse)模型。在特定实施例中,cu编写器270可以包括自然语言生成器(nlg)271和用户界面(ui)有效载荷生成器272。自然语言生成器271可以基于对话引擎235的输出生成通信内容。在特定实施例中,nlg271可以包括内容确定部件、句子规划器和表层实现(surface realization)部件。内容确定部件可以基于知识源、通信目标和用户的期望来确定通信内容。作为示例而不是作为限制,确定可以基于描述逻辑。描述逻辑可以包括例如三个基本观念(notion),它们是个体(表示域中的对象)、概念(描述个体集合)和角色(表示个体或概念之间的二元关系)。描述逻辑可以由一组构造器来表征,该构造器允许自然语言生成器271从原子(atomic)概念/角色构建复杂概念/角色。在特定实施例中,内容确定部件可以执行以下任务来确定通信内容。第一任务可以包括翻译任务,其中对自然语言生成器271的输入可以被翻译成概念。第二任务可以包括选择任务,其中可以基于用户模型从翻译任务产生的概念中选择相关概念。第三任务可以包括验证任务,其中可以验证所选概念的一致性。第四任务可以包括实例化任务,其中被验证的概念可以被实例化为可由自然语言生成器271处理的可执行文件。句子规划器可以确定通信内容的组织,使其为人所理解。表层实现部件可以确定要使用的特定单词、句子的顺序以及通信内容的风格。ui有效载荷生成器272可以确定要呈现给用户的通信内容的优选模态。在特定实施例中,cu编写器270可以与隐私检查模块245通信,以确保通信内容的生成遵循隐私策略。在特定实施例中,在生成通信内容并确定通信内容的模态时,cu编写器270可以从用户上下文引擎225检索用户简档。因此,对于用户来说,通信内容可以是更加自然、个性化和上下文感知的。作为示例而不是作为限制,用户简档可以指示用户喜欢会话中的短句,因此生成的通信内容可以基于短句。作为另一个示例而不是作为限制,与用户简档相关联的上下文信息可以指示用户正在使用仅输出音频信号的设备,因此ui有效载荷生成器272可以将通信内容的模态确定为音频。
[0135]
在特定实施例中,cu编写器270可以将生成的通信内容发送给助理xbot 215。在特定实施例中,助理xbot 215可以将通信内容发送到消息传递平台205。消息传递平台205还可以经由助理应用136向客户端系统130发送通信内容。在替代实施例中,助理xbot 215可以将通信内容发送到文本到语音(tts)模块275。tts模块275可以将通信内容转换成音频剪辑。tts模块275还可以经由助理应用136将音频剪辑发送到客户端系统130。
[0136]
在特定实施例中,助理xbot 215可以在不接收用户输入的情况下与主动推断(proactive inference)层280交互。主动推断层280可以基于从用户上下文引擎225检索的用户简档来推断用户兴趣和偏好。在特定实施例中,主动推断层280还可以与主动代理285
就推断进行通信。主动代理285可以基于推断执行主动任务。作为示例而不是作为限制,主动任务可以包括向用户发送内容对象或提供服务。在特定实施例中,每个主动任务可以与一个议程项目(agenda item)相关联。议程项目可以包括循环出现的项目,如每日摘要。议程项目也可以包括一次性项目。在特定实施例中,主动代理285可以在执行主动任务时从用户上下文引擎225检索用户简档。因此,主动代理285可以以个性化和上下文感知的方式执行主动任务。作为示例而不是作为限制,主动推断层可以推断用户喜欢maroon 5乐队,并且主动代理285可以针对用户生成maroon 5的新歌曲/专辑的推荐。
[0137]
在特定实施例中,主动代理285可以基于用户简档生成与主动任务相关联的候选实体。该生成可以基于使用确定性滤波器从结构化数据储存器检索候选实体的直接后端查询。可替代地,该生成可以基于机器学习模型,该机器学习模型基于用户简档、实体属性以及用户和实体之间的相关性进行训练。作为示例而不是作为限制,机器学习模型可以基于支持向量机(svm)。作为另一个示例而不是作为限制,机器学习模型可以基于回归模型(regression model)。作为另一个示例而不是作为限制,机器学习模型可以基于深度卷积神经网络(dcnn)。在特定实施例中,主动代理285还可以基于用户简档和与候选实体相关联的内容来对生成的候选实体进行排序。排序可以基于用户兴趣与候选实体之间的相似性。作为示例而不是作为限制,助理系统140可以生成表示用户兴趣的特征向量和表示候选实体的特征向量。助理系统140然后可以计算表示用户兴趣的特征向量和表示候选实体的特征向量之间的相似性分数(例如,基于余弦相似性)。可替代地,排序可以基于排序模型,其基于用户反馈数据进行训练。
[0138]
在特定实施例中,主动任务可以包括向用户推荐候选实体。主动代理285可以调度(schedule)推荐,从而将推荐时间与推荐的候选实体相关联。推荐的候选实体也可以与优先级和到期时间相关联。在特定实施例中,推荐的候选实体可以被发送到主动调度器。主动调度器可以基于与任务相关联的优先级和其他相关因素(例如,推荐的候选实体的点击和印象)来确定向用户发送推荐的候选实体的实际时间。在特定实施例中,主动调度器然后可以将具有确定的实际时间的推荐候选实体发送到异步层(asynchronous tier)。异步层可以将推荐的候选实体临时存储为作业(job)。在特定实施例中,异步层可以在确定的实际时间将作业发送到对话引擎235以进行执行。在替代实施例中,异步层可以通过将其发送到其他表层(例如,与社交网络系统160相关联的其他通知服务)来执行作业。在特定实施例中,对话引擎235可以识别与用户相关联的对话意图、状态和历史。基于对话意图,对话引擎235可以从推荐的候选实体中选择一些候选实体来发送给客户端系统130。在特定实施例中,对话状态和历史可以指示用户是否参与了与助理xbot 215的正在进行的会话。如果用户参与了正在进行的会话,并且推荐任务的优先级低,则对话引擎235可以与主动调度器通信,以重新调度将所选候选实体发送到客户端系统130的时间。如果用户参与了正在进行的会话并且推荐任务的优先级高,则对话引擎235可以发起与用户的新的对话会话(dialog session),其中可以呈现所选候选实体。因此,可以防止正在进行的会话的中断。当确定发送所选择的候选实体不会中断用户时,对话引擎235可以将所选择的候选实体发送到cu编写器270,以根据用户的隐私设置生成包括所选候选实体的个性化和上下文感知的通信内容。在特定实施例中,cu编写器270可以将通信内容发送给助理xbot 215,助理xbot 215然后可以经由消息传递平台205或tts模块275将其发送给客户端系统130。
[0139]
在特定实施例中,助理xbot 215可以响应于用户输入与主动代理285通信。作为示例而不是作为限制,用户可以要求助理xbot 215设置提醒。助理xbot 215可以请求主动代理285设置这样的提醒,并且主动代理285可以在稍后主动执行提醒用户的任务。
[0140]
在特定实施例中,助理系统140可以包括汇总器(summarizer)290。汇总器290可以向用户提供定制的动态消息汇总。在特定实施例中,汇总器290可以包括多个元代理(meta agent)。多个元代理可以使用第一方代理250、第三方代理255或主动代理285来生成动态消息汇总。在特定实施例中,汇总器290可以从主动推断层280检索用户兴趣和偏好。汇总器290然后可以从实体解析模块240检索与用户兴趣和偏好相关联的实体。汇总器290还可以从用户上下文引擎225检索用户简档。基于来自主动推断层280、实体解析模块240和用户上下文引擎225的信息,汇总器290可以为用户生成个性化的和上下文感知的汇总。在特定实施例中,汇总器290可以将汇总发送给cu编写器270。cu编写器270可以处理汇总并将处理结果发送给助理xbot 215。然后,助理xbot 215可以经由消息传递平台205或tts模块275向客户端系统130发送经处理的汇总。
[0141]
图3示出了助理系统140响应用户请求的示例流程图。在特定实施例中,助理xbot 215可以在接收到用户请求时访问请求管理器305。请求管理器305可以包括上下文提取器306和会话理解对象生成器(cu对象生成器)307。上下文提取器306可以提取与用户请求相关联的上下文信息。cu对象生成器307可以生成与用户请求相关的特定内容对象。在特定实施例中,请求管理器305可以将上下文信息和生成的内容对象存储在数据储存器310中,数据储存器310是在助理系统140中实现的特定数据储存器。
[0142]
在特定实施例中,请求管理器305可以将生成的内容对象发送到nlu模块220。nlu模块220可以执行多个步骤来处理内容对象。在步骤221,nlu模块220可以生成内容对象的白名单(whitelist)。在步骤222,nlu模块220可以基于白名单执行特征化。在步骤223,nlu模块220可以基于从特征化产生的特征来执行域分类/选择。可以基于两个相关的过程进一步处理域分类/选择结果。在步骤224a,nlu模块220可以使用意图分类器来处理域分类/选择结果。意图分类器可以确定与用户请求相关联的用户意图。作为示例而不是作为限制,意图分类器可以基于机器学习模型,该模型可以将域分类/选择结果作为输入,并计算该输入与特定预定义意图相关联的概率。在步骤224b,nlu模块可以使用元意图(meta-intent)分类器来处理域分类/选择结果。元意图分类器可以确定描述用户意图的类别。作为示例而不是作为限制,元意图分类器可以基于机器学习模型,该模型可以将域分类/选择结果作为输入,并计算输入与特定预定义元意图相关联的概率。在步骤225a,nlu模块220可以使用槽标记器(slot tagger)来注释与用户请求相关联的一个或更多个槽。在步骤225b,nlu模块220可以使用元槽标记器为来自元意图分类器的分类结果注释一个或更多个槽。作为示例而不是作为限制,用户请求可以包括“将我账户中的500美元兑换成日元(change 500dollars in my account to japanese yen)”。意图分类器可以将用户请求作为输入,并将其公式化为向量。意图分类器然后可以基于表示用户请求的向量和表示不同预定义意图的向量之间的向量比较来计算用户请求与不同预定义意图相关联的概率。以类似的方式,槽标记器可以将用户请求作为输入,并将每个单词公式化为向量。意图分类器然后可以基于表示单词的向量和表示不同预定义槽的向量之间的向量比较来计算每个单词与不同预定义槽相关联的概率。用户的意图可以被分类为“兑换钱(changing money)”。用户请求的槽可以包括

500”、“美元(dollars)”、“账户(account)”和“日元(japanese yen)”。用户的元意图可以被分类为“金融服务(financial service)”。元槽(meta slot)可以包括“金融(finance)”。
[0143]
在特定实施例中,nlu模块220可以通过从语义信息聚合器230提取语义信息来改进内容对象的域分类/选择。在特定实施例中,语义信息聚合器230可以以下述方式聚合语义信息。语义信息聚合器230可以首先从用户上下文引擎225检索信息。在特定实施例中,用户上下文引擎225可以包括离线聚合器226和在线推断服务227。离线聚合器226可以处理从先前时间窗口收集的与用户相关联的多个数据。作为示例而不是作为限制,数据可以包括从先前90天的窗口收集的动态消息帖子/评论、与动态消息帖子/评论的交互、instagram帖子/评论、搜索历史等。处理结果可以作为用户简档的一部分存储在用户上下文引擎225中。在线推断服务227可以分析由助理系统140在当前时间接收的与用户相关联的会话数据。分析结果也可以作为用户简档的一部分存储在用户上下文引擎225中。在特定实施例中,语义信息聚合器230然后可以在以下步骤中处理从用户上下文引擎225检索的信息,即用户简档。在步骤231,语义信息聚合器230可以基于自然语言处理(nlp)来处理从用户上下文引擎225检索的信息。在步骤232,处理结果可以由实体标记器用实体来注释。在步骤233,基于注释,语义信息聚合器230可以为检索到的信息生成字典。在步骤234,语义信息聚合器230可以对由实体标记器标记的实体进行排序。在特定实施例中,语义信息聚合器230可以与包括社交图、知识图和概念图的不同图330通信,以提取与从用户上下文引擎225检索的信息相关的本体数据。在特定实施例中,语义信息聚合器230可以聚合用户简档、排序后的实体和来自图330的信息。语义信息聚合器230然后可以将聚合的信息发送到nlu模块220,以促进域分类/选择。
[0144]
在特定实施例中,nlu模块220的输出可以被发送到共指(co-reference)模块315,以解释与用户请求相关联的内容对象的指代。共指模块315可以包括指代创建316和指代消解(reference resolution)317。在特定实施例中,指代创建316可以为由nlu模块220确定的实体创建指代。指代消解317可以准确地消解这些指代。作为示例而不是作为限制,用户请求可以包括“为我找到最近的沃尔玛并指引我到那里(find me the nearest walmart and direct me there)”。共指模块315可以将“那里(there)”解释为“最近的沃尔玛(the nearest walmart)”。在特定实施例中,共指模块315可以在必要时访问用户上下文引擎225和对话引擎235,以用提高的准确性来解释指代。
[0145]
在特定实施例中,所识别的域、意图、元意图、槽和元槽以及所消解的指代可以被发送到实体解析模块240以解析相关实体。在特定实施例中,实体解析模块240可以包括域实体解析241和通用实体解析242。域实体解析241可以通过将槽和元槽归类到不同的域来解析实体。在特定实施例中,可以基于从图330中提取的本体数据来解析实体。本体数据可以包括不同槽/元槽和域之间的结构关系。本体也可以包括槽/元槽可以如何在较高级别包括域的层次结构内被分组、相关,并根据相似性和差异细分的信息。通用实体解析242可以通过将槽和元槽归类到不同的通用主题来解析实体。在特定实施例中,解析也可以基于从图330中提取的本体数据。本体数据可以包括不同槽/元槽和通用主题之间的结构关系。本体也可以包括槽/元槽可以如何在较高级别包括主题的层次结构内被分组、相关,并根据相似性和差异细分的信息。作为示例而不是作为限制,响应于对特斯拉(tesla)汽车的优点的询问的输入,通用实体解析242可以将特斯拉汽车解析为车辆(vehicle),并且域实体解析
241可以将特斯拉汽车解析为电动汽车(electric car)。
[0146]
在特定实施例中,实体解析模块240的输出可以被发送到对话引擎235,以转发与用户的会话流。对话引擎235可以包括对话意图解析236和对话状态更新/排序器237。在特定实施例中,对话意图解析236可以解析与当前对话会话相关联的用户意图。在特定实施例中,对话状态更新/排序器237可以对当前对话会话的状态进行更新/排序。作为示例而不是作为限制,如果对话会话结束,对话状态更新/排序器237可以将对话状态更新为“完成(completed)”。作为另一个示例而不是作为限制,对话状态更新/排序器237可以基于与对话状态相关联的优先级来对对话状态进行排序。
[0147]
在特定实施例中,对话引擎235可以就对话意图和相关联的内容对象与任务完成模块335进行通信。任务完成模块335可以包括动作选择部件336。在特定实施例中,对话引擎235另外可以对照关于对话状态的对话策略320进行检查。对话策略320可以包括通用策略321和特定于域的策略322,它们都可以指导如何基于对话状态选择下一个系统动作。在特定实施例中,任务完成模块335可以与对话策略320通信,以获得下一个系统动作的指导。在特定实施例中,动作选择部件336因此可以基于对话意图、相关联的内容对象和来自对话策略320的指导来选择动作。
[0148]
在特定实施例中,任务完成模块335的输出可以被发送到cu编写器270。在替代实施例中,所选择的动作可能需要一个或更多个代理340参与。因此,任务完成模块335可以向代理340通知所选择的动作。同时,对话引擎235可以接收更新对话状态的指令。作为示例而不是作为限制,更新可以包括等待代理的响应。在特定实施例中,cu编写器270可以基于任务完成模块335的输出使用nlg 271而为用户生成通信内容。cu编写器270还可以使用ui有效载荷生成器272来确定所生成的通信内容的模态。由于所生成的通信内容可以被认为是对用户请求的响应,所以cu编写器270可以另外使用响应排序器273来对所生成的通信内容进行排序。作为示例而不是作为限制,排序可以指示响应的优先级。
[0149]
在特定实施例中,cu编写器270的输出可以被发送到响应管理器325。响应管理器325可以执行不同的任务,包括存储/更新从数据储存器310检索的对话状态326以及生成响应327。在特定实施例中,所生成的响应和通信内容可以被发送到助理xbot 215。在替代实施例中,如果所确定的通信内容的模态是音频,则cu编写器270的输出可以另外发送到tts模块275。然后,由tts模块275生成的语音和由响应管理器325生成的响应可以被发送到助理xbot 215。
[0150]
帮助用户在社交关连之间进行高效的信息共享
[0151]
在特定实施例中,助理系统140可以使用户能够容易地与他们的社交关连(例如,朋友、家人、同事等)共享他们从助理系统140获得的各种类型的信息,例如电影搜索结果、常识、交通信息、新闻等。助理系统140可以识别与用户输入相关联的共享信息的请求,并使用助理系统140的各种模块来完成共享任务。可以经由不同的软件/硬件产品以不同的模态将所共享的信息传递给用户的社交关连。例如,john和他的朋友doug可能正在计划一起去西雅图旅行。在他们旅行的那天,john用助理系统140查看天气预报,并相应地得到结果(例如,“今天西雅图的天气是华氏45度,下雨。”)。然后john想与doug共享天气信息。john可以简单地通过说“与john共享它”来向助理系统140输入命令。在接收到共享请求时,助理系统140可以正确地理解john的意图,并与doug共享天气信息(例如,通过经由消息传递应用向
doug发送消息)。在特定实施例中,助理系统140可以进行隐私检查,以确保用户请求共享的信息不违反任何隐私设置。为了实现高效的共享,助理系统140可以在用户上下文引擎225中存储用户与助理系统140的先前交互结果,当接收到与其他用户共享这些先前交互结果的请求时,可以容易地检索这些先前交互结果。替代地,助理系统140可以存储与关联于用户的先前交互结果相关联的对话状态,并且以后检索该对话状态用于共享。每个存储的交互结果可以与到期时间相关联,在到期时间之后,交互结果变得无效,并且必须由助理系统140重新确定。尽管本公开描述了以特定方式经由特定系统共享特定信息,但是本公开设想了以任何合适的方式经由任何合适的系统共享任何合适的信息。
[0152]
在特定实施例中,助理系统140可以从与第一用户相关联的客户端系统130接收共享在当前对话会话期间生成的内容的共享请求。助理系统140然后可以基于自然语言理解模块220来识别与共享请求相关联的一个或更多个内容对象。该一个或更多个内容对象可以是在当前对话会话期间先前生成的。在特定实施例中,助理系统140可以基于与第一用户相关联的用户简档来确定共享请求所针对的一个或更多个第二用户。助理系统140可以进一步向与一个或更多个第二用户相关联的一个或更多个客户端系统130发送一个或更多个识别的内容对象。
[0153]
图4示出了基于图2中的助理系统140的示例架构200的帮助信息共享的示例流程图。在特定实施例中,助理xbot 215可以接收用户输入405。在特定实施例中,用户输入405可以包括字符串、图像、视频、音频剪辑、其他合适的输入或其任意组合中的一个或更多个。例如,用户可以对助理系统140说话,并且音频剪辑可以是用户输入405。在特定实施例中,助理xbot 215可以向nlu模块220发送用户输入405。nlu模块220可以基于一个或更多个机器学习模型来语法分析(parse)用户输入405,以识别共享请求410。作为示例而不是作为限制,与共享请求410相关联的用户输入405可以是“与aaron共享它”。作为另一个示例而不是作为限制,与共享请求410相关联的用户输入405可以是“让aaron也知道”。在特定实施例中,nlu模块220可以确定与用户输入405相关联的一个或更多个槽415。nlu模块220可以向对话引擎235发送共享请求410和一个或更多个所确定的槽415。尽管本公开描述了以特定方式识别特定共享请求,但是本公开设想了以任何合适的方式识别任何合适的共享请求。
[0154]
在特定实施例中,助理系统140可以以下述方式确定共享请求410所针对的一个或更多个第二用户。由nlu模块220确定的一个或更多个槽415可以包括一个或更多个用户槽420。对话引擎235可以向实体解析模块240发送一个或更多个用户槽420。实体解析模块240然后可以基于与第一用户相关联的用户简档来解析一个或更多个用户槽420,以识别与一个或更多个第二用户相关联的一个或更多个实体425。实体解析模块240可以访问用户上下文引擎235来检索第一用户的用户简档。作为示例而不是作为限制,解析与一个或更多个第二用户相关联的一个或更多个实体425可以包括识别与一个或更多个第二用户相关联的一个或更多个标识符。例如,标识符可以包括电话号码、电子邮件地址或社交网络标识符中的一个或更多个。实体解析模块240然后可以将与第二用户相关联的解析的实体425发送给对话引擎235。继续前面的范例共享请求410,即,“与aaron共享它”,“aaron”应该被消除歧义,因为可能有多个aaron和第一用户有关系。因此,nlu模块220可以确定“aaron”的用户槽420。实体解析模块240然后可以基于第一用户的用户简档来解析“aaron”的实体425,并准确地识别与“aaron”相关联的标识符。自然语言理解和实体解析的结合可能是解决准确地
识别共享请求410的目标用户的技术挑战的有效解决方案。尽管本公开描述了以特定方式确定特定用户,但是本公开设想了以任何合适的方式确定任何合适的用户。
[0155]
在特定实施例中,助理系统140可以基于所确定的一个或更多个槽415来识别与共享请求410相关联的一个或更多个内容对象430。一个或更多个内容对象430可以是在当前对话会话期间先前生成的,对应于当前对话会话期间来自第一用户的先前帮助请求。作为示例而不是作为限制,先前帮助请求可以是“明天西雅图的天气怎么样?”,且共享请求410的用户输入405可以是“与john共享它”。在特定实施例中,助理系统140可以将“它”确定为与共享请求410相关联的内容对象430。助理系统140可以进一步消除“它”的歧义。助理系统140可以访问存储在对话引擎235中的相关联的对话状态。对话状态可以指示第一用户先前查询了西雅图的天气,并且结果被返回给第一用户。基于该对话状态,助理系统140然后可以确定“它”指的是西雅图的天气预报结果。使用基于存储在对话引擎235中的对话状态的对话管理可能是解决从简单的用户输入405中准确地识别要共享的内容对象430的技术挑战的有效解决方案,因为这种方法可以访问用户与助理系统140的先前交互,基于先前交互确定用户输入405的上下文,然后基于该上下文来识别要共享的内容对象430。根据一个或更多个内容对象430是否被存储在用户上下文引擎225中,助理系统140可以以不同的方式识别它们。如果一个或更多个内容对象430被存储在用户上下文引擎225中,则对话引擎235可以访问用户上下文引擎225,并基于一个或更多个槽415和用户上下文引擎225来识别一个或更多个内容对象430。如果一个或更多个内容对象430尚未被存储在用户上下文引擎225中,则对话引擎235可以访问与当前对话会话相关联的对话状态。对话状态可以存储在对话引擎235内的数据储存器中,并且包括与一个或更多个内容对象430相关联的信息。作为示例而不是作为限制,一个或更多个内容对象430可以包括一个或更多个视频,并且与这些视频相关联的信息可以包括指向这些视频的链接。在替代实施例中,对话状态可以包括在当前对话会话期间先前生成的一个或更多个内容对象430。作为示例而不是作为限制,一个或更多个内容对象430可以包括一个或更多个天气预报结果,并且对话状态可以包括这些结果。在特定实施例中,对话引擎235还可以基于所确定的一个或更多个槽415和对话状态来识别一个或更多个内容对象430。将内容对象430存储在用户上下文引擎225中,或者将与内容对象430相关联的/包括内容对象430的对话状态存储在对话引擎235中并且以后检索它们用于共享,可能是解决内容对象430的高效共享的技术挑战的有效解决方案,因为助理系统140可以响应于第一用户的共享请求410,简单地搜索和定位内容对象430,而不是重新生成内容对象430。尽管本公开描述了以特定方式识别特定内容对象,但是本公开设想了以任何合适的方式识别任何合适的内容对象。
[0156]
在特定实施例中,对话引擎235可以将一个或更多个内容对象430发送给第一方代理250。第一方代理250可以访问用户上下文引擎225来检索与相应内容对象430相关联的隐私设置。第一方代理250可以基于与相应内容对象430相关联的隐私设置,确定一个或更多个识别的内容对象430是可共享的。作为示例而不是作为限制,来自chris的共享请求410可以是“与我的朋友共享amy的帖子”。然而,amy关于她的帖子的隐私设置表明,这些帖子只能由她的朋友访问。因此,当chris提交共享请求410时,只有那些也是amy的朋友的人才可以获得所共享的帖子。在特定实施例中,一个或更多个内容对象430中的每个内容对象可以与第一用户的标识符或到期时间中的一个或更多个相关联。作为示例而不是作为限制,天气
预报结果可以与8小时的到期时间相关联。在特定实施例中,如果一个或更多个识别的内容对象430中的每个内容对象所关联的流逝时间小于它所关联的相应到期时间,则可以选择该每个内容对象。继续前面的示例,如果它的流逝时间是2小时,则可以选择天气预报结果,但是如果它的流逝时间是8.5小时,则可以丢弃天气预报结果。在丢弃内容对象430的情况下,助理系统140可以重新识别与第一用户的先前帮助请求相关联的内容对象430,使得这些内容对象430的流逝时间小于它们各自的到期时间。助理系统140然后可以与一个或更多个第二用户共享重新识别的内容对象430。尽管本公开描述了以特定方式选择特定内容对象,但是本公开设想了以任何合适的方式选择任何合适的内容对象。
[0157]
在特定实施例中,第一方代理250可以将所选择的可共享内容对象435发送给cu编写器270。cu编写器207可以分别为一个或更多个第二用户生成一个或更多个通信内容。作为示例而不是作为限制,向与相应的第二用户相关联的每个客户端系统130发送一个或更多个识别的内容对象435可以与通知440相关联,该通知440指示一个或更多个识别的内容对象435由第一用户共享。例如,通知440可以是“嘿,你将接收到由你的朋友tom共享的视频。”。在特定实施例中,是否将通知440显示给相应的第二用户可以是响应于接收到访问所共享的内容对象435的指令而在关于相应的第二用户的客户端侧发生的判定。作为另一个示例,一个或更多个通信内容可以包括由自然语言描述的所共享的内容对象435。例如,通信内容可以是“西雅图的天气是华氏45度,下雨。”。在特定实施例中,cu编写器270可以另外为第一用户生成确认445,并将其发送回助理xbot 215。确认445可以包括共享任务是否完成的指示。通过高效的信息共享,本文公开的实施例可以包括便于用户访问互联网上感兴趣和有用的信息的技术优势。本文公开的实施例还可以包括促进第三方内容提供者265更高效的广告投放的技术优势,因为用户可以容易地与他/她的社交关连共享产品的广告。例如,linda可能接收到了一个漂亮钱包的广告。linda可以请求助理系统140将该广告与她最好的朋友jane共享,因为她们对钱包有相似的品味。尽管本公开描述了以特定方式生成特定通信内容,但是本公开设想了以任何合适的方式生成任何合适的通信内容。
[0158]
在特定实施例中,助理系统140可以为一个或更多个第二用户中的每一个确定与一个或更多个第二用户相关联的一个或更多个模态。作为示例而不是作为限制,一个或更多个模态可以包括文本、音频、图像、视频、其他合适的模态或其任意组合。助理系统140可以基于以下项来确定每个第二用户的模态偏好:(1)要共享的一个或更多个内容对象435,(2)与第二用户相关联的用户简档,以及(3)与第二用户相关联的客户端系统130所支持的模态。在特定实施例中,向一个或更多个第二用户中的每一个发送一个或更多个识别的内容对象435可以基于所确定的一个或更多个模态。助理系统140还可以基于为相应的第二用户确定的一个或更多个模态,为每个第二用户生成一个或更多个通信内容中的每一个。作为示例而不是作为限制,要共享的一个或更多个内容对象435可以包括文本,用户简档可以指示第二用户当前正在烹饪,并且与第二用户相关联的客户端系统130可以支持音频输出。结果,助理系统140可以将音频确定为优选模态,将文本转换为音频,并在客户端系统130处大声读出音频内容。作为另一个示例而不是作为限制,要共享的一个或更多个内容对象435可以包括视频,用户简档可以指示第二用户当前在图书馆中,并且与第二用户相关联的客户端系统130可以支持文本、视频和音频输出。结果,助理系统140可以将文本和静音的视频确定为优选模态,使用音频语音识别技术从视频中提取文本,并在客户端系统130处结合提
取的文本播放静音的视频。确定将共享的信息传递给用户应该基于的适当的模态可能是解决与目标用户共享信息而不会对他们正在进行的活动造成不便的技术挑战的有效解决方案,这允许助理系统140基于所确定的可能更适合目标用户的当前情况的模态向目标用户传递内容对象435。尽管本公开描述了以特定方式基于特定模态发送特定内容对象,但是本公开设想了以任何合适的方式基于任何合适的模态发送任何合适的内容对象。
[0159]
在特定实施例中,助理系统140可以基于来自相应的第二用户的一个或更多个信号,确定向与一个或更多个第二用户中的每一个相关联的相应客户端系统130发送一个或更多个识别的内容对象435是否成功。作为示例而不是作为限制,一个或更多个信号可以包括第二用户与一个或更多个识别的内容对象435交互。例如,第二用户可以通过播放视频来与视频交互。作为另一个示例而不是作为限制,第二用户可以通过点击与一个或更多个识别的内容对象435相关联的一个或更多个链接来与一个或更多个识别的内容对象435交互。在特定实施例中,助理系统140还可以为第一用户生成一个或更多个通信内容。每个通信内容可以包括与针对每个第二用户的共享请求410相关联的状态。该状态可以指示向相应的客户端系统130发送一个或更多个识别的内容对象435是否成功。助理系统140随后可以向与第一用户相关联的客户端系统130发送一个或更多个通信内容,用于在当前对话会话中显示。作为示例而不是作为限制,助理系统140可能已经成功地为第一用户将电影(例如,死侍(deadpool))的放映时间与第二用户lisa进行了共享。助理系统140然后可以向第一用户发送通信内容,例如“好的,我将死侍的放映时间与lisa进行了共享。”。作为另一个示例而不是作为限制,助理系统140可能没有成功地为第一用户将死侍的放映时间与lisa共享。助理系统140然后可以向第一用户发送通信内容,例如“抱歉,我无法将死侍的放映时间与lisa共享。您要我稍后再试一次吗?”。在特定实施例中,在确定向相应的客户端系统130发送一个或更多个识别的内容对象435成功时,助理系统140可以在第一用户和相应的第二用户之间发起消息线程。结果,第一用户和相应的第二用户可以方便地讨论所共享的内容对象435。因此,本文公开的实施例可以具有通过基于共享的信息在用户之间创建共同主题来加强用户的社交关连的技术优势。尽管本公开描述了以特定方式响应特定共享请求的特定状态,但是本公开设想了以任何合适的方式响应任何合适的共享请求的任何合适的状态。
[0160]
在特定实施例中,助理系统140可以在没有接收到共享请求410的情况下,主动建议第一用户在他/她的社交关连之间共享信息。助理系统140还可以主动识别可以与之共享信息的目标用户,并向第一用户建议这些用户。作为示例而不是作为限制,第一用户可以询问助理系统140碧昂斯(beyonc
é
)何时将在伦敦举行音乐会。一旦获得结果,助理系统140就可以主动建议第一用户与他/她的朋友中也喜欢碧昂斯并且位于伦敦或附近区域的一些朋友共享该结果。如果第一用户接受该建议,则助理系统140可以继续与他/她的朋友共享音乐会的信息。尽管本公开描述了以特定方式来主动建议特定信息共享,但是本公开设想了以任何合适的方式来主动建议任何合适的信息共享。
[0161]
图5示出了帮助信息共享的示例流程图。在特定实施例中,在步骤510,助理系统140可以接收用户输入405“我的天气怎么样?”。在步骤520,cu编写器270可以将用户输入405发送到第一方代理250(即天气代理250),并获得包括天气信息的响应。在步骤530,在从助理系统140获得天气信息之后,第一用户可以向助理系统140发送另一用户输入405,该另一用户输入405是“与john共享我的天气”。在步骤540,cu编写器270可以与另一个第一方代
理250(即共享代理250)就共享最近的天气响应的目标进行通信。在步骤550,共享代理250可以生成向量,该向量由cu编写器270用来生成一个或更多个通信内容。作为示例而不是作为限制,向量可以是[编写器:共享:确认(用我自己的表层),编写器:天气:显示_天气(用john的表层)]。在特定实施例中,cu编写器270可以包括共享生成器271a,其可以是自然语言生成器(nlg)271的一部分。共享生成器271可以生成通信内容,作为到第一用户的确认445。在步骤560a,cu编写器270可以通过共享生成器271a处理向量的第一部分,即[编写器:共享:确认]。然后,在步骤570a,生成的通信内容被发送到与第一用户相关联的助理xbot 215。在特定实施例中,cu编写器270可以包括天气生成器271b,其也可以是nlg 271的一部分。天气生成器271b可以生成包括天气信息的通信内容。在步骤560b,cu编写器270可以通过天气生成器271b处理向量的第二部分,即[编写器:天气:显示_天气]。然后,在步骤570b,生成的通信内容作为api被发送到与john相关联的助理xbot 215。尽管本公开描述了以特定方式帮助特定信息共享的特定流程图,但是本公开设想了以任何合适的方式发送帮助任何合适的信息共享的任何合适的流程图。
[0162]
图6示出了用于帮助信息共享的示例方法600。该方法可以在步骤610开始,在步骤610,助理系统140可以从与第一用户相关联的客户端系统130接收共享在当前对话会话期间生成的内容的共享请求410。在步骤620,助理系统140可以基于自然语言理解模块220来识别与共享请求410相关联的一个或更多个内容对象430,其中该一个或更多个内容对象430是在当前对话会话期间先前生成的。在步骤630,助理系统140可以基于与第一用户相关联的用户简档来确定共享请求410所针对的一个或更多个第二用户。在步骤640,助理系统140可以向与一个或更多个第二用户相关联的一个或更多个客户端系统130发送用于访问一个或更多个识别的内容对象435的指令。在适当的情况下,特定实施例可以重复图6的方法的一个或更多个步骤。尽管本公开将图6的方法的特定步骤描述并示出为以特定顺序发生,但是本公开设想了图6的方法的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了包括图6的方法的特定步骤的用于帮助信息共享的示例方法,但是本公开设想了包括任何合适的步骤的用于帮助信息共享的任何合适的方法,在适当的情况下,该合适的方法可以包括图6的方法的所有步骤、一些步骤或不包括这些步骤。此外,尽管本公开描述并示出了执行图6的方法的特定步骤的特定部件、设备或系统,但是本公开设想了执行图6的方法的任何合适步骤的任何合适的部件、设备或系统的任何合适的组合。
[0163]
社交图
[0164]
图7示出了示例社交图700。在特定实施例中,社交网络系统160可以在一个或更多个数据储存器中存储一个或更多个社交图700。在特定实施例中,社交图700可以包括多个节点——该多个节点可以包括多个用户节点702或多个概念节点704——以及连接这些节点的多条边706。每个节点可以与唯一的实体(即,用户或概念)相关联,每个实体可以具有唯一的标识符(id),例如唯一的号码或用户名。出于教导的目的,以二维视觉映射表示(two-dimensional visual map representation)示出了图7所示的示例社交图700。在特定实施例中,社交网络系统160、客户端系统130、助理系统140或第三方系统170可以访问社交图700和相关社交图信息以用于合适的应用。社交图700的节点和边可以作为数据对象被存储在例如数据储存器(例如社交图数据库)中。这种数据储存器可以包括社交图700的节点或边的一个或更多个可搜索或可查询的索引。
[0165]
在特定实施例中,用户节点702可以对应于社交网络系统160或助理系统140的用户。作为示例而不是作为限制,用户可以是与社交网络系统160或助理系统140交互或通信或通过社交网络系统160或助理系统140交互或通信的个人(人类用户)、实体(例如,企业、公司或第三方应用)或(例如,个人或实体的)团体。在特定实施例中,当用户向社交网络系统160注册账户时,社交网络系统160可以创建对应于用户的用户节点702,并将用户节点702存储在一个或更多个数据储存器中。本文描述的用户和用户节点702在适当的情况下可以指注册的用户和与注册的用户相关联的用户节点702。另外或作为替代方案,在适当的情况下,本文描述的用户和用户节点702可以指没有向社交网络系统160注册的用户。在特定实施例中,用户节点702可以与由用户提供的信息或由各种系统(包括社交网络系统160)收集的信息相关联。作为示例而不是作为限制,用户可以提供他或她的姓名、简档图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣或其他人口统计信息。在特定实施例中,用户节点702可以与对应于与用户相关联的信息的一个或更多个数据对象相关联。在特定实施例中,用户节点702可以对应于一个或更多个web界面。
[0166]
在特定实施例中,概念节点704可以对应于概念。作为示例而不是作为限制,概念可以对应于地点(诸如例如,电影院、餐馆、地标或城市);网站(诸如例如,与社交网络系统160相关联的网站或与web应用服务器相关联的第三方网站);实体(诸如例如,个人、企业、团体、运动队或名人);资源(诸如例如,音频文件、视频文件、数字照片、文本文件、结构化文档或应用),其可以位于社交网络系统160内或外部服务器(例如web应用服务器)上;不动产或知识产权(诸如例如,雕塑、绘画、电影、游戏、歌曲、想法、照片或书面作品);游戏;活动;想法或理论;另一个合适的概念;或者两个或更多个这样的概念。概念节点704可以与由用户提供的概念的信息或由各种系统(包括社交网络系统160和助理系统140)收集的信息相关联。作为示例而不是作为限制,概念的信息可以包括名称或标题;一个或更多个图像(例如,书籍的封面的图像);位置(例如,地址或地理位置);网站(其可以与url相关联);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或者这样的信息的任何合适的组合。在特定实施例中,概念节点704可以与一个或更多个数据对象相关联,一个或更多个数据对象对应于与概念节点704相关联的信息。在特定实施例中,概念节点704可以对应于一个或更多个web界面。
[0167]
在特定实施例中,社交图700中的节点可以表示web界面(其可以被称为“简档界面”)或者由web界面表示。简档界面可以由社交网络系统160或助理系统140托管或是社交网络系统160或助理系统140可访问的。简档界面也可以在与第三方系统170相关联的第三方网站上被托管。作为示例而不是作为限制,对应于特定外部web界面的简档界面可以是特定外部web界面,并且简档界面可以对应于特定概念节点704。简档界面可以由所有其他用户或其他用户的选定子集可查看。作为示例而不是作为限制,用户节点702可以具有相应的用户简档界面,其中相应的用户可以添加内容、作出声明或以其他方式表达他或她自己。作为另一示例而不是作为限制,概念节点704可以具有相应的概念简档界面,其中一个或更多个用户可以添加内容、作出声明或表达他们自己,特别是关于对应于概念节点704的概念。
[0168]
在特定实施例中,概念节点704可以表示由第三方系统170托管的第三方web界面或资源。第三方web界面或资源可以包括表示动作或活动的内容、可选择的图标或其他图标或其他可交互对象(其可以例如用javascript、ajax或php代码来实现)以及其他元素。作为
示例而不是作为限制,第三方web界面可以包括可选择的图标,例如“赞”、“签到(check-in)”、“吃”、“推荐”,或其他合适的动作或活动。查看第三方web界面的用户可以通过选择图标之一(例如,“签到”)来执行动作,使客户端系统130向社交网络系统160发送指示用户的动作的消息。响应于该消息,社交网络系统160可以在对应于用户的用户节点702和对应于第三方web界面或资源的概念节点704之间创建边(例如,签到类型边),并将边706存储在一个或更多个数据储存器中。
[0169]
在特定实施例中,社交图700中的一对节点可以通过一条或更多条边706关连到彼此。连接一对节点的边706可以表示在该对节点之间的关系。在特定实施例中,边706可以包括或表示对应于在一对节点之间的关系的一个或更多个数据对象或属性。作为示例而不是作为限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,社交网络系统160可以向第二用户发送“好友请求”。如果第二用户确认“好友请求”,则社交网络系统160可以在社交图700中创建将第一用户的用户节点702关连到第二用户的用户节点702的边706,并将边706作为社交图信息存储在一个或更多个数据储存器167中。在图7的示例中,社交图700包括指示在用户“a”和用户“b”的用户节点702之间的朋友关系的边706、以及指示在用户“c”和用户“b”的用户节点702之间的朋友关系的边。尽管本公开描述或示出了关连特定用户节点702的具有特定属性的特定边706,但是本公开设想了关连用户节点702的具有任何合适属性的任何合适的边706。作为示例而不是作为限制,边706可以表示友谊、家庭关系、商业或雇佣关系、粉丝关系(包括例如,赞等)、关注者关系、访问者关系(包括例如,访问、查看、签到、分享等)、订购者关系、上级/下级关系、互惠关系、非互惠关系、另一种合适类型的关系、或两种或更多种这样的关系。此外,尽管本公开一般将节点描述为被关连,但是本公开也将用户或概念描述为被关连。在本文,对被关连的用户或概念的引用在适当的情况下可以指在社交图700中由一条或更多条边706关连的对应于那些用户或概念的节点。
[0170]
在特定实施例中,在用户节点702和概念节点704之间的边706可以表示由与用户节点702相关联的用户朝着与概念节点704相关联的概念执行的特定动作或活动。作为示例而不是作为限制,如图7所示,用户可以“赞”、“出席”、“播放”、“收听”、“烹饪”、“工作于”或“观看”概念,其中每个可以对应于边类型或子类型。对应于概念节点704的概念简档界面可以包括例如可选择的“签到”图标(诸如例如,可点击的“签到”图标)或可选择的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统160可以响应于对应于相应动作的用户动作来创建“收藏夹”边或“签到”边。作为另一示例而不是作为限制,用户(用户“c”)可以使用特定的应用(声田,其为在线音乐应用)来收听特定的歌曲(“想象(imagine)”)。在这种情况下,社交网络系统160可以在对应于用户的用户节点702和对应于歌曲和应用的概念节点704之间创建“收听”边706和“使用”边(如图7所示),以指示用户收听了歌曲并使用了应用。此外,社交网络系统160可以在对应于歌曲和应用的概念节点704之间创建“播放”边706(如图7所示),以指示特定的歌曲被特定的应用播放。在这种情况下,“播放”边706对应于由外部应用(声田)对外部音频文件(歌曲“想象”)执行的动作。尽管本公开描述了连接用户节点702和概念节点704的具有特定属性的特定边706,但是本公开设想了连接用户节点702和概念节点704的具有任何合适属性的任何合适的边706。此外,尽管本公开描述了表示单个关系的在用户节点702和概念节点704之间的边,但是本公开设想了表示一个或更多个关系的在用户节点702和概念节点704之间的边。作为示例而不是作为限
制,边706可以表示用户喜欢并使用了特定概念。可替代地,另一条边706可以表示用户节点702和概念节点704之间(如图7中所示,用户“e”的用户节点702和“声田”的概念节点704之间)的每种类型的关系(或者多个单一关系)。
[0171]
在特定实施例中,社交网络系统160可以在社交图700中的用户节点702和概念节点704之间创建边706。作为示例而不是作为限制,(诸如例如,通过使用由用户的客户端系统130托管的web浏览器或专用应用)查看概念简档界面的用户可以通过点击或选择“赞”图标来指示他或她喜欢由概念节点704表示的概念,这可以使用户的客户端系统130向社交网络系统160发送指示用户喜欢与概念简档界面相关联的概念的消息。响应于该消息,社交网络系统160可以在与用户相关联的用户节点702和概念节点704之间创建边706,如由在用户节点和概念节点704之间的“赞”边706所示的。在特定实施例中,社交网络系统160可以将边706存储在一个或更多个数据储存器中。在特定实施例中,边706可以由社交网络系统160响应于特定用户动作而自动形成。作为示例而不是作为限制,如果第一用户上传图片、观看电影或收听歌曲,则可以在对应于第一用户的用户节点702和对应于那些概念的概念节点704之间形成边706。尽管本公开描述了以特定方式形成特定边706,但是本公开设想了以任何合适的方式形成任何合适的边706。
[0172]
向量空间和嵌入
[0173]
图8示出了向量空间800的示例视图。在特定实施例中,可以在d维向量空间中表示对象或n-gram,其中d表示任何合适的维数。尽管向量空间800被示为三维空间,但这仅仅是为了说明的目的,因为向量空间800可以具有任何合适的维度。在特定实施例中,n-gram可以在向量空间800中被表示为向量,该向量被称为项目嵌入(term embedding)。每个向量可以包括对应于向量空间800中的特定点(即,向量的终点)的坐标。作为示例而不是作为限制,如图8所示,向量810、820和880可以被表示为向量空间800中的点。n-gram可以被映射到相应的向量表示。作为示例而不是作为限制,通过应用由字典定义的函数n-gramt1和n-gramt2可以分别映射到向量空间800中的向量和使得并且作为另一个示例而不是作为限制,可以利用被训练为将文本映射到向量表示的字典,或者这种字典本身可以通过训练来生成。作为另一个示例而不是作为限制,模型(例如word2vec)可以用于将n-gram映射到向量空间800中的向量表示。在特定实施例中,可以通过使用机器学习模型(例如,神经网络)将n-gram映射到向量空间800中的向量表示。机器学习模型可能已经使用训练数据的序列(例如,每个包括n-gram的多个对象的语料库(corpus))进行了训练。
[0174]
在特定实施例中,对象可以在向量空间800中被表示为向量,该向量被称为特征向量或对象嵌入。作为示例而不是作为限制,通过应用函数对象e1和e2可以分别映射到向量空间800中的向量和使得并且在特定实施例中,可以基于对象的一个或更多个特性、属性或特征、对象与其他对象的关系或与对象相关联的任何其他合适的信息来将对象映射到向量。作为示例而不是作为限制,函数可以通过特征提取将对象映射到向量,特征提取可以从初始测量数据集开始,并构建导出值(例如,特征)。作为示例而不是作为限制,通过使用算法以检测或隔离对象的各种期望部分或形状,包括
视频或图像的对象可以被映射到向量。用于计算向量的特征可以基于从边检测、拐角(corner)检测、团块(blob)检测、脊线(ridge)检测、尺度不变特征变换、边方向、变化强度、自相关、运动检测、光流、阈值化、团块提取、模板匹配、霍夫(hough)变换(例如,线、圆、椭圆、任意形状)获得的信息或任何其他合适的信息。作为另一个示例而不是作为限制,包括音频数据的对象可以基于特征(例如频谱斜率、音调系数、音频频谱质心、音频频谱包络、梅尔频率倒频谱(mel-frequency cepstrum)或任何其他合适的信息)来被映射到向量。在特定实施例中,当对象具有太大而无法有效地被处理的数据或者包括冗余数据时,函数可以使用所变换的精简特征集(例如,特征选择)来将对象映射到向量。在特定实施例中,函数可以基于与对象e相关联的一个或更多个n-gram来将对象e映射到向量尽管本公开描述了以特定方式在向量空间中表示n-gram或对象,但是本公开设想了以任何合适的方式在向量空间中表示n-gram或对象。
[0175]
在特定实施例中,社交网络系统160可以计算向量空间800中的向量的相似性度量。相似性度量可以是余弦相似性、minkowski距离、mahalanobis距离、jaccard相似性系数或任何合适的相似性度量。作为示例而不是作为限制,和的相似性度量可以是余弦相似性作为另一个示例而不是作为限制,和的相似性度量可以是欧几里德(euclidean)距离两个向量的相似性度量可以表示分别对应于两个向量的两个对象或n-gram彼此之间的相似程度,如通过向量空间800中两个向量之间的距离所测量的。作为示例而不是作为限制,基于相应向量之间的距离,向量810和向量820可以对应于比对应于向量810和向量880的对象与彼此更相似的对象。尽管本公开描述了以特定方式计算向量之间的相似性度量,但本公开设想了以任何合适的方式计算向量之间的相似性度量。
[0176]
关于向量空间、嵌入、特征向量和相似性度量的更多信息可以在2015年11月23日提交的美国专利申请第14/949436号、2016年10月5日提交的美国专利申请第15/286315号和2016年11月30日提交的美国专利申请第15/365789号中找到,这些专利申请中的每一个通过引用并入。
[0177]
人工神经网络
[0178]
图9示出了示例人工神经网络(“ann”)900。在特定实施例中,ann可以指包括一个或更多个节点的计算模型。示例ann 900可以包括输入层910、隐藏层920、930、960和输出层950。ann 900的每个层可以包括一个或更多个节点,例如节点905或节点915。在特定实施例中,ann的每个节点可以关连到ann的另一个节点。作为示例而不是作为限制,输入层910的每个节点可以关连到隐藏层920的一个或更多个节点。在特定实施例中,一个或更多个节点可以是偏置节点(例如,层中不关连到前一层中的任何节点并且不从其接收输入的节点)。在特定实施例中,每层中的每个节点可以关连到前一层或后一层的一个或更多个节点。尽管图9描绘了具有特定层数、特定节点数和节点间特定关连的特定ann,但是本公开设想了具有任何合适层数、任何合适节点数和节点间任何合适关连的任何合适的ann。作为示例而不是作为限制,尽管图9描绘了输入层910的每个节点和隐藏层920的每个节点之间的关连,但是输入层910的一个或更多个节点可以不关连到隐藏层920的一个或更多个节点。
[0179]
在特定实施例中,ann可以是前馈ann(例如,没有循环或回路的ann,其中节点之间的通信从输入层开始在一个方向上流动,并前进到连续层)。作为示例而不是作为限制,隐藏层920的每个节点的输入可以包括输入层910的一个或更多个节点的输出。作为另一个示例而不是作为限制,输出层950的每个节点的输入可以包括隐藏层960的一个或更多个节点的输出。在特定实施例中,ann可以是深度神经网络(例如,包括至少两个隐藏层的神经网络)。在特定实施例中,ann可以是深度残差网络。深度残差网络可以是前馈ann,其包括组织成残差块的隐藏层。第一残差块之后的每个残差块的输入可以是前一个残差块的输出和前一个残差块的输入的函数。作为示例而不是作为限制,到残差块n的输入可以是f(x)+x,其中f(x)可以是残差块n-1的输出,x可以是到残差块n-1的输入。尽管本公开描述了特定的ann,但是本公开设想了任何合适的ann。
[0180]
在特定实施例中,激活函数可以对应于ann的每个节点。节点的激活函数可以针对给定输入定义节点的输出。在特定实施例中,节点的输入可以包括输入集合。作为示例而不是作为限制,激活函数可以是恒等函数、二进制阶跃函数、逻辑函数或任何其他合适的函数。作为另一个示例而不是作为限制,节点k的激活函数可以是sigmoid函数双曲线正切函数整流器f
k
(s
k
)=max(0,s
k
)或任何其他合适的函数f
k
(s
k
),其中s
k
可以是节点k的有效输入。在特定实施例中,对应于节点的激活函数的输入可以被加权。每个节点可以使用基于加权输入的对应激活函数来生成输出。在特定实施例中,节点之间的每个关连可以与权重相关联。作为示例而不是作为限制,节点905和节点915之间的关连925可以具有0.4的加权系数,这可以指示节点905的输出乘以0.4被用作节点915的输入。作为另一个示例而不是作为限制,节点k的输出y
k
可以是y
k
=f
k
(s
k
),其中f
k
可以是对应于节点k的激活函数,s
k
=∑
j
(w
jk
x
j
)可以是节点k的有效输入,x
j
可以是关连到节点k的节点j的输出,并且w
jk
可以是节点j和节点k之间的加权系数。在特定实施例中,输入层的节点的输入可以基于表示对象的向量。尽管本公开描述了节点的特定输入和输出,但是本公开考虑了节点的任何合适的输入和输出。此外,尽管本公开可以描述节点之间的特定关连和权重,但是本公开考虑了节点之间的任何合适的关连和权重。
[0181]
在特定实施例中,可以使用训练数据来训练ann。作为示例而不是作为限制,训练数据可以包括ann 900的输入和预期输出。作为另一个示例而不是作为限制,训练数据可以包括向量,每个向量表示训练对象和每个训练对象的预期标签。在特定实施例中,训练ann可以包括通过优化目标函数来修改与ann的节点之间的关连相关联的权重。作为示例而不是作为限制,可以使用训练方法(例如,共轭梯度法、梯度下降法、随机梯度下降)来反向传播作为表示训练对象的每个向量之间的距离测量的平方和误差(例如,使用最小化平方和误差的成本函数)。在特定实施例中,可以使用丢弃技术来训练ann。作为示例而不是作为限制,在训练时可以暂时忽略一个或更多个节点(例如,不接收输入并且不生成输出)。对于每个训练对象,ann的一个或更多个节点都可以有被忽略的一定概率。针对特定训练对象忽略的节点可以不同于针对其他训练对象忽略的节点(例如,可以逐个对象地临时忽略节点)。尽管本公开描述了以特定方式训练ann,但是本公开设想了以任何合适的方式训练ann。
[0182]
隐私
[0183]
在特定实施例中,计算系统的一个或更多个对象(例如,内容或其他类型的对象)
wizard)”(例如,在网页、模块、一个或更多个对话框或任何其他合适的界面内),以帮助第一用户指定一个或更多个隐私设置。隐私向导可以显示指令、合适的隐私相关信息、当前隐私设置、用于接受来自第一用户的一个或更多个输入(其指定隐私设置的改变或确认)的一个或更多个输入字段、或其任何合适的组合。在特定实施例中,社交网络系统160可以向第一用户提供“仪表板(dashboard)”功能,该功能可以向第一用户显示第一用户的当前隐私设置。仪表板功能可以在任何适当的时间显示给第一用户(例如,在来自调用仪表板功能的第一用户的输入之后,在特定事件或触发动作发生之后)。仪表板功能可以允许第一用户以任何合适的方式在任何时间修改第一用户的一个或更多个当前隐私设置(例如,将第一用户重定向到隐私向导)。
[0187]
与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度(granularity)。作为示例而不是作为限制,可以为特定用户(例如,只有我、我的室友、我的老板)、在特定分离度内的用户(例如,朋友、朋友的朋友)、用户团体(例如,游戏俱乐部、我的家人)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公众”)、无用户(“私人的”)、第三方系统170的用户、特定应用(例如,第三方应用、外部网站)、其他合适的实体、或其任何合适的组合来指定访问或拒绝访问。尽管本公开描述了允许访问或拒绝访问的特定粒度,但是本公开考虑了允许访问或拒绝访问的任何合适粒度。
[0188]
在特定实施例中,一个或更多个服务器162可以是用于实施隐私设置的授权/隐私服务器。响应于来自用户(或其他实体)的对存储在数据储存器164中的特定对象的请求,社交网络系统160可以向数据储存器164发送对该对象的请求。请求可以识别与该请求相关联的用户,并且对象只有在授权服务器基于与该对象相关联的隐私设置确定该用户被授权访问该对象时才可以被发送给该用户(或者该用户的客户端系统130)。如果请求用户未被授权访问该对象,则授权服务器可以阻止所请求的对象从数据储存器164中被检索,或者可以阻止所请求的对象被发送给用户。在搜索-查询上下文中,只有当查询用户被授权访问对象时,例如,如果对象的隐私设置允许其被显露给查询用户、被查询用户发现或以其他方式对查询用户可见,才可以提供对象作为搜索结果。在特定实施例中,对象可以表示通过用户的动态消息对用户可见的内容。作为示例而不是作为限制,一个或更多个对象对于用户的“热门话题(trending)”页面可以是可见的。在特定实施例中,对象可以对应于特定用户。对象可以是与特定用户相关联的内容,或者可以是特定用户的账户或存储在社交网络系统160或其他计算系统上的信息。作为示例而不是作为限制,第一用户可以通过在线社交网络的“你可能认识的人(people you may know)”功能或者通过查看第一用户的朋友列表来查看在线社交网络的一个或更多个第二用户。作为示例而不是作为限制,第一用户可以指定他们不希望在他们的动态消息或朋友列表中看到与特定第二用户相关联的对象。如果对象的隐私设置不允许其被显露给用户、被用户发现或对用户可见,则该对象可以从搜索结果中排除。尽管本公开描述了以特定方式实施隐私设置,但是本公开设想了以任何合适的方式实施隐私设置。
[0189]
在特定实施例中,与用户相关联的相同类型的不同对象可以具有不同的隐私设置。与用户相关联的不同类型的对象可以具有不同类型的隐私设置。作为示例而不是作为限制,第一用户可以指定第一用户的状态更新是公开的,但是第一用户共享的任何图像仅对在线社交网络上第一用户的朋友可见。作为另一个示例而不是作为限制,用户可以为不
同类型的实体(如个人用户、朋友的朋友、关注者、用户团体或公司实体)指定不同的隐私设置。作为另一个示例而不是作为限制,第一用户可以指定可以查看由第一用户发布的视频的一组用户,同时防止视频对第一用户的雇主可见。在特定实施例中,可以为不同的用户组或用户人口统计提供不同的隐私设置。作为示例而不是作为限制,第一用户可以指定与第一用户在同一所大学上学的其他用户可以查看第一用户的照片,但是作为第一用户的家庭成员的其他用户不能查看那些相同的照片。
[0190]
在特定实施例中,社交网络系统160可以为特定对象类型的每个对象提供一个或更多个默认隐私设置。被设置为默认的对象的隐私设置可以由与该对象相关联的用户来改变。作为示例而不是作为限制,由第一用户发布的所有图像可以具有默认隐私设置,即仅对于第一用户的朋友可见,并且对于特定图像,第一用户可以改变图像的隐私设置,以对于朋友和朋友的朋友可见。
[0191]
在特定实施例中,隐私设置可以允许第一用户指定(例如,通过选择退出,通过不选择加入)社交网络系统160或助理系统140是否可以出于任何目的接收、收集、记录或存储与用户相关联的特定对象或信息。在特定实施例中,隐私设置可以允许第一用户指定特定应用或进程是否可以访问、存储或使用与用户相关联的特定对象或信息。隐私设置可以允许第一用户选择加入或选择退出使对象或信息被特定应用或进程访问、存储或使用。社交网络系统160或助理系统140可以访问这样的信息,以便向第一用户提供特定的功能或服务,而社交网络系统160或助理系统140不能出于任何其他目的访问该信息。在访问、存储或使用这样的对象或信息之前,社交网络系统160或助理系统140可以提示用户提供隐私设置,该隐私设置指定哪些应用或进程(如果有的话)可以在允许任何这样的动作之前访问、存储或使用对象或信息。作为示例而不是作为限制,第一用户可以经由与在线社交网络相关的应用(例如,消息传递app)向第二用户传输消息,并且可以指定社交网络系统160或助理系统140不应该存储这种消息的隐私设置。
[0192]
在特定实施例中,用户可以指定社交网络系统160或助理系统140是否可以访问、存储或使用与第一用户相关联的特定类型的对象或信息。作为示例而不是作为限制,第一用户可以指定由第一用户通过社交网络系统160或助理系统140发送的图像不可以被社交网络系统160或助理系统140存储。作为另一个示例而不是作为限制,第一用户可以指定从第一用户发送给特定第二用户的消息不可以被社交网络系统160或助理系统140存储。作为又一个示例而不是作为限制,第一用户可以指定经由特定应用发送的所有对象可以被社交网络系统160或助理系统140保存。
[0193]
在特定实施例中,隐私设置可以允许第一用户指定是否可以从特定客户端系统130或第三方系统170访问与第一用户相关联的特定对象或信息。隐私设置可以允许第一用户选择加入或选择退出从特定设备(例如,用户智能电话上的电话簿)、从特定应用(例如,消息传递app)或从特定系统(例如,电子邮件服务器)访问对象或信息。社交网络系统160或助理系统140可以提供关于每个设备、系统或应用的默认隐私设置,和/或可以提示第一用户为每个上下文指定特定的隐私设置。作为示例而不是作为限制,第一用户可以利用社交网络系统160或助理系统140的位置服务特征来提供用户附近的餐馆或其他地方的推荐。第一用户的默认隐私设置可以指定社交网络系统160或助理系统140可以使用从第一用户的客户端设备130提供的位置信息来提供基于位置的服务,但是社交网络系统160或助理系统
140不可以存储第一用户的位置信息或将其提供给任何第三方系统170。第一用户然后可以更新隐私设置,以允许第三方图像共享应用使用位置信息来对照片进行地理标记。
[0194]
基于位置的隐私设置
[0195]
在特定实施例中,隐私设置可以允许用户指定可以从其访问对象的一个或更多个地理位置。对象的访问或拒绝访问可以取决于试图访问对象的用户的地理位置。作为示例而不是作为限制,用户可以共享对象并指定只有同一城市的用户可以访问或查看该对象。作为另一个示例而不是作为限制,第一用户可以共享对象,并且指定该对象仅在第一用户处于特定位置时对第二用户可见。如果第一用户离开特定位置,对象不可以再对第二用户可见。作为另一个示例而不是作为限制,第一用户可以指定对象仅对在距离第一用户的阈值距离内的第二用户可见。如果第一用户随后改变了位置,则可以访问该对象的原始第二用户可能失去访问权,而新的第二用户组可以在他们进入第一用户的阈值距离内时获得访问权。
[0196]
关于用户认证和体验个性化信息的隐私设置
[0197]
在特定实施例中,社交网络系统160或助理系统140可具有可将用户的个人或生物信息用作输入以用于用户认证或体验个性化目的的功能。用户可以选择利用这些功能来增强他们在在线社交网络上的体验。作为示例而不是作为限制,用户可以向社交网络系统160或助理系统140提供个人或生物信息。用户的隐私设置可以指定这样的信息仅可用于特定的进程(如认证),并且还指定这样的信息不能与任何第三方系统170共享,或者不能用于与社交网络系统160或助理系统140相关联的其他进程或应用。作为另一个示例而不是作为限制,社交网络系统160可以为用户提供向在线社交网络提供声纹记录的功能。作为示例而不是作为限制,如果用户希望利用在线社交网络的这一功能,则用户可以提供他或她自己声音的声音记录,以提供在线社交网络上的状态更新。声音输入的记录可以与用户的声纹进行比较,以确定用户说了什么词语。用户的隐私设置可以指定这种声音记录可以仅用于声音输入目的(例如,认证用户、发送声音消息、改进声音识别以便使用在线社交网络的声音操作特征),并且还指定这种声音记录不可以与任何第三方系统170共享,或者不可以被与社交网络系统160相关联的其他进程或应用使用。作为另一个示例而不是作为限制,社交网络系统160可以为用户提供向在线社交网络提供参考图像(例如,面部轮廓、视网膜扫描)的功能。在线社交网络可以将参考图像与稍后接收的图像输入进行比较(例如,用于认证用户,在照片中标记用户)。用户的隐私设置可以指定这种声音记录仅可用于有限的目的(例如,认证、在照片中标记用户),并且还指定这种声音记录不能与任何第三方系统170共享,或者不能被与社交网络系统160相关联的其他进程或应用使用。
[0198]
系统和方法
[0199]
图10示出了示例计算机系统1000。在特定实施例中,一个或更多个计算机系统1000执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机系统1000提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机系统1000上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机系统1000的一个或更多个部分。在本文,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或更多个计算机系
统。
[0200]
本公开设想了任何合适数量的计算机系统1000。本公开设想了采取任何合适的物理形式的计算机系统1000。作为示例而不是作为限制,计算机系统1000可以是嵌入式计算机系统、片上系统(soc)、单板计算机系统(sbc)(诸如例如,模块上计算机(com)或模块上系统(som))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网状网、移动电话、个人数字助理(pda)、服务器、平板计算机系统、或者这些中的两个或更多个的组合。在适当的情况下,计算机系统1000可以包括一个或更多个计算机系统1000;可以是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云部件。在适当的情况下,一个或更多个计算机系统1000可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机系统1000可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机系统1000可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
[0201]
在特定实施例中,计算机系统1000包括处理器1002、存储器1004、存储装置1006、输入/输出(i/o)接口1008、通信接口1010和总线1012。尽管本公开描述并示出了具有在特定布置中的特定数量的特定部件的特定计算机系统,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适部件的任何合适的计算机系统。
[0202]
在特定实施例中,处理器1002包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器1002可以从内部寄存器、内部高速缓存、存储器1004或存储装置1006中检索(或取回)指令;将这些指令解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器1004或存储装置1006。在特定实施例中,处理器1002可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了包括任何合适数量的任何合适的内部高速缓存的处理器1002。作为示例而不是作为限制,处理器1002可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲区(tlb)。在指令高速缓存中的指令可以是在存储器1004或存储装置1006中的指令的副本,并且指令高速缓存可以加速处理器1002对那些指令的检索。在数据高速缓存中的数据可以是:在存储器1004或存储装置1006中的数据的副本,用于供在处理器1002处执行的指令操作;在处理器1002处执行的先前指令的结果,用于由在处理器1002处执行的后续指令访问或者用于写到存储器1004或存储装置1006;或其他合适的数据。数据高速缓存可以加速由处理器1002进行的读或写操作。tlb可以加速关于处理器1002的虚拟地址转译。在特定实施例中,处理器1002可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了包括任何合适数量的任何合适的内部寄存器的处理器1002。在适当的情况下,处理器1002可以包括一个或更多个算术逻辑单元(alu);可以是多核处理器;或者包括一个或更多个处理器1002。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
[0203]
在特定实施例中,存储器1004包括主存储器,其用于存储供处理器1002执行的指令或供处理器1002操作的数据。作为示例而不是作为限制,计算机系统1000可以将指令从存储装置1006或另一个源(诸如例如,另一个计算机系统1000)加载到存储器1004。处理器
1002然后可以将指令从存储器1004加载到内部寄存器或内部高速缓存。为了执行指令,处理器1002可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器1002可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器1002然后可以将这些结果中的一个或更多个写到存储器1004。在特定实施例中,处理器1002仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器1004(而不是存储装置1006或其他地方)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器1004(而不是存储装置1006或其他地方)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器1002耦合到存储器1004。如下所述,总线1012可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(mmu)驻留在处理器1002和存储器1004之间,并且便于由处理器1002请求的对存储器1004的访问。在特定实施例中,存储器1004包括随机存取存储器(ram)。在适当的情况下,该ram可以是易失性存储器。在适当的情况下,该ram可以是动态ram(dram)或静态ram(sram)。此外,在适当的情况下,该ram可以是单端口ram或多端口ram。本公开设想了任何合适的ram。在适当的情况下,存储器1004可以包括一个或更多个存储器1004。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
[0204]
在特定实施例中,存储装置1006包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置1006可以包括硬盘驱动器(hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(usb)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置1006可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置1006可以在计算机系统1000的内部或外部。在特定实施例中,存储装置1006是非易失性固态存储器。在特定实施例中,存储装置1006包括只读存储器(rom)。在适当的情况下,该rom可以是掩模编程rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可变rom(earom)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置1006。在适当的情况下,存储装置1006可以包括便于在处理器1002和存储装置1006之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置1006可以包括一个或更多个存储装置1006。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
[0205]
在特定实施例中,i/o接口1008包括为在计算机系统1000和一个或更多个i/o设备之间的通信提供一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机系统1000可以包括这些i/o设备中的一个或更多个。这些i/o设备中的一个或更多个可以实现在人和计算机系统1000之间的通信。作为示例而不是作为限制,i/o设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、平板计算机、触摸屏、跟踪球、视频摄像机、另一个合适的i/o设备、或这些中的两个或更多个的组合。i/o设备可以包括一个或更多个传感器。本公开设想了任何合适的i/o设备以及用于它们的任何合适的i/o接口1008。在适当的情况下,i/o接口1008可以包括使处理器1002能够驱动这些i/o设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,i/o接口1008可以包括一个或更多个i/o接口1008。尽管本公开描述并示出了特定的i/o接口,但是本公开设想了任何合适的i/o接口。
[0206]
在特定实施例中,通信接口1010包括提供用于在计算机系统1000和一个或更多个
其他计算机系统1000或一个或更多个网络之间的通信(例如,基于包(packet-based)的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口1010可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(nic)或网络适配器,或者用于与无线网络(例如wi-fi网络)进行通信的无线nic(wnic)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口1010。作为示例而不是作为限制,计算机系统1000可以与自组织网络、个域网(pan)、局域网(lan)、广域网(wan)、城域网(man)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机系统1000可以与无线pan(wpan)(诸如,例如,蓝牙wpan)、wi-fi网络、wi-max网络、蜂窝电话网络(诸如,例如,全球移动通信系统(gsm)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机系统1000可以包括用于这些网络中的任一个的任何合适的通信接口1010。在适当的情况下,通信接口1010可以包括一个或更多个通信接口1010。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
[0207]
在特定实施例中,总线1012包括将计算机系统1000的部件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线1012可以包括加速图形端口(agp)或其他图形总线、扩展工业标准体系结构(eisa)总线、前端总线(fsb)、hypertransport(ht)互连、工业标准体系结构(isa)总线、infiniband互连、低引脚数(lpc)总线、存储器总线,微通道体系结构(mca)总线、外围部件互连(pci)总线、pci-express(pcie)总线、串行高级技术附件(sata)总线、视频电子标准协会本地(vlb)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线1012可以包括一个或更多个总线1012。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
[0208]
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的或其他集成电路(ic)(诸如例如,现场可编程门阵列(fpga)或专用ic(asic))、硬盘驱动器(hdd)、混合硬盘驱动器(hhd)、光盘、光盘驱动器(odd)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(fdd)、磁带、固态驱动器(ssd)、ram驱动器、安全数字(secure digital)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的任何合适组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
[0209]
其他杂项
[0210]
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括性的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“a或b”意指“a、b或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“a和b”意指“a和b,联合地或各自地”。
[0211]
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的部件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解
的在本文任何地方描述或示出的任何部件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或系统或装置或系统的部件的引用包括该装置、系统、部件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、系统或部件是这样被调整、被布置、使能够、被配置、被实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1