CN117396836A - 由助理系统自动采集有趣时刻 - Google Patents

由助理系统自动采集有趣时刻 Download PDF

Info

Publication number
CN117396836A
CN117396836A CN202280030451.2A CN202280030451A CN117396836A CN 117396836 A CN117396836 A CN 117396836A CN 202280030451 A CN202280030451 A CN 202280030451A CN 117396836 A CN117396836 A CN 117396836A
Authority
CN
China
Prior art keywords
user
particular embodiments
context
assistant
sensor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202280030451.2A
Other languages
English (en)
Inventor
李一雷
鲁奇尔·里瓦斯塔瓦
艾米丽·王
迈克尔·罗伯特·汉森
刘白杨
刘洪磊
阿列克谢·根纳季耶维奇·苏尔科夫
艾哈迈德·马格迪·哈米德·穆罕默德
阿里雷扎·迪拉夫松
艾米·劳森·贝尔曼
普一鸣
刘冰
克里斯托弗·德保利
克里斯托夫·查兰德
克里斯托弗·E·巴尔梅斯
丹尼尔·约翰·威格多
陈元汇
丹尼斯·萨文科夫
埃里克·罗伯特·诺瑟普
加布里埃尔·凯瑟琳·莫斯基
加内什·文卡特什
周浩
许虎
伊恩·格雷夫斯
伊拉娜·奥利·沙洛维茨
杰克逊·拉辛
约翰·雅各布·布莱克利
杰里米·吉尔莫·卡恩
杰西卡·基钦斯
李季航
于劲松
约书亚·文森特
贾斯汀·丹尼
克里希纳·柴坦尼亚·戈皮塞蒂·斯里尼瓦斯
凯尔·阿奇
莱夫·黑文·马丁森
劳埃德·希莱尔
马克·帕伦特
马修·丹·费兹利
梅加·琼琼瓦拉
梅加·蒂瓦里
迈克尔·格鲁克
尼古拉斯·豪尔赫·弗洛雷斯
皮尤什·卡姆卡
普加·塞西
普拉莫德·古鲁纳特
罗欣·达巴斯
文胜焕
斯蒂芬妮·桑托萨
斯瓦蒂·戈尔
甘鑫
左正平
崔振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Meta Platforms Inc
Original Assignee
Meta Platforms Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US17/394,096 external-priority patent/US20220366170A1/en
Application filed by Meta Platforms Inc filed Critical Meta Platforms Inc
Publication of CN117396836A publication Critical patent/CN117396836A/zh
Pending legal-status Critical Current

Links

Landscapes

  • User Interface Of Digital Computer (AREA)

Abstract

在一个实施例中,一种方法包括:从与第一用户相关联的客户端系统访问由该客户端系统的传感器采集到的多个传感器信号,其中,该客户端系统包括多个传感器,并且其中,该多个传感器信号是基于级联模型策略从该多个传感器访问的,其中,每个级联模型策略利用与每个传感器相关联的各自成本或各自相关性中的一者或两者;基于机器学习模型和该多个传感器信号,检测与第一用户的活动相关联的第一用户的上下文的变化,其中,第一用户的上下文的变化满足与该活动相关联的触发条件;以及响应于所检测到的第一用户的上下文的变化,由客户端系统的摄像头自动采集视觉数据。

Description

由助理系统自动采集有趣时刻
优先权
本申请要求于2021年4月21日提交的、第63/177812号美国临时专利申请、以及于2021年8月4日提交的、第17/394,096号美国非临时专利申请的依据35U.S.C.§119(e)的权益,这两个申请通过引用结合到本文中。
技术领域
本公开总体上涉及网络环境内的数据库和文件管理,且尤其涉及用于智能助理系统的硬件和软件。
背景技术
助理系统可以基于以下各项的组合来代表用户提供信息或服务:用户输入、位置感知和从各种在线来源访问信息(例如天气状况、交通堵塞、新闻、股票价格、用户日程、零售价格等)的能力。用户输入可以包括(尤其是在即时消息收发应用或其他应用中的)文本(例如,在线聊天)、语音、图像、动作或它们的组合。助理系统可以基于用户输入来执行礼宾型(concierge-type)服务(例如,预订晚餐、购买活动门票、做出旅行安排)或提供信息。助理系统还可以在无需用户发起或交互的情况下,基于在线信息和活动来执行管理任务或数据处理任务。可由助理系统执行的那些任务的示例可以包括日程管理(例如,发送对用户因交通状况而推迟晚餐日期的提示、更新双方的日程、以及更改餐厅预订时间)。助理系统可以通过以下项的组合来实现:计算设备、应用编程接口(application programminginterface,API)和用户设备上的大量应用。
可包括社交网络网站的社交网络系统可以使其用户(例如个人或组织)能够与该社交网络系统交互、并通过该社交网络系统彼此交互。社交网络系统可以使用来自用户的输入,在社交网络系统中创建和存储与用户相关联的用户资料。用户资料可以包括人口统计信息、通信信道信息和关于用户个人兴趣的信息。社交网络系统还可以利用来自用户的输入,创建和存储用户与社交网络系统中的其他用户的关系的记录,以及提供用于促进各用户之间或各用户之中的社交互动的服务(例如,资料/新闻推送帖子、照片共享、活动组织、消息收发、游戏或广告)。
社交网络系统可以通过一个或多个网络向用户的移动设备或其他计算设备发送与该社交网络系统的服务相关的内容或消息。用户还可以在用户的移动设备或其他计算设备上安装软件应用,以用于访问用户的用户资料和社交网络系统内的其他数据。社交网络系统可以生成一组个性化的内容对象(例如连接到用户的其他用户的综合报道的新闻推送)以显示给用户。
发明内容
在特定实施例中,助理系统可以帮助用户获取信息或服务。助理系统可以使用户能够在有状态和多轮(multi-turn)对话中通过各种模态(例如,音频、语音、文本、图像、视频、手势、运动、位置、方位)的用户输入与该助理系统进行交互,以得到来自该助理系统的帮助。作为示例而非限制,助理系统可以支持单模态输入(例如,仅语音输入)、多模态输入(例如,语音输入和文本输入)、混合/多模态输入、或它们的任何组合。由用户提供的用户输入可以与特定的助理相关任务相关联,并且例如可以包括用户请求(例如,对信息或动作执行的口头请求)、跟与助理系统相关联的助理应用的用户交互(例如,通过触摸或手势来选择用户界面(UI)元素)、或者可由助理系统检测和理解的任何其他类型的合适的用户输入(例如,由用户的客户端设备检测到的用户移动)。助理系统可以创建和存储这样的用户资料:该用户资料包括与用户相关联的个人信息和上下文信息这两者。在特定实施例中,助理系统可以使用自然语言理解(natural-language understanding,NLU)来分析用户输入。对于更个性化的和上下文感知的理解,该分析可以基于用户的用户资料。助理系统可以基于该分析来解析与用户输入相关联的实体。在特定实施例中,助理系统可以与不同的代理进行交互以获取与所解析的实体相关联的信息或服务。助理系统可以通过使用自然语言生成(natural-language generation,NLG)来为用户生成关于该信息或服务的响应。助理系统可以通过与用户的交互,使用对话管理技术来管理和推进与用户的对话流。在特定实施例中,助理系统还可以通过概括信息来帮助用户有效和高效地理解所获取的信息。助理系统还可以通过提供帮助用户与在线社交网络进行交互(例如,创建帖子、评论、消息)的工具来帮助用户更多地参与在线社交网络。助理系统还可以帮助用户管理不同的任务,例如保持对事件的追踪。在特定实施例中,助理系统可以在没有用户输入的情况下,在与用户相关的时间基于用户资料主动地执行与用户的兴趣和偏好相关的任务。在特定实施例中,助理系统可以检查隐私设置以确保根据用户的隐私设置而允许访问用户的资料或其他用户信息、并执行不同任务。
在特定实施例中,助理系统可以通过被构建在客户端侧过程和服务器侧过程这两者上的混合架构来帮助用户。客户端侧过程和服务器侧过程可以是用于处理用户输入和向用户提供帮助的两个并行工作流。在特定实施例中,客户端侧过程可以在与用户相关联的客户端系统上本地执行。相比之下,服务器侧过程可以在一个或多个计算系统上远程执行。在特定实施例中,客户端系统上的仲裁器可以:对接收用户输入(例如,音频信号)进行协调,确定是使用客户端侧过程、服务器侧过程还是这两者来响应用户输入,并分析来自每个过程的处理结果。仲裁器可以基于前述分析来指示客户端侧或服务器侧上的代理执行与用户输入相关联的任务。执行结果可以进一步被渲染以作为客户端系统的输出。助理系统可以通过利用客户端侧过程和服务器侧过程,有效地帮助用户优化使用计算资源,同时保护用户隐私并增强安全性。
在特定实施例中,助理系统可以允许用户参与他们的真实世界活动,同时仍然能够易于从他们的支持助理的客户端系统、通过自动采集功能拍摄照片或视频。用户可以利用自动采集功能,来设置延迟触发(例如,告诉他们的支持助理的智能眼镜在未来活动开始时拍摄照片或视频),并且助理系统可以检测用户的上下文的变化以自动地确定活动何时开始、识别有趣时刻并采集这些时刻。作为示例而非限制,用户明天要去徒步旅行。用户可以说:“嘿助理,记得在明天的徒步旅行期间拍摄照片”。当用户第二天到达徒步旅行路线时,助理系统可以使用全球定位系统(GPS)信息来确定用户正在开始徒步旅行。然后,当用户正在徒步旅行时,助理系统可以基于各种信号来确定有趣时刻,并拍摄这些时刻的照片。徒步旅行结束后,助理系统可以停止拍摄照片。助理系统还可以自动整理这些照片,并为用户将这些照片拼接为集锦视频。助理系统可以使用不同的信号来确定活动的开始和结束、以及有趣时刻,这些信号可以包括视觉信号、声音信号、动作信号等。助理系统可以使用一系列机器学习模型,基于这些模型所使用的输入信号,这些模型具有不同计算成本。既可以被动使用自动采集功能,也可以主动使用自动采集功能,来帮助用户采集他们活动中的有趣时刻。在被动使用时,用户可能需要设置触发器以便在触发条件发生时激活自动采集。在主动使用时,助理系统可以基于用户的知识(例如,用户偏好设置、用户记忆等)来触发自动采集。自动采集可以使助理系统能够解决几个约束,这些约束包括在采集有趣时刻时用户体验的摩擦、客户端系统上的电力管理、隐私敏感信息的保护、以及在执行采集有趣时刻的任务时的时延。尽管本公开描述了由特定系统以特定方式自动采集特定时刻,但是本公开考虑了由任何合适的系统以任何合适的方式自动采集任何合适的时刻。
在本发明的一方面,提供了一种方法,该方法包括:由客户端系统:从与第一用户相关联的客户端系统访问由客户端系统的一个或多个传感器采集到的一个或多个传感器信号,其中,客户端系统包括多个传感器,并且其中,该一个或多个传感器信号是基于一个或多个级联模型策略从该一个或多个传感器访问的,其中,每个级联模型策略可以利用与每个传感器相关联的各自成本或各自相关性中的一者或两者;基于一个或多个机器学习模型和该一个或多个传感器信号,检测与第一用户的活动相关联的第一用户的上下文的变化,其中,第一用户的上下文的变化满足与该活动相关联的触发条件;以及响应于所检测到的第一用户的上下文的变化,通过客户端系统的一个或多个摄像头自动采集视觉数据。
视觉数据可以包括活动的一个或多个时刻,其中,该一个或多个时刻中的每个时刻可以与高于阈值兴趣度的兴趣度相关联。
该方法还可以包括:基于该一个或多个机器学习模型和该一个或多个传感器信号,确定对该一个或多个时刻中的每个时刻的兴趣度高于阈值兴趣度。
该一个或多个机器学习模型中的一个或多个可以基于与多个活动的多个时刻相对应的多个传感器信号而被训练,其中,该多个传感器信号中的每个传感器信号可以与预定兴趣度相关联。
视觉数据可以被存储为一个或多个媒体数据文件,其中,该一个或多个媒体数据文件中的每个媒体数据文件可以包括图像或视频中的一者或两者。
该方法还可以包括:基于该一个或多个机器学习模型和该一个或多个传感器信号,检测活动的结束;基于在活动期间采集到的视觉数据,生成基于对视觉数据的概括的集锦视频,其中,该概括是基于视觉数据的兴趣度的;以及在客户端系统处,向第一用户呈现该集锦视频。
该一个或多个传感器信号可以包括以下中的一者或多者:惯性测量单元(inertial measurement unit,IMU)信号、音频信号、GPS信号、肌电(electromyography,EMG)信号或视觉信号。
每个级联模型策略可以利用与每个传感器相关联的各自成本,并且其中,每个级联模型策略可以指定:如果第一成本低于第二成本,则在访问来自与第二成本相关联的第二传感器的第二传感器信号之前,访问来自与第一成本相关联的第一传感器的第一传感器信号。
检测与第一用户的活动相关联的第一用户的上下文的变化可以包括:基于该一个或多个机器学习模型和多个传感器中的第一传感器的第一传感器信号,计算第一置信度分数,该第一置信度分数关联于与第一用户的活动相关联的第一用户的上下文的变化;确定第一置信度分数是否大于阈值置信度分数;以及基于对第一置信度分数是否大于阈值分数的确定:如果第一置信度分数大于阈值分数,则确认与第一用户的活动相关联的第一用户的上下文的变化;否则:从与第一用户相关联的客户端系统访问多个传感器中的第二传感器的第二传感器信号,其中,第二传感器信号可以是基于一个或多个级联模型策略访问的;以及基于该一个或多个机器学习模型和第二传感器信号,计算第二置信度分数,该第二置信度分数关联于与第一用户的活动相关联的第一用户的上下文的变化,其中,如果第二置信度分数大于阈值分数,则确认与第一用户的活动相关联的第一用户的上下文的变化。
每个级联模型策略可以利用与每个传感器相关联的各自相关性,并且其中,每个级联模型策略可以指定:如果第一相关性高于第二相关性,则在访问来自与第二相关性相关联的第二传感器的第二传感器信号之前,访问来自与第一相关性相关联的第一传感器的第一传感器信号。
与每个传感器相关联的各自相关性可以基于活动来确定。
该方法还可以包括:在客户端系统处,接收对采集与活动相关联的视觉数据的用户请求;以及基于该用户请求确定触发条件。
检测与第一用户的活动相关联的第一用户的上下文的变化可以包括:基于该一个或多个机器学习模型和该一个或多个传感器信号,计算第一置信度分数,该第一置信度分数关联于与第一用户的活动相关联的第一用户的上下文的变化;确定第一置信度分数是否大于阈值分数;以及基于对第一置信度分数是否大于阈值分数的确定:如果第一置信度分数大于阈值分数,则确认与第一用户的活动相关联的第一用户的上下文的变化;否则:从与第一用户相关联的客户端系统访问由客户端系统的多个传感器采集到的多个传感器信号,其中,该多个传感器信号是基于一个或多个级联模型策略访问的;以及基于该一个或多个机器学习模型和该多个传感器信号,计算第二置信度分数,该第二置信度分数关联于与第一用户的活动相关联的第一用户的上下文的变化,其中,如果第二置信度分数大于阈值分数,则确认与第一用户的活动相关联的第一用户的上下文的变化。
该一个或多个级联模型策略可以为多个活动中的每个活动指定访问来自多个传感器的传感器信号的特定顺序,其中,来自该多个传感器的附加传感器可以基于与检测上下文的变化相关联的置信度分数而被访问。
在本发明的一方面,提供了一种或多种计算机可读非暂态存储介质,该一种或多种计算机可读非暂态存储介质包含软件,所述软件在被执行时能够操作以:从与第一用户相关联的客户端系统访问由客户端系统的一个或多个传感器采集到的一个或多个传感器信号,其中,客户端系统包括多个传感器,并且其中,该一个或多个传感器信号是基于一个或多个级联模型策略从该一个或多个传感器访问的,其中,每个级联模型策略利用与每个传感器相关联的各自成本或各自相关性中的一者或两者;基于一个或多个机器学习模型和该一个或多个传感器信号,检测与第一用户的活动相关联的第一用户的上下文的变化,其中,第一用户的上下文的变化满足与该活动相关联的触发条件;以及响应于所检测到的第一用户的上下文的变化,通过客户端系统的一个或多个摄像头自动采集视觉数据。
该一个或多个传感器信号可以包括以下中的一者或多者:惯性测量单元(IMU)信号、音频信号、GPS信号、肌电(EMG)信号或视觉信号。
每个级联模型策略可以利用与每个传感器相关联的各自成本,并且其中,每个级联模型策略可以指定:如果第一成本低于第二成本,则在访问来自与第二成本相关联的第二传感器的第二传感器信号之前,访问来自与第一成本相关联的第一传感器的第一传感器信号。
在本发明的一方面,提供了一种系统,该系统包括:一个或多个处理器;以及非暂态存储器,该非暂态存储器耦接到该一个或多个处理器,该非暂态存储器包括能够由该处理器执行的指令,该一个或多个处理器在执行所述指令时能够操作以:从与第一用户相关联的客户端系统访问由客户端系统的一个或多个传感器采集到的一个或多个传感器信号,其中,客户端系统包括多个传感器,并且其中,该一个或多个传感器信号是基于一个或多个级联模型策略从该一个或多个传感器访问的,其中,每个级联模型策略利用与每个传感器相关联的各自成本或各自相关性中的一者或两者;基于一个或多个机器学习模型和该一个或多个传感器信号,检测与第一用户的活动相关联的第一用户的上下文的变化,其中,第一用户的上下文的变化满足与该活动相关联的触发条件;以及响应于所检测到的第一用户的上下文的变化,通过客户端系统的一个或多个摄像头自动采集视觉数据。
该一个或多个传感器信号可以包括以下中的一者或多者:惯性测量单元(IMU)信号、音频信号、GPS信号、肌电(EMG)信号或视觉信号。
每个级联模型策略可以利用与每个传感器相关联的各自成本,并且其中,每个级联模型策略可以指定:如果第一成本低于第二成本,则在访问来自与第二成本相关联的第二传感器的第二传感器信号之前,访问来自与第一成本相关联的第一传感器的第一传感器信号。
对于自动采集有趣时刻,存在某些技术挑战。一个技术挑战可包括检测满足触发的用户的上下文的变化。由本文所公开的各实施例提出的用于解决这一挑战的解决方案可以是:使用不同传感器的不同信号、以及基于这些信号的机器学习模型,因为传感器信号可以包括表征用户的上下文和有趣时刻的信息、并且机器学习模型可以分析这些传感器信号以检测上下文的变化。另一技术挑战可包括确定有趣时刻。由本文所公开的各实施例提出的用于解决这一挑战的一种解决方案可以是:使用不同传感器的不同信号、以及基于这些信号的机器学习模型,因为传感器信号可以包括表征有趣时刻的信息、并且机器学习模型可以分析这些传感器信号以确定有趣时刻。由本文所公开的各实施例提出的用于解决这一挑战的另一种解决方案可以是:基于不同的标准来确定有趣时刻,因为这些标准可以提供量化的测量结果以评估兴趣性。由本文所公开的各实施例提出的用于解决这一挑战的另一种解决方案可以是:使用数据驱动方法和全面的用户研究来学习可确定有趣时刻的模型,因为将用户包括在循环中以提供大量人类对兴趣性的判断可以使模型在以类似于人类的方式确定兴趣性时更鲁棒。另一技术挑战可包括节省客户端系统上的计算资源。本文所公开的各实施例提出的用于解决这一挑战的一种解决方案可以是:使用基于级联模型策略的一系列机器学习模型(该一系列机器学习模型基于不同传感器信号的各自计算成本来使用该不同传感器信号),来确定满足触发条件的用户的上下文的变化和有趣时刻,因为助理系统可以主要使用成本低的传感器信号并且少量地使用成本高的传感器信号。
本文所公开的某些实施例可以提供一个或多个技术优势。各实施例的技术优势可以包括使用户能够参与真实世界活动、同时易于记录该活动的有趣时刻,因为助理系统可以自动检测用户的上下文的变化以识别有趣时刻,并在活动期间、在无需用户指示的情况下采集这些有趣时刻。各实施例的另一技术优势可以包括高效地使用紧凑型客户端系统的有限计算资源来进行自动采集,因为这些客户端系统仅工作来采集有趣时刻,从而更节能/更节约存储。各实施例的另一个技术优势可以包括通过绕过用于处理语音命令的整个助理堆栈、以及通过使用用于确定何时执行自动采集的客户端分类模型,来减少自动采集的时延。本文所公开的某些实施例可以不提供上述技术优势,或者提供上述技术优势中的一些技术优势或全部技术优势。鉴于本公开的附图、说明书和权利要求书,一个或多个其他技术优势对于本领域技术人员来说是显而易见的。
本文所公开的各实施例仅是示例,并且本公开的范围不限于这些实施例。特定实施例可以包括本文所公开的各实施例中的部件、元件、特征、功能、操作或步骤中的全部、一些,或者可以不包括本文所公开的各实施例中的部件、元件、特征、功能、操作或步骤。根据本发明的各实施例在所附的针对方法、存储介质、系统和计算机程序产品的权利要求中特别公开,其中,在一个权利要求类别(例如,方法)中所提到的任何特征也可以在另一个权利要求类别(例如,系统)中主张。所附权利要求书中的从属关系或回引仅出于形式原因而选择。然而,由于有意引用任何先前的权利要求(特别是多项从属关系)而产生的任何主题也可以被主张,使得多个权利要求及其多个特征的任何组合无论在所附权利要求书中所选择的从属关系如何、都被公开且可以被主张。可主张的主题不仅包括所附权利要求书中所陈述的多个特征的多种组合,还包括权利要求书中的多个特征的任何其他组合,其中,在权利要求书中所提到的每个特征可以与权利要求书中的任何其他特征或其他特征的组合进行组合。此外,本文所描述或所描绘的任何实施例和任何特征可以在单独的权利要求中被主张,和/或在与本文所描述或所描绘的任何实施例或任何特征的任何组合中或在与所附权利要求书中的任何特征的任何组合中被主张。
附图说明
图1示出了与助理系统相关联的示例网络环境。
图2示出了助理系统的示例架构。
图3示出了助理系统的示例流程图。
图4示出了处理用户输入的、以任务为中心的示例流程图。
图5示出了自动采集有趣时刻的示例工作流。
图6A示出了对自动采集生日聚会的示例用户请求。
图6B示出了该生日聚会的示例发生。
图6C示出了该生日聚会的示例自动采集到的时刻。
图6D示出了该生日聚会的另一示例自动采集到的时刻。
图7A示出了对自动采集棒球比赛的示例用户请求。
图7B示出了该棒球比赛的示例发生。
图7C示出了示例自动采集到的全垒打时刻。
图8示出了用于自动采集有趣时刻的示例方法。
图9示出了示例社交图谱。
图10示出了嵌入空间的示例视图。
图11示出了示例人工神经网络。
图12示出了示例计算机系统。
具体实施方式
系统概述
图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。
本公开考虑了任何合适的网络110。作为示例而非限制,网络110的一个或多个部分可以包括自组网(ad hoc network)、内联网、外联网、虚拟专用网络(virtual privatenetwork,VPN)、局域网(local area network,LAN)、无线局域网(wireless LAN,WLAN)、广域网(wide area network,WAN)、无线广域网(wireless WAN,WWAN)、城域网(metropolitanarea network,MAN)、互联网的一部分、公共交换电话网络(Public Switched TelephoneNetwork,PSTN)的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一网络110、或两个或更多个这种网络110的组合。
链路150可以将客户端系统130、助理系统140、社交网络系统160和第三方系统170连接到通信网络110,或使客户端系统130、助理系统140、社交网络系统160和第三方系统170彼此连接。本公开考虑了任何合适的链路150。在特定实施例中,一条或多条链路150包括一条或多条有线(例如,数字用户线路(Digital Subscriber Line,DSL)或电缆数据服务接口规范(Data Over Cable Service Interface Specification,DOCSIS))链路、一条或多条无线(例如,Wi-Fi或全球微波接入互操作性(Worldwide Interoperability forMicrowave Access,WiMAX))链路、或一条或多个条光学(例如,同步光纤网络(SynchronousOptical Network,SONET)或同步数字体系(Synchronous Digital Hierarchy,SDH))链路。在特定实施例中,一条或多条链路150各自包括自组网、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路150、或两个或更多个这种链路150的组合。在整个网络环境100中,多条链路150不必都是相同的。在一个或多个方面,一条或多条第一链路150可以与一条或多条第二链路不同。
在特定实施例中,客户端系统130可以是任何合适的电子设备,该电子设备包括硬件、软件或嵌入式逻辑部件或两个或更多个此类部件的组合,并且能够执行由客户端系统130实现或支持的功能。作为示例而非限制,客户端系统130可以包括计算机系统,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像头、个人数字助理(personal digital assistant,PDA)、手持电子设备、蜂窝电话、智能手机、智能扬声器、智能手表、智能眼镜、增强现实(augmented-reality,AR)智能眼镜、虚拟现实(virtual reality,VR)头戴式设备(headset)、其他合适的电子设备、或它们的任何合适的组合。在特定实施例中,客户端系统130可以是智能助理设备。有关智能助理设备的更多信息可以在以下文件中找到:于2018年4月9日提交的、第15/949011号美国专利申请,于2018年10月5日提交的、第16/153574号美国专利申请,于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处的其他用户进行通信。
在特定实施例中,客户端系统130可以包括网页浏览器(web browser)132,并且可以具有一个或多个附加组件(add-on)、插件或其他扩展。客户端系统130处的用户可以输入统一资源定位符(Uniform Resource Locator,URL)或其他地址,从而将网页浏览器132定向到特定服务器(例如,服务器162、或与第三方系统170相关联的服务器),并且网页浏览器132可以生成超文本传输协议(Hyper Text Transfer Protocol,HTTP)请求并向服务器传送该HTTP请求。服务器可以接收该HTTP请求,并响应于该HTTP请求向客户端系统130传送一个或多个超文本标记语言(Hyper Text Markup Language,HTML)文件。客户端系统130可以基于来自服务器的HTML文件来渲染网页界面(例如,网页),以用于呈现给用户。本公开考虑了任何合适的源文件。作为示例而非限制,根据特定需要,网页界面可以是根据HTML文件、可扩展超文本标记语言(Extensible Hyper Text Markup Language,XHTML)文件、或可扩展标记语言(Extensible Markup Language,XML)文件而渲染的。这种界面还可以执行脚本、以及标记语言和脚本的组合等。在本文中,在适当的情况下,对网页界面的引用包含一个或多个对应的源文件(浏览器可以使用其来渲染网页界面),并且反之亦然。
在特定实施例中,客户端系统130可以包括安装在客户端系统130上的社交网络应用134。客户端系统130处的用户可以使用社交网络应用134来访问在线社交网络。客户端系统130处的用户可以使用社交网络应用134来与用户的社交关系(例如,朋友、关注者、关注的账户、联系人等)通信。客户端系统130处的用户还可以使用社交网络应用134来与在线社交网络上的多个内容对象(例如,帖子、新闻文章、短暂内容等)交互。作为示例而非限制,用户可以使用社交网络应用134浏览热门话题和突发新闻。
在特定实施例中,客户端系统130可以包括助理应用136。客户端系统130处的用户可以使用助理应用136来与助理系统140交互。在特定实施例中,助理应用136可以包括助理xbot功能,作为用于与客户端系统130的用户交互(其包括接收用户输入并呈现输出)的前端接口。在特定实施例中,助理应用136可以包括独立应用。在特定实施例中,助理应用136可以被集成到社交网络应用134或另一合适的应用(例如,消息收发应用)中。在特定实施例中,助理应用136还可以被集成到客户端系统130、助理硬件设备或任何其他合适的硬件设备中。在特定实施例中,助理应用136还可以是助理系统140的一部分。在特定实施例中,可以通过网页浏览器132访问助理应用136。在特定实施例中,用户可以通过以下方式来与助理系统140交互:通过各种模态(例如,音频、语音、文本、视觉、图像、视频、手势、运动、活动、位置、方位)向助理应用136提供用户输入。助理应用136可以(例如,通过助理xbot)向助理系统140传送用户输入。助理系统140可以基于该用户输入生成响应。助理系统140可以向助理应用136发送所生成的响应。然后,助理应用136可以通过各种模态(例如,音频、文本、图像和视频)向客户端系统130处的用户呈现该响应。作为示例而非限制,用户可以通过以下方式来与助理系统140交互:通过客户端系统130的传声器向助理xbot提供用户输入(例如,对关于附近车辆交通的当前状态的信息的口头请求)。然后,助理应用136可以通过网络110向助理系统140传送用户输入。助理系统140可以相应地分析用户输入,基于对用户输入的分析来生成响应(例如,从第三方源获取到的车辆交通信息),并将所生成的响应传送回助理应用136。然后,助理应用136可以以任何合适的方式向用户呈现所生成的响应(例如,在客户端系统130的显示器上显示:基于文本的推送通知和/或示出了附近车辆交通的本地地图的一幅或多幅图像)。
在特定实施例中,客户端系统130可以实现唤醒词检测技术,以允许用户使用与助理系统140相关联的一个或多个唤醒词来方便地激活助理系统140。作为示例而非限制,客户端系统130上的系统音频API可以连续地监测用户输入,该用户输入包括在客户端系统130处接收的音频数据(例如,多帧语音数据)。在该示例中,与助理系统140相关联的唤醒词可以是语音短语“嘿助理”。在该示例中,当客户端系统130上的系统音频API在所监测的音频数据中检测到语音短语“嘿助理”时,助理系统140可以被激活以用于与用户的后续交互。在替代实施例中,可以实现类似的检测技术以使用与助理系统140相关联的特定非音频用户输入来激活助理系统140。例如,非音频用户输入可以是由客户端系统130的低功率传感器(例如,摄像头)检测到的特定视觉信号。作为示例而非限制,视觉信号可以是静态图像(例如,条形码、快速响应(QR)码、通用产品代码(universal product code,UPC))、用户的位置(例如,用户对客户端系统130的注视)、用户动作(例如,用户指向一对象)或任何其他合适的视觉信号。
在特定实施例中,客户端系统130可以包括渲染设备137,并且可选地包括伴随设备138。渲染设备137可以被配置为向用户渲染由助理系统140生成的输出。伴随设备138可以被配置为在特定情况下(例如当渲染设备137不能执行与特定任务(例如,与助理系统140的通信)相关联的计算时)在伴随设备138上本地(即,在设备上)执行所述计算。在特定实施例中,客户端系统130、渲染设备137和/或伴随设备138可以各自是合适的电子设备,该电子设备包括硬件、软件、或嵌入式逻辑部件或两个或更多个此类部件的组合,并且客户端系统130、渲染设备137和/或伴随设备138能够独立地或协同地执行由本文所描述的客户端系统130所实现或所支持的功能。作为示例而非限制,客户端系统130、渲染设备137和/或伴随设备138可以各自包括计算机系统,该计算机系统例如为,台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像头、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、智能扬声器、虚拟现实(VR)头戴式设备、增强现实(AR)智能眼镜、其他合适的电子设备、或它们的任何合适的组合。在特定实施例中,客户端系统130、渲染设备137和伴随设备138中的一者或多者可以作为智能助理设备来运行。作为示例而非限制,渲染设备137可以包括智能眼镜,并且伴随设备138可以包括智能手机。作为另一示例而非限制,渲染设备137可以包括智能手表,并且伴随设备138可以包括智能手机。作为又一示例而非限制,渲染设备137可以包括智能眼镜,并且伴随设备138可以包括用于智能眼镜的智能遥控器。作为又一示例而非限制,渲染设备137可以包括VR/AR头戴式设备,并且伴随设备138可以包括智能手机。
在特定实施例中,用户可以单独地或组合地使用渲染设备137或伴随设备138来与助理系统140交互。在特定实施例中,客户端系统130、渲染设备137和伴随设备138中的一者或多者可以实现多阶段唤醒词检测模型,以使用户能够通过连续地监测与助理系统140相关联的一个或多个唤醒词来方便地激活助理系统140。在唤醒词检测模型的第一阶段,渲染设备137可以接收音频用户输入(例如,多帧语音数据)。如果渲染设备137与伴随设备138之间的无线连接可用,则渲染设备137上的应用可以通过无线连接来向伴随设备138上的伴随应用传送所接收的音频用户输入。在唤醒词检测模型的第二阶段,伴随设备138上的伴随应用可以处理所接收的音频用户输入,以检测与助理系统140相关联的唤醒词。然后,伴随设备138上的伴随应用可以通过无线网络110向与助理系统140相关联的服务器传送所检测到的唤醒词。在唤醒词检测模型的第三阶段,与助理系统140相关联的服务器可以对所检测到的唤醒词执行关键字验证,以验证用户是否想要激活助理系统140并从助理系统140接收帮助。在替代实施例中,处理、检测或关键字验证中的任一者可以由渲染设备137和/或伴随设备138执行。在特定实施例中,当助理系统140已经被用户激活时,渲染设备137上的应用可以被配置为接收来自用户的用户输入,并且伴随设备138上的伴随应用可以被配置为处理由渲染设备137上的应用所接收的用户输入(例如,用户请求)。在特定实施例中,渲染设备137和伴随设备138可以通过一个或多个无线通信协议(例如,蓝牙)彼此关联(即,配对)。
下面的示例工作流示出了渲染设备137和伴随设备138可以如何处理由用户提供的用户输入。在该示例中,渲染设备137上的应用可以接收用户输入,该用户输入包括指向渲染设备137的用户请求。然后,渲染设备137上的应用可以确定渲染设备137与伴随设备138之间的无线连接的状态(即,网络共享(tethering)状态)。如果渲染设备137与伴随设备138之间的无线连接不可用,则渲染设备137上的应用可以通过网络110将用户请求(可选地包括对渲染设备137可用的附加数据和/或上下文信息)传送到助理系统140。然后,助理系统140可以生成对用户请求的响应,并将所生成的响应传送回渲染设备137。然后,渲染设备137可以以任何合适的方式向用户呈现该响应。替代地,如果渲染设备137与伴随设备138之间的无线连接可用,则渲染设备137上的应用可以通过该无线连接将用户请求(可选地包括对渲染设备137可用的附加数据和/或上下文信息)传送到伴随设备138上的伴随应用。然后,伴随设备138上的伴随应用可以通过网络110将用户请求(可选地包括对伴随设备138可用的附加数据和/或上下文信息)传送到助理系统140。然后,助理系统140可以生成对用户请求的响应,并将所生成的响应传送回伴随设备138。然后,伴随设备138上的伴随应用可以将所生成的响应传送到渲染设备137上的应用。然后,渲染设备137可以以任何合适的方式向用户呈现该响应。在前面的示例工作流中,渲染设备137和伴随设备138可以各自在该工作流的每个相应步骤执行一个或多个计算和/或处理。在特定实施例中,可以至少部分地基于渲染设备137和/或伴随设备138的设备状态、与用户输入相关联的任务、和/或一个或多个附加因素,在渲染设备137与伴随设备138之间自适应地切换对本文所公开的计算和/或处理的执行。作为示例而非限制,一个因素可以是渲染设备137与伴随设备138之间的无线连接的信号强度。例如,如果渲染设备137与伴随设备138之间的无线连接的信号强度较强,则计算和处理可以自适应地切换为基本上由伴随设备138执行,以便例如受益于伴随设备138的中央处理器(CPU)的更强处理能力。替代地,如果渲染设备137与伴随设备138之间的无线连接的信号强度较弱,则计算和处理可以自适应地切换为基本上由渲染设备137以独立的方式执行。在特定实施例中,如果客户端系统130不包括伴随设备138,则前述计算和处理可以由渲染设备137以独立的方式独自执行。
在特定实施例中,助理系统140可以帮助用户进行各种助理相关的任务。助理系统140可以在执行这些助理相关的任务时与社交网络系统160和/或第三方系统170交互。
在特定实施例中,社交网络系统160可以是可托管在线社交网络的网络可寻址计算系统。社交网络系统160可以生成、存储、接收和发送社交网络数据,该社交网络数据例如为,用户资料数据、概念资料数据、社交图谱信息、或与在线社交网络相关的其他合适的数据。社交网络系统160可以由网络环境100中的其他部件直接地访问或通过网络110访问。作为示例而非限制,客户端系统130可以使用网页浏览器132或与社交网络系统160相关联的本地应用(例如,移动社交网络应用、消息收发应用、另一合适的应用、或它们的任何组合)来直接访问社交网络系统160,或者通过网络110访问社交网络系统160。在特定实施例中,社交网络系统160可以包括一个或多个服务器162。每个服务器162可以是单一服务器或跨多个计算机或多个数据中心的分布式服务器。作为示例而非限制,每个服务器162可以是网页服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适于执行本文所描述的功能或过程的另一服务器,或者它们的任意组合。在特定实施例中,每个服务器162可以包括用于执行由服务器162实现或支持的合适功能的硬件、软件、或嵌入式逻辑部件、或两个或更多个这些部件的组合。在特定实施例中,社交网络系统160可以包括一个或多个数据存储库164。数据存储库164可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据存储库164中的信息。在特定实施例中,每个数据存储库164可以是关系型数据库、列式数据库、关联数据库(correlation database)或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开考虑了任何合适类型的数据库。特定实施例可以提供这样的接口:所述接口使客户端系统130、社交网络系统160、助理系统140或第三方系统170能够对存储在数据存储库164中的信息进行管理、检索、修改、添加或删除。
在特定实施例中,社交网络系统160可以在一个或多个数据存储库164中存储一个或多个社交图谱。在特定实施例中,社交图谱可以包括多个节点——这些节点可以包括多个用户节点(每个用户节点对应于一特定用户)或多个概念节点(每个概念节点对应于一特定概念)—以及连接这些节点的多条边。社交网络系统160可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以通过社交网络系统160加入在线社交网络,并且随后可以添加与社交网络系统160中他们想要被连接到的多个其他用户的联系(例如,关系)。在本文中,术语“朋友”可以指社交网络系统160中的、用户通过社交网络系统160已经与之形成联系、关联或关系的任何其他用户。
在特定实施例中,社交网络系统160可以向用户提供对由社交网络系统160支持的对各种类型的项或对象采取动作的能力。作为示例而非限制,这些项和对象可以包括社交网络系统160的用户可能所属的群组或社交网络、用户可能感兴趣的事件或日程表条目、用户可使用的基于计算机的应用、允许用户通过服务购买或销售的项的交易、与用户可执行的广告的交互、或其他合适的项或对象。用户可以与能够在社交网络系统160中表示或者由第三方系统170的外部系统表示的任何事物交互,该外部系统与社交网络系统160分开并且通过网络110耦接到社交网络系统160。
在特定实施例中,社交网络系统160可能能够链接各种实体。作为示例而非限制,社交网络系统160可以使用户能够彼此交互并且接收来自第三方系统170或其他实体的内容,或者允许用户通过应用编程接口(API)或其他通信通道与这些实体交互。
在特定实施例中,第三方系统170可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口(包括但不限于API)、一个或多个网页服务、一个或多个内容源、一个或多个网络、或例如服务器可与之通信的任何其他合适的部件。第三方系统170可以由与操作社交网络系统160的实体不同的实体操作。然而,在特定实施例中,社交网络系统160和第三方系统170可以彼此协同运行,以向社交网络系统160的用户或第三方系统170的用户提供社交网络服务。在这个意义上,社交网络系统160可以提供平台或主干网(backbone),其他系统(例如,第三方系统170)可以使用该平台或主干网来向互联网上的用户提供社交网络服务和功能。
在特定实施例中,第三方系统170可以包括第三方内容对象提供者。第三方内容对象提供者可以包括内容对象的一个或多个源,这些内容对象可以被传送到客户端系统130。作为示例而非限制,内容对象可以包括与用户感兴趣的事物或活动有关的信息,例如电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论、或其他合适的信息。作为另一示例而非限制,内容对象可以包括激励内容对象,例如优惠券、折扣票、礼品券、或其他合适的激励对象。在特定实施例中,第三方内容提供者可以使用一个或多个第三方代理来提供内容对象和/或服务。第三方代理可以是在第三方系统170上被托管和执行的实现。
在特定实施例中,社交网络系统160还包括用户生成的内容对象,该内容对象可以增强用户与社交网络系统160的交互。用户生成的内容可以包括用户可添加、上传、发送、或“发布”到社交网络系统160的任何内容。作为示例而非限制,用户将帖子从客户端系统130传送到社交网络系统160。帖子可以包括诸如状态更新或其他文本数据等数据、位置信息、照片、视频、链接、音乐、或其他类似数据或媒体。内容还可以由第三方通过“通信通道”(例如,新闻推送或流)添加到社交网络系统160。
在特定实施例中,社交网络系统160可以包括各种服务器、子系统、程序、模块、日志以及数据存储库。在特定实施例中,社交网络系统160可以包括以下中的一者或多者:网页服务器、动作日志记录器、API请求服务器、相关性和排名引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象公开日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块、用户界面模块、用户资料存储库、联系存储库、第三方内容存储库或位置存储库。社交网络系统160还可以包括合适的部件,例如网页界面、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件、或它们的任何合适的组合。在特定实施例中,社交网络系统160可以包括用于存储用户资料的一个或多个用户资料存储器。用户资料可以包括例如生物信息、个人背景信息、行为信息、社交信息或其他类型的描述性信息(例如工作经验、教育历史、爱好或偏好、兴趣、姻亲关系或位置)。兴趣信息可以包括与一个或多个类别相关联的兴趣。类别可以是通用的或特定的。作为示例而非限制,如果用户“喜欢”关于一鞋子品牌的物品,则该类别可以是该品牌,或者可以是“鞋子”或“服装”的通用类别。联系存储库可以用于存储关于用户的联系信息。联系信息可以指示具有相似或共同的工作经历、群组成员资格、爱好、教育历史、或者以任何方式相关或共享共同属性的用户。联系信息还可以包括不同用户与内容(内部和外部两者)之间的用户定义的联系。网页服务器可以用于通过网络110将社交网络系统160链接到一个或多个客户端系统130或者一个或多个第三方系统170。网页服务器可以包括邮件服务器或用于在社交网络系统160与一个或多个客户端系统130之间接收和路由消息的其他消息收发功能。API请求服务器可以允许例如助理系统140或第三方系统170通过调用一个或多个API来访问来自社交网络系统160的信息。动作日志记录器可以用于接收来自网页服务器的与用户登录或退出社交网络系统160的动作有关的信息。与动作日志相结合,可以维护用户公开给第三方内容对象的第三方内容对象日志。通知控制器可以向客户端系统130提供关于内容对象的信息。可以将信息作为通知推送至客户端系统130,或者可以响应于包括从客户端系统130接收到的用户请求的用户输入而从客户端系统130提取信息。授权服务器可以用于执行社交网络系统160的用户的一个或多个隐私设置。用户的隐私设置可以确定可以如何共享与用户相关联的特定信息。授权服务器可以允许用户例如通过设置合适的隐私设置,来选择让或选择不让:社交网络系统160记录他们的动作,或与其他系统(例如,第三方系统170)共享它们的动作。第三方内容对象存储库可以用于存储从第三方(例如,第三方系统170)接收到的内容对象。位置存储库可以用于存储从与用户相关联的客户端系统130接收到的位置信息。广告定价模块可以对社交信息、当前时间、位置信息或其他合适的信息进行组合,来以通知的形式向用户提供相关广告。
助理系统
图2示出了助理系统140的示例架构200。在特定实施例中,助理系统140可以帮助用户获取信息或服务。助理系统140可以使用户能够在有状态和多轮对话中通过各种模态(例如,音频、语音、文本、视觉、图像、视频、手势、动作、活动、位置、方位)的用户输入与助理系统140交互,以接收来自助理系统140的帮助。作为示例而非限制,用户输入可以包括基于用户语音(例如,口头命令)的音频输入,该音频输入可以由客户端系统130上的系统音频API(应用编程接口)处理。系统音频API可以执行包括回声消除、噪声去除、波束成形、自用户语音激活、说话者识别、语音活动检测(voice activity detection,VAD)和/或任何其他合适的声学技术的技术,以便生成可由助理系统140容易处理的音频数据。在特定实施例中,助理系统140可以支持单模态输入(例如,仅语音输入)、多模态输入(例如,语音输入和文本输入)、混合/多模式输入、或它们的任意组合。在特定实施例中,用户输入可以是在单向中被发送到助理系统140的用户生成的输入。由用户提供的用户输入可以与特定的助理相关的任务相关联,并且可以包括例如用户请求(例如,对信息或动作的执行的口头请求)、和与助理系统140相关联的助理应用136的用户交互(例如,通过触摸或手势来选择UI元素)、或者可由助理系统140检测和理解的任何其他类型的合适的用户输入(例如,由用户的客户端设备130检测到的用户移动)。
在特定实施例中,助理系统140可以创建并存储这样的用户资料:所述用户资料包括与用户相关联的个人信息和上下文信息这两者。在特定实施例中,助理系统140可以使用自然语言理解(NLU)技术来分析用户输入。对于更个性化的和上下文感知的理解,该分析可以至少部分地基于用户的用户资料。助理系统140可以基于该分析来解析与用户输入相关联的实体。在特定实施例中,助理系统140可以与不同的代理交互,以获得与所解析的实体相关联的信息或服务。助理系统140可以通过使用自然语言生成(NLG)为用户生成关于信息或服务的响应。通过与用户的交互,助理系统140可以使用对话管理技术来管理和转发与用户的对话流。在特定实施例中,助理系统140还可以通过对信息进行概括来帮助用户有效和高效地理解所获得的信息。助理系统140还可以通过提供帮助用户与在线社交网络交互(例如,创建帖子、评论、消息)的工具,来帮助用户更多地参与在线社交网络。助理系统140还可以帮助用户管理不同的任务,例如保持对事件的追踪。在特定实施例中,助理系统140可以在没有用户输入的情况下,在与用户相关的时间基于用户资料主动执行与用户兴趣和偏好相关的预授权任务。在特定实施例中,助理系统140可以检查隐私设置,以确保根据用户的隐私设置而允许访问用户的资料或其他用户信息、并执行不同任务。有关根据隐私设备帮助用户的更多信息可以在以下文件中找到:于2018年11月6日提交的、第16/182542号美国专利申请,该申请通过引用而被结合。
在特定实施例中,助理系统140可以通过构建在客户端侧过程和服务器侧过程上的架构来帮助用户,客户端侧过程和服务器侧过程可以在各种运行模式下运行。在图2中,在虚线202的上方示出了客户端侧过程,而在虚线202的下方示出了服务器侧过程。第一运行模式(即,设备上模式)可以是这样的工作流:在该工作流中,助理系统140通过主要地或专门地在客户端系统130上本地执行客户端侧过程,来处理用户输入并向用户提供帮助。例如,如果客户端系统130没有连接到网络110(即,当客户端系统130离线时),则助理系统140可以在第一运行模式下仅利用客户端侧过程来处理用户输入。第二运行模式(即,云模式)可以是这样的工作流:在该工作流中,助理系统140通过主要或专门地在一个或多个远程服务器(例如,与助理系统140相关联的服务器)上执行服务器侧过程,来处理用户输入并向用户提供帮助。如图2所示,第三运行模式(即,混合模式)可以是这样的并行工作流:在该并行工作流中,助理系统140通过在客户端系统130上本地执行客户端侧过程、结合在一个或多个远程服务器(例如,与助理系统140相关联的服务器)上的服务器侧过程,来处理用户输入并向用户提供帮助。例如,客户端系统130和与助理系统140相关联的服务器都可以执行自动语音识别(automatic speech recognition,ASR)过程和自然语言理解(NLU)过程,但是客户端系统130可以委托与助理系统140相关联的服务器执行对话、代理和自然语言生成(NLG)过程。
在特定实施例中,对运行模式的选择可以至少部分地基于设备状态、与用户输入相关联的任务和/或一个或多个附加因素。作为示例而非限制,如上所述,一个因素可以是客户端系统130的网络连接状态。例如,如果客户端系统130没有连接到网络110(即,当客户端系统130离线时),则助理系统140可以在第一运行模式(即,设备上模式)下处理用户输入。作为另一示例而非限制,另一因素可以基于对客户端系统130的可用电池电量(即,电池状态)的测量。例如,如果客户端系统130需要节省电池电量(例如,当客户端系统130具有最小可用电池电量或者用户已经表示希望节省客户端系统130的电池电量时),则助理系统140可以在第二运行模式(即,云模式)或第三运行模式(即,混合模式)下处理用户输入,以在客户端系统130上执行较少的耗费电量的操作。作为又一示例而非限制,另一因素可以是一个或多个隐私约束(例如,指定的隐私设置、适用的隐私策略)。例如,如果一个或多个隐私约束限制或阻止特定数据被发送到远程服务器(例如,与助理系统140相关联的服务器),则助理系统140可以在第一运行模式(即,设备上模式)下处理用户输入,以保护用户隐私。作为又一示例而非限制,另一因素可以是客户端系统130与远程服务器(例如,与助理系统140相关联的服务器)之间的不同步的上下文数据。例如,可以确定客户端系统130和与助理系统140相关联的服务器具有不一致、缺失和/或未取得一致的上下文数据,助理系统140可以在第三运行模式(即,混合模式)下处理用户输入,以降低与用户输入相关联的不充分分析的可能性。作为又一示例而非限制,另一因素可以是对客户端系统130与远程服务器(例如,与助理系统140相关联的服务器)之间的连接的时延的测量。例如,如果与用户输入相关联的任务可能显著受益于和/或需要准时或立即执行(例如,照片采集任务),则助理系统140可以在第一运行模式(即,在设备模式)下处理用户输入以确保及时地执行该任务。作为又一示例而非限制,另一因素可以是:对于和与用户输入相关联的任务相关的特征,该特征是否仅由远程服务器(例如,与助理系统140相关联的服务器)支持。例如,如果相关特征需要高级技术功能(例如,高性能处理能力、快速更新周期)、而该高级技术功能在用户输入时仅由与助理系统140相关联的服务器支持而不被客户端系统130支持,则助理系统140可以在第二运行模式(即,云模式)或第三运行模式(即,混合模式)下处理用户输入,以便受益于该相关特征。
在特定实施例中,客户端系统130上的设备上协调器206可以协调接收用户输入,并且可以在示例工作流中的一个或多个决策点处确定应该使用上述运行模式中的哪一种运行模式来处理或继续处理该用户输入。如上所述,对运行模式的选择可以至少部分地基于设备状态、与用户输入相关联的任务和/或一个或多个附加因素。作为示例而非限制,参考图2中所示的工作流架构,在接收到来自用户的用户输入之后,在决策点(D0)205处,设备上协调器206可以确定是在第一运行模式(即,设备上模式)、在第二运行模式(即,云模式)还是在第三运行模式(即,混合模式)下开始处理用户输入。例如,在决策点(D0)205处,如果客户端系统130没有连接到网络110(即,当客户端系统130离线时),如果一个或多个隐私约束明确要求设备上处理(例如,向多个用户之间的私人通话添加或删除另一个人),或者如果用户输入与不需要或不受益于服务器侧过程的任务(例如,设置提示或呼叫另一用户)相关联,则设备上协调器206可以选择第一运行模式(即,设备上模式)。作为另一示例,在决策点(D0)205处,如果客户端系统130需要节省电池电量(例如,当客户端系统130具有最小可用电池电量或用户已表示希望节省客户端系统130的电池电量时)或需要限制对计算资源的额外利用时(例如,当在客户端设备130上运行的其他过程(例如,SMS消息收发应用)需要高CPU利用时),则设备上协调器206可以选择第二运行模式(即,云模式)或第三运行模式(即,混合模式)。
在特定实施例中,如图2所示,如果设备上协调器206在决策点(D0)205处确定应该使用第一运行模式(即,设备上模式)或第三运行模式(即,混合模式)来处理用户输入,则客户端侧过程可以继续。作为示例而非限制,如果用户输入包括语音数据,则可以在客户端系统130上的本地自动语音识别(ASR)模块208a处接收语音数据。ASR模块208a可允许用户口述并将语音转录为书面文本、将文档合成为音频流、或发出被系统识别为这样的书面文本和音频流的命令。
在特定实施例中,可以将ASR模块208a的输出发送到本地的自然语言理解(NLU)模块210a。NLU模块210a可以执行命名实体解析(named entity resolution,NER),或者命名实体解析可以由实体解析模块212a执行,如下所述。在特定实施例中,意图、槽(slot)或域(domain)中的一者或多者可以是NLU模块210a的输出。
在特定实施例中,用户输入可以包括可在本地的上下文引擎220a处接收的非语音数据。作为示例而非限制,非语音数据可以包括位置、视觉、触摸、手势、世界更新、社交更新、上下文信息、与人有关的信息、活动数据和/或任何其他合适类型的非语音数据。非语音数据还可以包括由客户端系统130的传感器(例如,传声器、摄像头)接收的感知数据,该感知数据可以受制于隐私约束而被访问,并且可以通过计算机视觉技术被进一步分析。在特定实施例中,计算机视觉技术可以包括人体建模、面部检测、面部识别、手部追踪、眼动追踪、和/或任何其他合适的计算机视觉技术。在特定实施例中,非语音数据可以受制于几何构造,该几何构造可以包括使用由客户端系统130收集的任何合适类型的数据来构造用户周围的对象。作为示例而非限制,用户可能正佩戴着AR眼镜,并且几何构造可以被用来确定表面和项(例如,地板、墙壁、用户的手)的空间位置。在特定实施例中,非语音数据可以是由AR眼镜或VR头戴式设备采集的惯性数据,并且该惯性数据可以是与线性运动和角运动相关联的数据(例如,与用户身体运动相关联的测量结果)。在特定实施例中,上下文引擎220a可以基于非语音数据来确定各种类型的事件和上下文。
在特定实施例中,可以将NLU模块210a和/或上下文引擎220a的输出发送到实体解析模块212a。实体解析模块212a可以解析与由NLU模块210a输出的一个或多个槽相关联的实体。在特定实施例中,每个所解析的实体可以与一个或多个实体标识符相关联。作为示例而非限制,标识符可以包括与特定用户相对应的唯一用户标识符(identifier,ID)(例如,社交网络系统160的唯一用户名或用户ID号)。在特定实施例中,每个所解析的实体还可以与置信度分数相关联。有关解析实体的更多信息可以在以下文件中找到:于2018年7月27日提交的、第10,803,050号美国专利,以及于2018年7月27日提交的、第16/048072号美国专利申请,这些申请中的每个申请通过引用而被结合。
在特定实施例中,在决策点(D0)205处,设备上协调器206可以确定应该在第二运行模式(即,云模式)或第三运行模式(即,混合模式)下处理用户输入。在这些运行模式下,用户输入可以由某些服务器侧模块以与上述客户端侧过程类似的方式处理。
在特定实施例中,如果用户输入包括语音数据,则可以在远程服务器(例如,与助理系统140相关联的服务器)上的远程的自动语音识别(ASR)模块208b处接收用户输入的语音数据。ASR模块208b可以允许用户口述并将语音转录为书面文本、将文档合成为音频流、或发出被系统识别为这样的书面文本或音频流的命令。
在特定实施例中,可以将ASR模块208b的输出发送到远程的自然语言理解(NLU)模块210b。在特定实施例中,NLU模块210b可以执行命名实体解析(NER),或者命名实体解析可以由如下所述的对话管理器216b的实体解析模块212b执行。在特定实施例中,意图、槽或域中的一者或多者可以是NLU模块210b的输出。
在特定实施例中,用户输入可以包括非语音数据,该非语音数据可以在远程的上下文引擎220b处被接收。在特定实施例中,远程的上下文引擎220b可以基于非语音数据来确定各种类型的事件和上下文。在特定实施例中,可以将NLU模块210b和/或上下文引擎220b的输出发送到远程的对话管理器216b。
在特定实施例中,如上所述,客户端系统130上的设备上协调器206可以协调接收用户输入,并且可以在示例工作流中的一个或多个决策点处,确定应该使用上述运行模式中的哪一种运行模式来处理或继续处理用户输入。如上进一步所述,对运行模式的选择可以至少部分地基于设备状态、与用户输入相关联的任务、和/或一个或多个附加因素。作为示例而非限制,继续参考图2中所示的工作流架构,在实体解析模块212a生成输出或空输出之后,设备上协调器206可以在决策点(D1)215处,确定是在第一运行模式(即,设备上模式)、在第二运行模式(即,云模式)还是在第三运行模式(即,混合模式)下继续处理用户输入。例如,在决策点(D1)215处,如果所识别的意图与时延敏感处理任务(例如,拍摄照片、暂停计时器)相关联,则设备上协调器206可以选择第一运行模式(即,设备上模式)。作为另一示例而非限制,如果客户端系统130上的设备上处理不支持消息收发任务,则设备上协调器206可以选择第三运行模式(即,混合模式)来处理与消息收发请求相关联的用户输入。作为又一示例,在决策点(D1)215处,如果正被处理的任务需要访问未存储在客户端系统130上的社交图谱、知识图谱或概念图谱,则设备上协调器206可以选择第二运行模式(即,云模式)或第三运行模式(即,混合模式)。替代地,如果客户端系统130上存在信息图谱(该信息图谱包括用于任务的必需信息)的充分版本(例如,知识图谱的小版本和/或自举版本),则设备上协调器206可以替代地选择第一运行模式(即,设备上模式)。
在特定实施例中,如图2所示,如果设备上协调器206在决策点(D1)215处确定应该使用第一运行模式(即,设备上模式)或第三运行模式(即,混合模式)继续处理,则客户端侧过程可以继续。作为示例而非限制,可以将来自实体解析模块212a的输出发送到设备上对话管理器216a。在特定实施例中,设备上对话管理器216a可以包括对话状态追踪器218a和动作选择器222a。设备上对话管理器216a可以具有复杂的对话逻辑和产品相关的业务逻辑,以管理用户与助理系统140之间的对话状态和对话流。设备上对话管理器216a可以包括用于端到端集成和多轮支持的全部功能(例如,确认、消歧)。设备上对话管理器216a在计算限制和资源(包括内存、计算(CPU)和二进制大小约束)方面也可以是轻量级的。设备上对话管理器216a也可以是可扩展的,以提高开发者体验。在特定实施例中,设备上对话管理器216a可以例如通过以下方式来使助理系统140受益:提供离线支持以减少网络连接问题(例如,不稳定或不可用的网络连接),使用客户端侧过程来防止隐私敏感信息被传输出客户端系统130,以及在高时延敏感场景中提供稳定的用户体验。
在特定实施例中,设备上对话管理器216a还可以进行错误触发减少。对错误触发减少的实现可以检测并防止来自用户输入的、也将会调用助理系统140的错误触发(例如,意外唤醒词),并且可以进一步防止助理系统140生成基于错误触发的数据记录,这些数据记录可能是不准确的和/或可能受制于隐私约束。作为示例而非限制,如果用户处于语音通话中,则用户在语音通话期间的对话可以被认为是私密的,并且错误触发减少可以将对唤醒词的检测限制为由用户的客户端系统130本地接收的音频用户输入。在特定实施例中,设备上对话管理器216a可以基于废话检测器(nonsense detector)来实现错误触发减少。如果废话检测器以高置信度确定在从用户接收到唤醒词的时间点处、所接收到的该唤醒词在逻辑和/或上下文上是不合理的,则设备上对话管理器216a可以确定用户不想要调用助理系统140。
在特定实施例中,由于客户端系统130的计算能力有限,因此设备上对话管理器216a可以基于为客户端系统130特别定制的学习算法来进行设备上学习。作为示例而非限制,联合学习技术可以由设备上对话管理器216a实现。联合学习是一特定类别的分布式机器学习技术,该分布式机器学习技术可以使用终端设备(例如,移动电话)上存储的分散化数据来训练机器学习模型。在特定实施例中,设备上对话管理器216a可以使用联合用户表示学习模型来扩展现有的神经网络个性化技术,以实现设备上对话管理器216a的联合学习。联合用户表示学习可以通过学习特定于任务的用户表示(即,嵌入)和/或通过使模型权重个性化,来使联合学习模型个性化。联合用户表示学习是简单的、可扩展的、隐私保护的和资源高效的。联合用户表示学习可以将模型参数分为联合参数和隐私参数。隐私参数(例如,私人用户嵌入)可以在客户端系统130上进行本地训练,而不是被传送到远程服务器(例如,与助理系统140相关联的服务器)或由远程服务器求平均。相反,联合参数可以在服务器上进行远程训练。在特定实施例中,设备上对话管理器216a可以使用主动联合学习模型,该主动联合学习模型可以将在远程服务器上训练的全局模型传输到客户端系统130并在客户端系统130上本地计算梯度。主动联合学习可以使设备上对话管理器216a能够最小化与下载模型和上传梯度相关联的传输成本。对于主动联合学习,在每一轮中,可以至少部分地基于以当前模型和客户端系统130上的数据为条件的概率,以半随机方式选择客户端系统130,以优化用于训练联合学习模型的效率。
在特定实施例中,当用户与世界交互并且助理系统140与用户交互时,对话状态追踪器218a可以追踪随时间的状态变化。作为示例而非限制,对话状态追踪器218a可以根据适用的隐私策略追踪例如用户正在谈论什么、用户与谁在一起、用户在哪里、当前正在进行什么任务、以及用户注视的位置。
在特定实施例中,在决策点(D1)215处,设备上协调器206可以确定将用户输入转发到第二运行模式(即,云模式)或第三运行模式(即,混合模式)的服务器。作为示例而非限制,如果客户端系统130上不支持特定功能或过程(例如,消息收发),则设备上协调器206可以在决策点(D1)215处确定使用第三运行模式(即,混合模式)。在特定实施例中,设备上协调器206可以使得来自NLU模块210a、上下文引擎220a和实体解析模块212a的输出,通过对话管理器代理224被转发到远程的对话管理器216b的实体解析模块212b以继续该处理。对话管理器代理224可以是用于在客户端系统130与服务器之间交换信息/事件的通信通道。在特定实施例中,对话管理器216b还可以包括远程的仲裁器226b、远程的对话状态追踪器218b和远程的动作选择器222b。在特定实施例中,在决策点(D0)205处,助理系统140可能已经开始以第二运行模式(即,云模式)处理用户输入,而在决策点(D1)215处,设备上协调器206可以确定继续基于第二运行模式(即,云模式)处理该用户输入。因此,可以在远程的实体解析模块212b处接收来自NLU模块210b和上下文引擎220b的输出。远程的实体解析模块212b可以具有与本地的实体解析模块212a类似的功能,该功能可以包括解析与槽相关联的实体。在特定实施例中,实体解析模块212b可以在解析实体时访问社交图谱、知识图谱或概念图谱中的一者或多者。可以在仲裁器226b处接收来自实体解析模块212b的输出。
在特定实施例中,远程的仲裁器226b可以负责在客户端侧上游结果与服务器侧上游结果(例如,来自NLU模块210a/210b的结果、来自实体解析模块212a/212b的结果、以及来自上下文引擎220a/220b的结果)之间进行选择。仲裁器226b可以将所选择的上游结果发送到远程的对话状态追踪器218b。在特定实施例中,类似于本地的对话状态追踪器218a,远程的对话状态追踪器218b可以使用任务规范将上游结果转换成候选任务,并用实体解析来解析参数(argument)。
在特定实施例中,在决策点(D2)225处,设备上协调器206可以确定是继续基于第一运行模式(即,设备上模式)来处理用户输入,还是将用户输入转发到第三运行模式(即,混合模式)的服务器。该决策可以取决于例如客户端侧过程是否能够成功地解析任务和槽、是否存在具有特定特征支持的有效任务策略、和/或客户端侧过程与服务器侧过程之间的上下文差异。在特定实施例中,在决策点(D2)225处做出的决策可以是针对多轮场景的。在特定实施例中,可能存在至少两种可能的场景。在第一场景中,助理系统140可能已经开始使用客户端侧对话状态在第一运行模式(即,设备上模式)下处理用户输入。如果助理系统140在某一时刻决定切换到使远程服务器处理用户输入,则助理系统140可以创建具有当前任务状态的程序化/预定义任务,并将该程序化/预定义任务转发到远程服务器。对于后续轮次,助理系统140可以使用服务器侧对话状态在第三运行模式(即,混合模式)下继续处理。在另一场景中,助理系统140可能已经开始在第二运行模式(即,云模式)或第三运行模式(即,混合模式)下处理用户输入,并且对于所有后续轮次可能基本上依赖于服务器侧对话状态。如果设备上协调器206确定继续基于第一运行模式(即,设备上模式)处理用户输入,则可以在动作选择器222a处接收来自对话状态追踪器218a的输出。
在特定实施例中,在决策点(D2)225处,设备上协调器206可以确定将用户输入转发到远程服务器,并继续在第二运行模式(即,云模式)或第三运行模式(即,混合模式)下处理用户输入。助理系统140可以创建具有当前任务状态的程序化/预定义任务,并将该程序化/预定义任务转发到服务器,该程序化/预定义任务可以在动作选择器222b处被接收。在特定实施例中,助理系统140可能已经开始在第二运行模式(即,云模式)下处理用户输入,并且设备上协调器206可以在决策点(D2)225处确定继续在第二运行模式(即,云模式)下处理用户输入。因此,可以在动作选择器222b处接收来自对话状态追踪器218b的输出。
在特定实施例中,动作选择器222a/222b可以执行交互管理。动作选择器222a/222b可以确定并触发一组通用可执行动作。这些动作可以在客户系统130上或在远程服务器上执行。作为示例而非限制,这些动作可以包括向用户提供信息或建议。
在特定实施例中,这些动作可以与代理228a/228b、用户和/或助理系统140本身交互。这些动作可以包括这样的动作:所述动作包括槽请求、确认、消歧或代理执行中的一者或多者。这些动作可以独立于动作选择器222a/222b的底层实现。对于更复杂的场景(例如多轮任务或具有复杂业务逻辑的任务),本地的动作选择器222a可以调用一个或多个本地的代理228a,而远程的动作选择器222b可以调用一个或多个远程的代理228b,以执行这些动作。可以通过任务ID来调用代理228a/228b,并且可以使用该任务ID将任何动作路由到正确的代理228a/228b。在特定实施例中,代理228a/228b可以被配置为充当一个域的多个内容提供者之间的代理商(broker)。内容提供者可以是负责执行与意图相关联的动作或完成与该意图相关联的任务的实体。在特定实施例中,代理228a/228b可以为助理系统140提供若干功能,这些功能包括例如本地模板生成、特定于任务的业务逻辑和查询外部API。代理228a/228b在执行任务的动作时,可以使用来自对话状态追踪器218a/218b的上下文,并且还可以更新对话状态追踪器218a/218b。在特定实施例中,代理228a/228b还可以生成来自对话动作的部分有效负载。
在特定实施例中,本地的代理228a可以具有被编译/被注册用于不同平台(例如,智能眼镜与VR头戴式设备)的不同实现。在特定实施例中,多个设备特定的实现(例如,对客户端系统130或客户端系统130上的消息收发应用的实时调用)可以由单个代理228a进行内部处理。替代地,设备特定的实现可以由与多个域相关联的多个代理228a来处理。作为示例而非限制,调用智能眼镜上的代理228a可以以与调用智能手机上的代理228a不同的方式来实现。不同的平台还可以使用不同数量的代理228a。代理228a还可以是跨平台的(即,客户端系统130上的不同操作系统)。此外,代理228a可以具有最小化的启动时间或二进制大小影响。本地的代理228a可以适用于特定用例。作为示例而非限制,一个用例可以是对客户端系统130的紧急调用。作为另一示例而非限制,另一用例可以是在没有网络连接的情况下响应用户输入。作为另一示例而非限制,另一用例可以是:特定域/任务可能是隐私敏感的并且可以禁止将用户输入发送到远程服务器。
在特定实施例中,本地的动作选择器222a可以调用本地的传递系统230a来执行动作,而远程的动作选择器222b可以调用远程的传递系统230b来执行动作。传递系统230a/230b一经接收到来自对话状态追踪器218a/218b的触发信号,就可以通过执行对应动作来传递预定义事件。传递系统230a/230b可以确保将事件传递到具有活动连接的主机。作为示例而非限制,传递系统230a/230b可以向属于一个用户的所有在线设备广播。作为另一示例而非限制,传递系统230a/230b可以将事件传递到目标特定的设备。传递系统230a/230b还可以使用最新的设备上下文来渲染有效负载。
在特定实施例中,设备上对话管理器216a还可以包括单独的本地动作执行模块,并且远程的对话管理器216b还可以包括单独的远程动作执行模块。本地执行模块和远程动作执行模块可以具有类似的功能。在特定实施例中,动作执行模块可以调用代理228a/228b来执行任务。动作执行模块还可以执行由动作选择器222a/222b确定的一组通用可执行的动作。该组可执行的动作可以通过传递系统230a/230b与代理228a/228b、用户和助理系统140本身交互。
在特定实施例中,如果使用第一运行模式(即,设备上模式)来处理用户输入,则可以将来自代理228a和/或传递系统230a的结果返回到设备上对话管理器216a。然后,设备上对话管理器216a可以指示本地的仲裁器226a基于这些结果生成最终响应。仲裁器226a可以概括这些结果并对其进行评估。作为示例而非限制,仲裁器226a可以对响应于用户输入的结果进行排序并选择最佳结果。如果在第二运行模式(即,云模式)下处理用户请求,则可以将来自代理228b和/或传递系统230b的结果返回到远程的对话管理器216b。远程的对话管理器216b可以通过对话管理器代理224指示仲裁器226a基于这些结果生成最终响应。类似地,仲裁器226a可以分析这些结果并选择最佳结果以提供给用户。如果基于第三运行模式(即,混合模式)来处理用户输入,则(例如,来自代理228a/228b和/或传递系统230a/230b的)客户端侧结果和服务器侧结果都可以分别通过设备上对话管理器216a和远程的对话管理器216b提供给仲裁器226a。然后,仲裁器226a可以在客户端侧结果与服务器侧结果之间进行选择,以确定要呈现给用户的最终结果。在特定实施例中,在这些结果之间做出决定的逻辑可以取决于特定用例。
在特定实施例中,本地的仲裁器226a可以基于最终结果生成响应,并将该响应发送到渲染输出模块232。渲染输出模块232可以确定如何以适合于客户端系统130的方式渲染输出。作为示例而非限制,对于VR头戴式设备或AR智能眼镜,渲染输出模块232可以确定使用基于视觉的模态(例如,图像或视频片段)来渲染输出,该输出可以通过VR头戴式设备或AR智能眼镜显示。作为另一示例,该响应可以被渲染为音频信号,该音频信号可以由用户通过VR头戴式设备或AR智能眼镜播放。作为又一示例,该响应可以被渲染为增强现实数据以用于增强用户体验。
在特定实施例中,除了确定用于处理用户输入的运行模式之外,设备上协调器206还可以确定是在渲染设备137上处理用户输入、在伴随设备138上处理用户输入、还是在远程服务器上处理用户请求。渲染设备137和/或伴随设备138均可以以与上文公开的类似的方式使用助理堆栈来处理用户输入。作为示例而非限制,设备上协调器206可以确定该处理的一部分应在渲染设备137上完成,该处理的一部分应该在伴随设备138上完成,并且其余处理应该在远程服务器上完成。
在特定实施例中,助理系统140可以具有各种能力,这些能力包括音频认知、视觉认知、信号情报、推理和记忆。在特定实施例中,音频认知的能力可以使助理系统140能够:例如理解与不同语言的各个域相关联的用户输入、理解并概括对话、执行复杂命令的设备上音频认知、通过语音识别用户、从对话和对话的自动标记部分中提取主题、实现没有唤醒词的音频交互、从环境噪声和对话中过滤和放大用户语音、和/或理解在多个客户端系统130在附近的情况下用户正在与哪个客户端系统130对话。
在特定实施例中,视觉认知的能力可以使助理系统140能够:例如执行面部检测和追踪,识别用户,以不同角度识别主要大都市地区中的关注人物,通过现有机器学习模型和一次性学习的组合来识别世界中有趣的对象,识别有趣的瞬间并对其自动采集,在跨越不同时间片段的多个视觉帧上实现语义理解,为人类识别、地点识别或对象识别中的附加能力提供平台支持,识别全套设置和包括个性化位置的微位置,识别复杂活动,识别控制客户端系统130的复杂手势,处理来自以自我为中心的摄像头(egocentric camera)的(例如,具有运动、采集角度、分辨率的)图像/视频,实现与具有较低分辨率的图像有关的类似准确度和速度水平,执行人类、地点和对象的一次性登记和识别,和/或在客户端系统130上执行视觉识别。
在特定实施例中,助理系统140可以利用计算机视觉技术来实现视觉认知。除了计算机视觉技术之外,助理系统140还可以探索可补充这些技术以扩展对对象的识别的选项。在特定实施例中,助理系统140可以使用补充信号,例如对象标签的光学字符识别(opticalcharacter recognition,OCR)、用于地点识别的GPS信号和/或来自用户的客户端系统130的用于识别该用户的信号。在特定实施例中,助理系统140可以执行通用场景识别(例如,家庭空间、工作空间、公共空间)以设置用户的上下文,并缩小计算机视觉搜索空间以识别可能的对象或人。在特定实施例中,助理系统140可以引导用户训练助理系统140。例如,可以使用众包(crowdsourcing)来让用户标记对象并帮助助理系统140随着时间的推移而识别更多对象。作为另一示例,当使用助理系统140时,用户可以将他们的个人对象注册为初始设置的一部分。助理系统140还可以允许用户为他们与之交互的对象提供正信号/负信号,以训练和改进他们的个性化模型。
在特定实施例中,信号情报的能力可以使助理系统140能够:例如确定用户位置、理解日期/时间、确定家庭位置、理解用户的日程和未来想去的地点、集成更丰富的声音理解以仅通过声音来识别设置/上下文、和/或构建在运行时可针对用户的个体例程进行个性化的信号情报模型。
在特定实施例中,推理能力可以使助理系统140能够:例如在未来的任何时间点提取先前的对话线程、合成所有信号以理解微上下文和个性化上下文、根据用户的历史行为学习交互模式和偏好并准确地建议他们可能重视的交互、基于微上下文理解生成高度预测性的主动建议、理解用户可能想要在一天中的什么时间观看什么内容、和/或理解场景中的变化以及该变化可能如何影响用户想要的内容。
在特定实施例中,记忆能力可以使助理系统140能够:例如记住用户先前访问过或与之交互过的社交联系、随意地写入存储器和查询存储器(即,开放口述和自动标签)、基于先前的交互和长期学习来提取更丰富的偏好、记住用户的生活史、从以自我为中心的数据流和自动目录中提取丰富的信息、和/或以结构化形式向存储器写入以形成丰富的短期记忆、情景记忆和长期记忆。
图3示出了助理系统140的示例流程图300。在特定实施例中,助理服务模块305可以在接收到用户输入时访问请求管理器310。在特定实施例中,请求管理器310可以包括上下文提取器312和对话型理解(conversational understanding,CU)对象生成器(CU对象生成器)314。上下文提取器312可以提取与用户输入相关联的上下文信息。上下文提取器312还可以基于在客户端系统130上执行的助理应用136来更新上下文信息。作为示例而非限制,对上下文信息的更新可以包括在客户端系统130上显示内容项。作为另一示例而非限制,对上下文信息的更新可以包括是否在客户端系统130上设置提示。作为另一示例而非限制,对上下文信息的更新可以包括是否正在客户端系统130上播放歌曲。CU对象生成器314可以生成与用户输入相关的特定内容对象。内容对象可以包括与用户输入相关联的对话会话数据和特征,该对话会话数据和特征可以与助理系统140的所有模块共享。在特定实施例中,请求管理器310可以将上下文信息和所生成的内容对象存储在数据存储库320中,该数据存储库320是在助理系统140中实现的特定数据存储库。
在特定实施例中,请求管理器310可以将所生成的内容对象发送到NLU模块210。NLU模块210可以执行多个步骤来处理内容对象。NLU模块210可以首先在允许列表/阻止列表330中遍历内容对象。在特定实施例中,允许列表/阻止列表330可以包括匹配用户输入的解释数据。然后,NLU模块210可以执行对内容对象的特征化332。然后,NLU模块210可以基于由特征化332产生的特征,对用户输入执行域分类/选择334,以将用户输入分类到预定义域中。在特定实施例中,域可以表示交互(例如,教育)的社交上下文、或一组意图(例如,音乐)的命名空间。可以基于两个相关的过程进一步处理域分类/选择结果。在一个过程中,NLU模块210可以使用元意图分类器336a来处理域分类/选择结果。元意图分类器336a可以确定描述用户意图的类别。意图可以是预定义的语义意图分类中的元素,其可以指示用户与助理系统140交互的目的。NLU模块210可以将用户输入分类为预定义分类的成员。例如,用户输入可以是“播放贝多芬的第五首”,并且NLU模块210可以将该输入分类为具有意图[IN:播放_音乐]([IN:play_music])。在特定实施例中,多个域共同的意图可以由元意图分类器336a处理。作为示例而非限制,元意图分类器336a可以基于机器学习模型,该机器学习模型可以将域分类/选择结果作为输入并计算该输入与特定预定义元意图相关联的概率。然后,NLU模块210可以使用元槽标注器338a来为来自元意图分类器336a的分类结果标注一个或多个元槽。槽可以是与用户输入内表示基本语义实体的字符串相对应的命名子串。例如,“披萨(pizza)”的槽可以是[SL:食物]([SL:dish])。在特定实施例中,一组有效或预期的命名槽可以以被分类的意图为条件。作为示例而非限制,对于意图[IN:播放音乐],有效的槽可以是[SL:歌曲名]([SL:song_name])。在特定实施例中,元槽标注器338a可以标记通用槽,例如对项的指代(例如,第一)、槽的类型、槽的值等。在特定实施例中,NLU模块210可以使用意图分类器336b来处理域分类/选择结果。意图分类器336b可以确定与用户输入相关联的用户意图。在特定实施例中,对于每个域,可以存在一个意图分类器336b来确定给定域中最可能的意图。作为示例而非限制,意图分类器336b可以基于机器学习模型,该机器学习模型可以将域分类/选择结果作为输入并计算该输入与特定的预定义意图相关联的概率。然后,NLU模块210可以使用槽标注器338b来标注与用户输入相关联的一个或多个槽。在特定实施例中,槽标注器338b可以为用户输入的n元语法(n-gram)标注一个或多个槽。作为示例而非限制,用户输入可以包括“将我的帐户中的500美元兑换成日元”。意图分类器336b可以将用户输入作为输入并将其表示为向量。然后,意图分类器336b可以基于表示用户输入的向量与表示不同预定义意图的向量之间的向量比较,来计算用户输入与不同的预定义意图相关联的概率。以类似的方式,槽标注器338b可以将用户输入作为输入并且将每个词语表示为向量。然后,意图分类器336b可以基于表示词语的向量与表示不同的预定义槽的向量之间的向量比较,来计算每个词语与不同的预定义槽相关联的概率。用户的意图可以被分类为“兑换货币”。用户输入的槽可以包括“500”、“美元”、“账户”和“日元”。用户的元意图可以被分类为“金融服务”。元槽可以包括“金融”。
在特定实施例中,NLU模块210还可以从社交图谱、知识图谱或概念图谱中的一者或多者中提取信息,并且可以检索本地存储在客户端系统130上的用户资料。NLU模块210在分析用户输入时,还可以考虑上下文信息。NLU模块210可以进一步通过以下方式来处理来自这些不同源的信息:识别和概括信息、标注用户输入的n元语法、基于所概括的信息利用置信度分数对n元语法进行排序、以及将经排序的n元语法表示为可用于由NLU模块210理解用户输入的特征。在特定实施例中,NLU模块210可以以个性化和上下文感知的方式,从用户输入中识别域、意图或槽中的一者或多者。作为示例而非限制,用户输入可以包括“告诉我怎么去咖啡店”。NLU模块210可以基于用户的个人信息和相关联的上下文信息,来识别用户想要去的特定咖啡店。在特定实施例中,NLU模块210可以包括特定语言的词典、解析器和将句子划分为内部表示的语法规则。NLU模块210还可以包括执行朴素语义或随机语义分析的一个或多个程序,并且还可以使用语用学来理解用户输入。在特定实施例中,解析器可以基于这样的深度学习架构:该深度学习架构包括多个长短期记忆(long-short term memory,LSTM)网络。作为示例而非限制,解析器可以基于递归神经网络语法(recurrent neuralnetwork grammar,RNNG)模型,该RNNG模型是一种递归和循环LSTM算法。有关自然语言理解(NLU)的更多信息可以在以下文件中找到:于2018年6月18日提交的、第16/011062号美国专利申请,于2018年7月2日提交的、第16/025317号美国专利申请,于2018年7月17日提交的、第16/038120号美国专利申请,这些申请中的每个均通过引用而被结合。
在特定实施例中,可以将NLU模块210的输出发送到实体解析模块212以解析相关实体。实体可以包括例如唯一的用户或概念,这些用户或概念中的每个可以具有唯一的标识符(ID)。这些实体可以包括以下中的一者或多者:(来自通用知识库的)真实世界实体、(来自用户存储器的)用户实体、上下文实体(设备上下文/对话上下文)或值解析(数字、日期时间等)。在特定实施例中,实体解析模块212可以包括域实体解析340和通用实体解析342。实体解析模块212可以执行通用实体解析和域特定的实体解析。通用实体解析342可以通过将槽和元槽分类为不同的通用主题来解析实体。域实体解析340可以通过将槽和元槽分类为不同的域来解析实体。作为示例而非限制,响应于对特定品牌电动汽车的优点的查询的输入,通用实体解析342可以将所引用的电动汽车品牌解析为车辆,并且域实体解析340可以将所引用的电动汽车品牌解析为电动汽车。
在特定实施例中,可以基于与世界和用户有关的知识350来解析实体。助理系统140可以从图谱352中提取本体数据。作为示例而非限制,图谱352可以包括知识图谱、社交图谱或概念图谱中的一者或多者。本体数据可以包括不同槽/元槽与域之间的结构关系。本体数据还可以包括如下信息:槽/元槽可以如何分组、槽/元槽可以如何在层次结构(其中,更高层包括域)内相关、以及槽/元槽可以如何根据相似性和差异性进行细分。例如,知识图谱可以包括多个实体。每个实体可以包括与一个或多个属性值相关联的单个记录。该特定记录可以与唯一实体标识符相关联。每条记录可以具有该实体的不同的属性值。每个属性值可以与置信度概率和/或语义权重相关联。针对属性值的置信度概率表示:对于给定属性,该值准确的概率。针对属性值的语义权重可以表示:考虑到所有可用信息,该值在语义上有多适合于给定属性。例如,知识图谱可以包括名为“书名(BookName)”的书的实体,该实体可以包括从多个内容源(例如,在线社交网络、在线百科全书、书评源、媒体数据库和娱乐内容源)中提取的信息,该信息可以被去重、解析和融合以生成知识图谱的单个唯一记录。在该示例中,名为“书名(BookName)”的实体可以与“类型(genre)”实体属性的“奇幻(fantasy)”属性值相关联。有关知识图谱的更多信息可以在以下文件中找到:于2018年7月27日提交的、第16/048049号美国专利申请,以及于2018年7月27日提交的、第16/048101号美国专利申请,这些申请中的每个申请通过引用而被结合。
在特定实施例中,助理用户存储器(assistant user memory,AUM)354可以包括帮助确定如何更有效地帮助用户的用户情景记忆。AUM 354可以是用于存储用户数据、检索用户数据、为用户数据编索引和搜索用户数据的中心位置。作为示例而非限制,AUM 354可以存储诸如联系人、照片、提醒等信息。此外,AUM 354可以自动将数据同步到服务器和其他设备(仅针对非敏感数据)。作为示例而非限制,如果用户在一个设备上为联系人设置了昵称,则所有设备可以基于AUM 354同步并获得该昵称。在特定实施例中,AUM 354可以首先准备用于存储在数据存储库中的事件、用户状态、提醒和触发状态。可以创建记忆节点标识符(ID)以在AUM 354中存储条目对象,其中条目可以是某条关于用户的信息(例如,照片、提醒等)。作为示例而非限制,记忆节点ID的前几位可以指示这是记忆节点ID类型,后几位可能是用户ID,并且再后几位可能是创建时间。然后,AUM 354可以为这些数据编索引,以便根据需要进行检索。对于此目的,可以创建索引ID。在特定的实施例中,在给定了“索引关键词”(例如,照片_位置(PHOTO_LOCATION))和“索引值”(例如,“旧金山(San Francisco)”)的情况下,AUM 354可以获得具有该属性(例如,在旧金山的照片)的记忆ID的列表。作为示例而非限制,前几位可以指示这是索引ID类型,后几位可能是用户ID,并且再后几位可以对“索引关键词”和“索引值”进行编码。AUM 354还可以使用灵活的查询语言进行信息检索。对于此目的,可以创建关系索引ID。在特定实施例中,在给定了源记忆节点和边类型的情况下,AUM 354可以从源中获得具有该类型外向边的所有目标节点的记忆ID。作为示例而非限制,前几位可以指示这是关系索引ID类型,后几位可以是用户ID,并且再后几位可以是源节点ID和边类型。在特定实施例中,AUM 354可以帮助检测不同事件的并发更新。有关情景记忆的更多信息可以在以下文件中找到:于2019年8月27日提交的、第16/552559号美国专利申请,该申请通过引用而被结合。
在特定实施例中,实体解析模块212可以使用不同技术来解析不同类型的实体。对于真实世界实体,实体解析模块212可以使用知识图谱来解析实体的范围,例如“音乐曲目”、“电影”等。对于用户实体,实体解析模块212可以使用用户记忆或一些代理来将范围解析为用户特定的实体,例如“联系人”、“提醒”或“关系”。对于上下文实体,实体解析模块212可以基于来自上下文引擎220的信息来执行共指(coreference),以解析对上下文中的实体的指代,例如“他”、“她”、“第一个”或“最后一个”。在特定实施例中,对于共指,实体解析模块212可以为由NLU模块210确定的实体创建指代。然后,实体解析模块212可以准确地解析这些指代。作为示例而非限制,用户输入可以包括“为我找到最近的杂货店并指引我去那里”。基于共指,实体解析模块212可以将“那里”解释为“最近的杂货店”。在特定实施例中,共指可以取决于来自上下文引擎220和对话管理器216的信息,以便以提高的准确性解释指代。在特定实施例中,实体解析模块212还可以解析依据上下文(设备上下文或对话上下文)的实体,例如屏幕上所示的实体或来自上一次对话历史的实体。对于值解析,实体解析模块212可以将所提及的值解析为标准形式的精确值,例如数值、日期时间、地址等。
在特定实施例中,实体解析模块212可以首先对适用的隐私约束执行检查,以保证执行实体解析不违反任何适用的隐私策略。作为示例而非限制,要解析的实体可以是在其隐私设置中指定其身份不应该在在线社交网络上可搜索的另一用户。在这种情况下,实体解析模块212可能不会响应于用户输入而返回该用户的实体标识符。通过利用从社交图谱、知识图谱、概念图谱和用户资料获得的所描述的信息,并通过遵守任何适用的隐私策略,实体解析模块212可以以个性化的、上下文感知和隐私保护的方式,解析与用户输入相关联的实体。
在特定实施例中,实体解析模块212可以与ASR模块208一起工作以执行实体解析。下文的示例示出了实体解析模块212可以如何解析实体名称。实体解析模块212可以首先将与用户相关联的名称扩展成其相应的作为语音辅音表示的规格化文本形式,该语音辅音表示可以使用双音素算法(double metaphone algorithm)来语音转录。然后,实体解析模块212可以确定候选转录的n最佳集合,并对候选转录的n最佳集合中的所有语音转录执行并行理解过程。在特定实施例中,随后可以将解析为相同意图的每个转录转变(collapse)为单个意图。然后,可以为每个意图分配与该意图的最高得分候选转录相对应的分数。在转变期间,实体解析模块212可以识别与每个槽相关联的各种可能的文本转录,这些可能的文本转录通过与槽的转录相关联的边界定时偏移来进行关联。然后,实体解析模块212可以从多个(例如,1000个)候选转录中针对每个槽提取可能的候选转录的子集,而不管它们是否被分类到相同的意图。以这种方式,槽和意图可以是短语的评分列表。在特定实施例中,能够处理该意图的新任务或正在运行的任务(例如,用于向另一用户发送消息的意图的消息创建(composition)任务)可以被标识并与该意图一起被提供。然后,所识别的任务可以通过向实体解析模块212提供与其槽中的一个槽相关联的短语的评分列表、以及应该针对其进行解析的类别,来触发实体解析模块212。作为示例而非限制,如果实体属性被指定为“朋友”,则实体解析模块212可以在可在匹配器编译时运行的相同扩展中遍历项的每个候选列表。可以在预编译的特里(trie)匹配结构中匹配项的每个候选扩展。可以使用至少部分地基于转录的输入、匹配的形式和朋友姓名的函数,来对匹配进行评分。作为另一示例而非限制,如果实体属性被指定为“名人/杰出人物”,则实体解析模块212可以针对从ASR模块208输出的槽的每个候选项集,执行针对知识图谱的并行搜索。实体解析模块212可以基于匹配的人受欢迎度和ASR提供的得分信号来对匹配进行评分。在特定实施例中,当记忆类别被指定时,实体解析模块212可以针对用户记忆执行相同的搜索。实体解析模块212可以在用户记忆中向后缓慢行进(crawl)并尝试匹配每个记忆(例如,最近在会话中提到的人、或者通过视觉信号看到和识别到的人等)。对于每个实体,实体解析模块212可以采用与如何匹配朋友类似的匹配(即,语音)。在特定实施例中,评分可以包括与先前提到名称的最近时间相关联的时间衰减因子。实体解析模块212还可以对所有匹配进行组合、排序和去重。在特定实施例中,任务可以接收候选集。当存在多个高得分候选时,实体解析模块212可以执行用户促进的消歧(例如,从用户获得对这些候选的实时用户反馈)。
在特定实施例中,上下文引擎220可以帮助实体解析模块212改进实体解析。上下文引擎220可以包括离线聚合器和在线推理服务。离线聚集器可以处理从先前时间窗口收集的与用户相关联的多个数据。作为示例而非限制,数据可以包括在预定时间帧内(例如,从先前的90天窗口)收集的新闻推送帖子/评论、与新闻推送帖子/评论的交互、搜索历史等。处理结果可以作为用户资料的一部分而被存储在上下文引擎220中。用户的用户资料可以包括用户资料数据,该用户资料数据包括与用户相关联的个人背景信息、社交信息和上下文信息。用户资料数据还可以包括通过新闻推送、搜索日志、消息收发平台等上的对话而被聚合的、关于多个主题的用户兴趣和偏好。对用户资料的使用可能受制于隐私约束,以确保用户的信息只能用于他/她的利益,而不能与其他任何人共享。有关用户资料的更多信息可以在以下文件中找到:于2018年4月30日提交的、第15/967239号美国专利申请,该美国专利申请通过引用而被结合。在特定实施例中,在线推理服务可以分析助理系统140在当前时间接收的与用户相关联的对话数据。分析结果也可以作为用户资料的一部分而被存储在上下文引擎220中。在特定实施例中,离线聚合器和在线推理服务这两者都可以从多个数据中提取个性化特征。助理系统140的其他模块可以使用所提取的个性化特征来更好地理解用户输入。在特定实施例中,实体解析模块212可以基于自然语言处理(natural-languageprocessing,NLP)在以下步骤中处理来自上下文引擎220的信息(例如,用户资料)。在特定实施例中,实体解析模块212可以通过文本归一化来标记文本,从文本中提取句法特征,并且基于NLP从文本中提取语义特征。实体解析模块212还可以从上下文信息中提取特征,该上下文信息是从用户与助理系统140之间的对话历史访问的。实体解析模块212还可以基于上下文信息进行全局词嵌入、域特定嵌入和/或动态嵌入。可以由实体标注器用实体来注释处理结果。基于注释,实体解析模块212可以生成词典。在特定实施例中,词典可以包括可离线动态更新的全局词典特征。实体解析模块212可以对由实体标注器标记的实体进行排序。在特定实施例中,实体解析模块212可以与包括社交图谱、知识图谱或概念图谱中的一者或多者的不同的图谱352通信,以提取与从上下文引擎220检索到的信息相关的本体数据。在特定实施例中,实体解析模块212还可以基于用户资料、经排序的实体以及来自图谱352的信息,来解析实体。
在特定实施例中,实体解析模块212可以由任务(对应于代理228)驱动。这种对处理顺序的颠倒可以使任务中存在的域知识有可能在明显且适合这样做时、被应用于预过滤或偏置一组解析目标。作为示例而非限制,对于话语“约翰(John)是谁?”,在该话语中没有暗示明确的类别。因此,实体解析模块212可以针对所有内容解析“约翰(John)”。作为另一个示例而非限制,对于话语“向约翰发送消息”,实体解析模块212可以容易地确定“约翰”指的是可以收发消息的人。因此,实体解析模块212可以将解析偏向朋友。作为另一个示例而非限制,对于“约翰最著名的专辑是什么?”为了解析“约翰”,实体解析模块212可以首先确定对应于该话语的任务,即寻找音乐专辑。实体解析模块212可以确定与音乐专辑相关的实体包括歌手、制作人和录音棚。因此,实体解析模块212可以在音乐域中的这些类型的实体中进行搜索,以解析“约翰”。
在特定实施例中,可以将实体解析模块212的输出发送到对话管理器216以推进与用户的对话流。对话管理器216可以是重复地更新状态并基于新状态选择动作的异步状态机。对话管理器216还可以存储用户与助理系统140之间的先前对话。在特定实施例中,对话管理器216可以进行对话优化。对话优化涉及理解并识别与用户的对话中最可能的分支选项的这一挑战。作为示例而非限制,助理系统140可以实现对话优化技术以避免需要确认用户想要呼叫谁,因为助理系统140可以确定基于上下文和可用数据推断的人是预期接收者的高置信度。在特定实施例中,对话管理器216可以实现强化学习框架以改进对话优化。对话管理器216可以包括对话意图解析356、对话状态追踪器218和动作选择器222。在特定实施例中,对话管理器216可以执行所选择的动作,并且随后再次调用对话状态追踪器218,直到所选择的动作需要用户响应或者不再有动作要执行为止。所选择的每个动作可以取决于来自先前动作的执行结果。在特定实施例中,对话意图解析356可以基于用户与助理系统140之间的对话历史,来解析与当前对话会话相关联的用户意图。对话意图解析356可以将由NLU模块210确定的意图映射到不同的对话意图。对话意图解析356还可以基于来自NLU模块210、实体解析模块212的信号、以及用户与助理系统140之间的对话历史,来对对话意图进行排序。
在特定实施例中,对话状态追踪器218可以使用一组操作符来追踪对话状态。操作符可以包括更新对话状态所需的数据和逻辑。每个操作符可以在处理了刚收到的用户输入之后充当对话状态的变化量(delta)。在特定实施例中,对话状态追踪器218可以包括任务追踪器,该任务追踪器可以基于任务规范和不同的规则。对话状态追踪器218还可以包括槽追踪器和共指部件,槽追踪器和共指部件可以是基于规则和/或基于最近时间的。共指部件可以帮助实体解析模块212解析实体。在替代的实施例中,使用共指部件,对话状态追踪器218可以代替实体解析模块212,并且可以解析任何指代/提及并保持追踪状态。在特定实施例中,对话状态追踪器218可以使用任务规范将上游结果转换为候选任务,并利用实体解析来解析参数。可以追踪用户状态(例如,用户的当前活动)和任务状态(例如,触发条件)这两者。在给定了当前状态的情况下,对话状态追踪器218可以生成助理系统140可为用户处理和执行的候选任务。作为示例而非限制,候选任务可以包括“给出建议”、“获取天气信息”或“拍摄照片”。在特定实施例中,对话状态追踪器218可以基于来自例如知识图谱、用户记忆和用户任务历史的可用数据,来生成候选任务。在特定实施例中,对话状态追踪器218随后可以使用经解析的参数来解析触发器对象。作为示例而非限制,用户输入“今晚当妈妈在线且我在家时提醒我给她打电话”可以通过对话状态追踪器218执行从NLU输出到触发表示的转换,如下面的表1所示:
表1:从NLU输出到触发表示的转换示例
在上面的示例中,“妈妈”、“家”和“今晚”由它们各自的实体来表示:人物实体(personEntity)、位置实体(locationEntity)、日期时间实体(datetimeEntity)。
在特定实施例中,对话管理器216可以将由上下文引擎220确定的事件映射为动作。作为示例而非限制,动作可以是自然语言生成(NLG)动作、显示或覆盖、设备动作或检索动作。对话管理器216还可以执行上下文追踪和交互管理。上下文追踪可以包括将实时的事件流聚合为统一的用户状态。交互管理可以包括在每个状态中选择最佳动作。在特定实施例中,对话状态追踪器218可以执行上下文追踪(即,追踪与用户有关的事件)。为了支持对事件流的处理,对话状态追踪器218a可以使用事件处理器(例如,用于消歧、确认、请求),该事件处理器可以消耗(consume)各种类型的事件并更新内部助理状态。每种事件类型可以有一个或多个处理器。每个事件处理器可能正在修改助理状态的某个片段。在特定实施例中,事件处理器可能正在对状态的不相交子集进行操作(即,只有一个处理器可以对该状态中的特定字段具有写入访问权)。在特定实施例中,所有事件处理器可以具有处理给定事件的机会。作为示例而非限制,对话状态追踪器218可以在每个事件上并行运行所有事件处理器,并且随后可以合并由各个事件处理器提出的状态更新(例如,对于每个事件,大多数处理器可以返回空(NULL)更新)。
在特定实施例中,对话状态追踪器218可以用作需要版本化的任何编程处理器(逻辑)。在特定实施例中,代替直接改变对话状态,对话状态追踪器218可以是边际效应无关的部件,并且可以生成对话状态更新操作符(其提出对对话状态的更新)的n个最佳候选。对话状态追踪器218可以包括意图解析器,该意图解析器包含基于对话状态来处理不同类型的NLU意图并生成操作符的逻辑。在特定实施例中,可以通过意图处理器来组织逻辑,该意图处理器例如为当助理系统140请求进行消歧时用于处理意图的消歧意图处理器、包括用于处理确认的该逻辑的确认意图处理器等。意图解析器可以将该轮意图与对话状态组合在一起,以生成与用户的对话的上下文更新。然后,槽解析部件可以使用包括知识图谱和域代理的解析提供器,递归地解析更新操作符中的槽。在特定实施例中,对话状态追踪器218可以更新/排序当前对话会话的对话状态。作为示例而非限制,如果对话会话结束,则对话状态追踪器218可以将对话状态更新为“完成”。作为另一示例而非限制,对话状态追踪器218可以基于与对话状态相关联的优先级来对该对话状态进行排序。
在特定实施例中,对话状态追踪器218可以与动作选择器222就对话意图和相关联的内容对象进行通信。在特定实施例中,动作选择器222可以针对不同的对话意图对不同的对话假设进行排序。动作选择器222可以采用对话状态的候选操作符,并查询对话策略360来决定应该执行什么动作。在特定实施例中,对话策略360可以是基于树的策略,该基于树的策略是预先构建的对话计划。基于当前对话状态,对话策略360可以选择节点来执行并生成相应的动作。作为示例而非限制,基于树的策略可以包括主题分组节点和对话动作(叶)节点。在特定实施例中,对话策略360还可以包括描述代理228对动作的执行计划的数据结构。对话策略360还可以包括通过逻辑运算符彼此相关的多个目标。在特定实施例中,目标可以是对话策略的一部分的结果,并且该目标可以由对话管理器216构建。目标可以由具有一个或多个命名参数的标识符(例如,字符串)来表示,该命名参数将目标参数化。作为示例而非限制,具有其相关联的目标参数的目标可以被表示为{确认_艺术家,参数:{艺术家:“麦当娜(Madonna)”}}。在特定实施例中,目标可以被映射到对话策略360的树形结构表示的树的叶子。
在特定实施例中,助理系统140可以使用分层对话策略360,其中通用策略362处理跨域业务逻辑,而任务策略364处理任务/域特定的逻辑。通用策略362可以用于非特定于单独任务的动作。通用策略362可以用于确定任务堆叠和切换、主动任务、通知等。通用策略362可以包括:处理低置信度意图、内部错误、具有重试的不可接受的用户响应、和/或基于ASR或NLU置信度分数跳过或插入确认。通用策略362还可以包括对来自对话状态追踪器218的输出的对话状态更新候选进行排序的逻辑,并且可以挑选要更新的一个(例如,挑选排序第一的任务意图)。在特定实施例中,助理系统140可以具有用于通用策略362的特定接口,该接口允许将分散的跨域策略/业务规则(特别是在对话状态追踪器218中找到的那些)合并到动作选择器222的功能中。用于通用策略362的接口还可以允许创建可绑定到特定情形或客户端的(例如,可基于客户端、情形而容易地打开或关闭的策略功能的)独立子策略单元。用于通用策略362的接口还可以允许提供具有回退(back-off)的策略分层(即多个策略单元),其中处理特定情况的高度专业化的策略单元由适用于更广泛情形的更通用策略362来备份。在这种情况下,通用策略362可以替代地包括意图或任务特定的策略。
在特定实施例中,任务策略364可以包括基于任务和当前状态的动作选择器222的逻辑。任务策略364可以是动态的和自组织的。在特定实施例中,任务策略364的类型可以包括以下类型中的一者或多者:(1)手动创建的基于树的对话计划;(2)直接实现用于生成动作的接口的编码策略;(3)配置器指定的槽填充任务;或(4)从数据中学习到的基于机器学习模型的策略。在特定实施例中,助理系统140可以使用基于规则的逻辑来自举新的域,并且随后使用机器学习模型来细化任务策略364。在特定实施例中,通用策略362可以从候选操作符中选择一个操作符来更新对话状态,随后由任务策略364选择面向用户的动作。一旦任务在对话状态中是活动的,就可以查询对应的任务策略364来选择正确的动作。
在特定实施例中,动作选择器222可以基于以下项中的一者或多者来选择动作:由上下文引擎220确定的事件、对话意图和状态、相关联的内容对象、以及来自对话策略360的指导。每个对话策略360可以订阅状态字段上的特定条件。在事件被处理并且状态被更新之后,动作选择器222可以运行快速搜索算法(例如,类似于布尔可满足性(Booleansatisfiability)),以基于当前状态识别哪些策略应该被触发。在特定实施例中,如果多个策略被触发,则动作选择器222可以使用平局决胜机制来挑选特定策略。替代地,动作选择器222可以使用如下的更复杂的方法:该方法可以预演每个策略,并且随后挑选可被确定为具有高成功可能性的特定策略。在特定实施例中,将事件映射到动作可以为助理系统140带来若干技术优势。一个技术优势可以包括:每个事件可以是来自用户或用户的物理/数字环境的状态更新,该状态更新可能触发也可能不触发来自助理系统140的动作。另一个技术优势可以包括:通过首先消耗所有事件以更新状态,并随后根据最终状态触发一个或多个动作来处理快速突发的事件(例如,用户进入一个新建筑并看到许多人)的可能性。另一个技术优势可以包括将所有事件消耗到单个全局助理状态中。
在特定实施例中,动作选择器222可以将对话状态更新操作符作为输入的一部分,来选择对话动作。对对话动作的执行可以生成一组期望,以指示对话状态追踪器218处理未来的轮次。在特定实施例中,当处理来自下一轮的用户输入时,可以使用期望来向对话状态追踪器218提供上下文。作为示例而非限制,槽请求对话动作可以具有验证所请求的槽的值的期望。在特定实施例中,对话状态追踪器218和动作选择器222两者都可以在执行所选动作之前不改变对话状态。这可以允许助理系统140执行对话状态追踪器218和动作选择器222,以用于处理推测的ASR结果并利用预演进行n个最佳排名。
在特定实施例中,动作选择器222可以调用不同的代理228来执行任务。同时,对话管理器216可以接收更新对话状态的指令。作为示例而非限制,该更新可以包括等待代理228的响应。代理228可以在注册的内容提供者中进行选择以完成该动作。数据结构可以由对话管理器216基于意图以及与该意图相关联的一个或多个槽来构建。在特定实施例中,代理228可以包括第一方代理和第三方代理。在特定实施例中,第一方代理可以包括可由助理系统140访问和控制的内部代理(例如,与在线社交网络提供的服务(例如,消息收发服务或照片共享服务)相关联的代理)。在特定实施例中,第三方代理可以包括助理系统140无法控制的外部代理(例如,第三方在线音乐应用代理、票务代理)。第一方代理可以与提供由社交网络系统160托管的内容对象和/或服务的第一方提供者相关联。第三方代理可以与提供由第三方系统170托管的内容对象和/或服务的第三方提供者相关联。在特定实施例中,可以为特定域指定第一方代理或第三方代理中的每一者。作为示例而非限制,域可以包括天气、交通、音乐、购物、社交、视频、照片、事件、位置和/或工作。在特定实施例中,助理系统140可以协作地使用多个代理228来响应用户输入。作为示例而非限制,用户输入可以包括“指引我去参加下一会议”。助理系统140可以使用日程代理来检索下一会议的位置。然后,助理系统140可以使用导航代理指引用户参加下一会议。
在特定实施例中,对话管理器216可以支持槽提及的多轮成分(compositional)解析。对于来自NLU模块210的成分解析,解析器可以递归地解析嵌套的槽。对话管理器216还可以支持对嵌套的槽的消歧。作为示例而非限制,用户输入可以是“提醒我给亚历克斯(Alex)打电话”。解析器在创建可操作的提醒待办事项实体之前,可能需要知道要给哪一个亚历克斯打电话。当进一步的用户澄清对于特定槽是必要的时,解析器可以暂停解析并设置解析状态。通用策略362可以检查解析状态并为用户澄清创建相应对话动作。对话管理器216可以在对话状态追踪器218中,基于用户输入和最近的对话动作来更新嵌套的槽。该功能可以允许助理系统140与用户交互,以便不仅能够收集丢失的槽值,而且还减少更复杂/不明确的话语的歧义,以完成任务。在特定实施例中,对话管理器216还可以支持在嵌套意图和多意图用户输入(例如,“拍下这张照片并将其发送给爸爸”)中请求缺失的槽。在特定实施例中,对话管理器216可以支持机器学习模型以获得更鲁棒的对话体验。作为示例而非限制,对话状态追踪器218可以使用基于神经网络的模型(或任何其他合适的机器学习模型)来对任务假设之上的信念(belief)进行建模。作为另一示例而非限制,对于动作选择器222,最高优先级策略单元可以包括白名单/黑名单覆盖,该白名单/黑名单覆盖可能必须通过设计来进行;中等优先级单元可以包括针对动作选择而设计的机器学习模型;而较低优先级单元可以包括当机器学习模型选择不处理一情形时的基于规则的后退(fallback)。在特定实施例中,基于机器学习模型的通用策略单元可以帮助助理系统140减少冗余的消歧或确认步骤,从而减少执行用户输入的轮次数量。
在特定实施例中,可以将由动作选择器222确定的动作发送到传递系统230。传递系统230可以包括CU编辑器370、响应生成部件380、对话状态写入部件382和文本到语音(text-to-speech,TTS)部件390。具体地,可以在CU编写器370处接收动作选择器222的输出。在特定实施例中,来自动作选择器222的输出可以被表示为<k,c,u,d>元组,其中k指示知识源,c指示通信目标,u指示用户模型,d指示话语模型。
在特定实施例中,CU编辑器370可以使用自然语言生成(NLG)部件372为用户生成通信内容。在特定实施例中,NLG部件372可以使用不同的语言模型和/或语言模板来生成自然语言输出。对自然语言输出的生成可以是应用特定的。对自然语言输出的生成还可以针对每个用户进行个性化。在特定实施例中,NLG部件372可以包括内容确定部件、句子规划器和表面实现部件。内容确定部件可以基于知识源、通信目标和用户期望来确定通信内容。作为示例而非限制,该确定可以基于描述逻辑。描述逻辑可以包括例如三个基本观念(motion),这三个基本观念是个体(表示域中的对象)、概念(描述个体的集合)和角色(表示个体或概念之间的二元关系)。描述逻辑可以由一组构造器来表征,该组构造器允许自然语言生成器从原子概念/角色构建复杂的概念/角色。在特定实施例中,内容确定部件可以执行以下任务来确定通信内容。第一任务可以包括转换任务,在该转换任务中,NLG部件372的输入可以被转换成概念。第二任务可以包括选择任务,在该选择任务中,可以基于用户模型在从转换任务产生的概念中选择相关概念。第三任务可以包括验证任务,在该验证任务中,可以验证所选概念的相干性。第四任务可以包括实例化任务,在该实例化任务中,经验证的概念可以被实例化为可由NLG部件372处理的可执行文件。句子规划器可以确定通信内容的组织,以使其可被人类理解。表面实现部件可以确定要使用的特定词语、句子的顺序、以及通信内容的风格。
在特定实施例中,CU编辑器370还可以使用UI有效负载生成器374来确定所生成的通信内容的模态。由于所生成的通信内容可以被认为是对用户输入的响应,因此CU编辑器370还可以使用响应排序器376来对所生成的通信内容进行排序。作为示例而非限制,排序可以指示响应的优先级。在特定实施例中,CU编辑器370可以包括自然语言合成(natural-language synthesis,NLS)部件,该NLS部件可以与NLG部件372分开。NLS部件可以指定由CU编写器370生成的合成语音的属性(包括,性别、音量、节奏、风格或音域),以便为特定用户、任务或代理定制响应。NLS部件可以在不参与对相关联的任务的实现的情况下调整语言合成。在特定实施例中,CU编辑器370可以检查与用户相关联的隐私约束以确保对通信内容的生成遵循隐私策略。有关定制自然语言生成(NLG)的更多信息可以在以下文件中找到:于2018年4月30日提交的、第15/967279号美国专利申请,以及于2018年4月30日提交的、第15/966455号美国专利申请,这些申请通过引用而被结合。
在特定实施例中,传递系统230可以基于CU编辑器370的输出来执行不同的任务。这些任务可以包括:使用对话状态写入部件382将对话状态写入(即,存储/更新)到数据存储库330中,以及使用响应生成部件380生成响应。在特定实施例中,如果所确定的通信内容的模态是音频,则还可以将CU编辑器370的输出发送到TTS部件390。在特定实施例中,来自传递系统230的输出随后可以被发送回对话管理器216,来自传送系统230的输出包括由TTS部件390生成的响应、通信内容或语音中的一者或多者。
在特定实施例中,协调器206可以基于实体解析模块212的输出,来确定是在客户端系统130上处理用户输入,还是在服务器上处理用户输入,或者是使用这两者在第三运行模式(即,混合模式)处理用户输入。除了确定如何处理用户输入之外,协调器206还可以接收由对话管理器216提供的来自代理228的结果和/或来自传递系统230的结果。协调器206随后可以将这些结果转发给仲裁器226。仲裁器226可以聚合这些结果、分析它们、选择最佳结果、并将所选择的结果提供给渲染输出模块232。在特定实施例中,仲裁器226可以查询对话策略360以在分析这些结果时获得指导。在特定实施例中,渲染输出模块232可以生成适合于客户端系统130的响应。
图4示出了处理用户输入的以任务为中心的示例流程图400。在特定实施例中,助理系统140不仅可以用语音发起的体验来帮助用户,还可以用在理解用户上下文时发起的更主动的多模态体验来帮助用户。在特定实施例中,助理系统140可以出于这样的目的而依赖于助理任务。助理任务可以是这样的中心概念:该中心概念在整个助理堆栈中共享,以理解用户意图、与用户和世界交互,从而为用户完成正确任务。在特定实施例中,助理任务可以是助理功能的原始单元。助理功能可以包括数据提取、更新某个状态、执行某个命令或由较小的一组任务组成的复杂任务。正确且成功地完成任务以将数值传递给用户可能是对助理系统140进行优化的目标。在特定实施例中,助理任务可以被定义为功能或特征。如果多个产品表面具有完全相同的要求,则可以跨多个产品表面共享助理任务,因此可以很容易地追踪该助理任务。助理任务还可以从一个设备传递到另一个设备,并且很容易在任务中途被另一个设备获得,因为原始单元是一致的。此外,助理任务的一致格式可以允许在助理堆栈中的不同模块中工作的开发者更容易地围绕它进行设计。此外,它还可以允许任务共享。作为示例而非限制,如果用户正在智能眼镜上听音乐,则该用户可以说“在我的手机上播放这首音乐”。在手机还没有被唤醒或有任务要执行的情况下,智能眼镜可以制定提供给手机的任务,该任务随后由手机执行以开始播放音乐。在特定实施例中,如果各个表面具有不同的预期行为,则各个表面可以单独地保留助理任务。在特定实施例中,助理系统140可以基于不同模态的用户输入或其他信号来识别正确的任务,进行对话以收集所有必要的信息,并利用在服务器或本地产品表面内部或外部实现的动作选择器222来完成该任务。在特定实施例中,助理堆栈可以包括一组处理部件,该组处理部件用于唤醒、识别用户输入、理解用户意图、对任务进行推理、完成任务以生成使用语音的自然语言响应。
在特定实施例中,用户输入可以包括语音输入。可以在ASR模块208处接收语音输入,以从该语音输入中提取文本转录。ASR模块208可以使用统计模型,来确定与由助理系统140接收到的作为音频输入的给定语音部分相对应的最有可能的词语序列。模型可以包括以下中的一者或多者:隐马尔可夫(Markov)模型、神经网络、深度学习模型或其任意组合。可以以特定的采样率(例如,16千赫兹(kHz)、44.1kHz或96kHz)并利用表示每个样本的特定数量的比特(例如,24比特中的8比特、16比特)来将接收到的音频输入编码为数字数据。
在特定实施例中,ASR模块208可以包括以下中的一者或多者:字素到音素(grapheme-to-phoneme,G2P)模型、发音学习模型、个性化声学模型、个性化语言模型(personalized language model,PLM)或结束点模型(end-pointing model)。在特定实施例中,字素到音素(G2P)模型可以用于确定用户的字素到音素风格(即,当特定用户说出特定词语时它可能听起来像什么)。在特定实施例中,个性化声学模型可以是音频信号与语言中的语音单元的声音之间的关系的模型。因此,这种个性化声学模型可以识别用户的语音听起来如何。可以使用训练数据(例如,作为音频输入接收到的训练语音和对应于该语音的对应语音单元)来生成个性化声学模型。可以使用特定用户的声音来训练或细化个性化声学模型以识别该用户的语音。在特定实施例中,个性化语言模型随后可以确定与针对特定音频输入而识别出的语音单元相对应的最可能的短语。个性化语言模型可以是各种词语序列可能在该语言中出现的概率的模型。可以使用个性化语言模型将音频输入中的语音单元的声音与词语序列相匹配,并且可以将更大的权重分配给更有可能是该语言中的短语的词语序列。然后,可以选择具有最高权重的词语序列作为对应于音频输入的文本。在特定实施例中,个性化语言模型还可以用于预测在给定上下文的情况下用户最可能说出什么词语。在特定实施例中,结束点模型可以检测何时到达话语的结束。在特定实施例中,在客户端侧过程期间,助理系统140可以在运行时至少部分地基于客户端系统130的有限计算能力,优化个性化语言模型。作为示例而非限制,助理系统140可以为用户可能谈论的多个可能主题预计算多个个性化语言模型。当用户输入与助理请求相关联时,助理系统140可以在运行时基于用户活动,在预计算语言模型之间迅速切换并在本地优化这些预计算语言模型。因此,助理系统140可以保留计算资源,同时高效地识别与用户输入相关联的主题。在特定实施例中,助理系统140还可以在运行时动态地重新学习用户发音。
在特定实施例中,用户输入可以包括非语音输入。可以在上下文引擎220处接收非语音输入,以根据非语音输入确定事件和上下文。上下文引擎220可以确定多模态事件,多模态事件包括语音/文本意图、位置更新、视觉事件、触摸、注视、手势、动作、设备/应用事件、和/或任何其他合适类型的事件。语音/文本意图可以取决于ASR模块208和NLU模块210。位置更新可以由对话管理器216消耗以支持各种主动/被动场景。视觉事件可以基于出现在用户视野中的人或对象。这些事件可由对话管理器216消耗并被记录在临时用户状态中,以支持视觉共指(例如,解析出“那件衬衫多少钱?”中的“那件”以及解析出“把我的联系方式发给他”中的“他”)。注视、手势和活动可以使得在临时用户状态(例如,用户正在跑步)中设置标记,所述标记可以调节动作选择器222。对于设备/应用事件,如果应用对设备状态进行更新,则可以将其发布到助理系统140,使得对话管理器216可以使用该上下文(当前向用户显示的上下文)来处理被动和主动场景。作为示例而非限制,上下文引擎220可以使得在用户的客户端系统130的显示屏上显示推送通知消息。用户可以与推送通知消息交互,这可以发起多模态事件(例如,用于回复从另一用户接收的消息的事件工作流)。其他示例多模态事件可以包括看见朋友、看到地标、在家、跑步、照片中的面部被识别、用触摸开始打电话、用触摸拍摄照片、打开应用等。在特定实施例中,上下文引擎220还可以基于世界/社交更新(例如,天气变化、朋友上线)来确定世界/社交事件。社交更新可以包括用户订阅的事件(例如,朋友的生日、帖子、评论、其他通知)。对话管理器216可以消耗这些更新以触发基于上下文的主动动作(例如,建议用户在其生日时给朋友打电话,但仅当用户没有关注其他事情时)。作为示例而非限制,接收消息可以是社交事件,该社交事件可以触发向用户阅读消息的任务。
在特定实施例中,可以将来自ASR模块208的文本转录发送到NLU模块210。NLU模块210可以处理文本转录并提取用户意图(即,多个意图),并基于语言本体来解析槽或解析结果。在特定实施例中,可以将来自NLU模块210的意图和槽、和/或来自上下文引擎220的事件和上下文发送到实体解析模块212。在特定实施例中,实体解析模块212可以基于来自NLU模块210和/或上下文引擎220的输出,来解析与用户输入相关联的实体。实体解析模块212可以使用不同的技术来解析实体,包括从助理用户存储器(AUM)354访问用户记忆。在特定实施例中,AUM 354可以包括有助于实体解析模块212对实体进行解析的用户情景记忆。AUM354可以是用于存储用户数据、检索用户数据、为用户数据编索引和搜索用户数据的中心位置。
在特定实施例中,实体解析模块212可以向对话状态追踪器218提供意图、槽、实体、事件、上下文或用户记忆中的一者或多者。对话状态追踪器218可以相应地识别任务的一组状态候选,与用户进行交互以收集填充状态所需的信息,并调用动作选择器222来完成任务。在特定实施例中,对话状态追踪器218可以包括任务追踪器410。任务追踪器410可以追踪与助理任务相关联的任务状态。在特定实施例中,任务状态可以是这样的数据结构:该数据结构在多个交互轮次中持续存在,并实时更新以在整个交互期间采集任务的状态。任务状态可以包括与任务执行状态有关的所有当前信息,例如参数、确认状态、置信度分数等。任务状态中的任何错误或过时的信息都可能导致任务执行失败或错误。任务状态还可以用作许多其他部件(例如,ASR模块208、NLU模块210等)的一组上下文信息。
在特定实施例中,任务追踪器410可以包括意图处理器411、任务候选排序模块414、任务候选生成模块416和合并层419。在特定实施例中,任务可以通过其ID名称来标识。如果在任务规范(例如对话策略360、代理执行、NLG对话动作等)中没有明确设置任务ID,则可以使用任务ID来关联相应的部件资产(asset)。因此,来自实体解析模块212的输出可以由任务候选生成模块416的任务ID解析部件417接收,以解析相应任务的任务ID。在特定实施例中,任务ID解析部件417可以调用任务规范管理器API 430来访问用于解析任务ID的触发规范和部署规范。在给定了这些规范的情况下,任务ID解析部件417可以使用意图、槽、对话状态、上下文和用户记忆来解析任务ID。
在特定实施例中,任务的技术规范可以由任务规范来定义。助理系统140可以使用任务规范来触发任务、进行对话会话、以及找到正确的执行模块(例如,代理228)来执行该任务。任务规范可以是产品需求文档的实现。任务规范可以用作通用合约和所有部件约定的要求。任务规范可以被认为是产品的装配规范,而所有开发伙伴都基于该规范交付这些模块。在特定实施例中,可以通过规范在该实现中限定助理任务。作为示例而非限制,任务规则可以被限定为以下类别。一个类别可以是基本任务方案,该基本任务方案包括基本标识信息,例如ID、名称和输入参数的方案。另一个类别可以是关于如何触发任务的触发规范,例如意图、事件消息ID等。另一个类别可以是对话管理器216与用户和系统进行对话的对话规范。另一个类别可以是关于如何执行和完成任务的执行规范。另一个类别可以是关于如何将功能部署到某些表面、本地和用户组的部署规范。
在特定实施例中,任务规范管理器API 430可以是用于访问任务规范管理器的API。任务规范管理器可以是运行时堆栈中的模块,该模块用于从所有任务加载规范并提供接口以访问所有任务规范,以获取详细信息或生成任务候选。在特定实施例中,任务规范管理器可以通过任务规范管理器API 430对运行时堆栈中的所有部件进行访问。任务规范管理器可以包括一组静态实用功能,以利用任务规范管理器来管理任务,例如通过平台过滤任务候选。在任务规范落地之前,助理系统140还可以动态地加载任务规范以在开发阶段支持端到端开发。
在特定实施例中,任务规范可以按域分组并存储在运行时配置435中。运行时堆栈可以在构建时间期间从运行时配置435加载所有任务规范。在特定实施例中,在运行时配置435中,对于域,可以存在cconf文件和cinc文件(例如,sidechef_task.cconf和sidechef_task.inc)。作为示例而非限制,<domian>_tasks.cconf可以包括任务规范的所有细节。作为另一示例而非限制,如果还不支持该功能,<domain>_tasks.cinc可以提供一种方法来覆盖所生成的规范。
在特定实施例中,任务执行可能需要一组参数来执行。因此,参数解析部件418可以使用所解析的任务ID的参数规范来解析参数名称。可以基于NLU输出(例如,槽[SL:联系人]([SL:contact]))、对话状态(例如,短期通话历史)、用户记忆(例如,用户偏好、位置、长期通话历史等)或设备上下文(例如,定时器状态、屏幕内容等)来解析这些参数。在特定实施例中,参数模态可以是文本、音频、图像或其他结构化数据。槽到参数的映射可以由填充策略和/或语言本体来定义。在特定实施例中,在给定任务触发规范的情况下,任务候选生成模块416可以基于所解析的任务ID和参数,来查找要被触发的任务列表作为任务候选。
在特定实施例中,可以将所生成的任务候选发送到任务候选排序模块414以进行进一步排序。任务候选排序模块414可以使用基于规则的排序器415来对它们进行排序。在特定实施例中,基于规则的排序器415可以包括一组试探以偏向某些域任务。以下可以使用上下文优先级的原则对排序逻辑进行描述。在特定实施例中,用户指定任务的优先级可以高于前台任务。当意图是元意图时,前台任务的优先级可以高于设备域任务。设备域任务的优先级可以高于触发意图域的任务。作为示例而非限制,如果在话语(例如,“在定时器应用中创建定时器”)中提到或指定了任务域,则排序可以挑选出任务。作为另一示例而非限制,当定时器应用处于前台并且存在活动定时器时,如果任务域处于前台或活动状态,则排序可以挑选出任务(例如“停止定时器”)以停止定时器。作为另一示例而非限制,如果意图是通用元意图,并且在不存在其他活动应用或活动状态时、任务是设备控制,则排序可以挑选出任务。作为另一示例而非限制,如果任务与意图域相同,则排序可以挑选出任务。在特定实施例中,任务候选排序模块414可以定制一些更多的逻辑来检查意图/槽/实体类型的匹配。可以将经排序的任务候选发送到合并层419。
在特定实施例中,可以将来自实体解析模块212的输出发送到意图处理器411的任务ID解析部件412。与任务ID解析部件417类似,任务ID解析部件412可以解析相应任务的任务ID。在特定实施例中,意图处理器411还可以包括参数解析部件413。与参数解析部件418类似,参数解析部件413可以使用所解析的任务ID的参数规范来解析参数名称。在特定实施例中,意图处理器411可以处理与任务无关的特征,并且可以不在特定于任务的任务规范内表达。意图处理器411可以输出除任务候选之外的状态候选,例如参数更新、确认更新、消歧更新等。在特定实施例中,一些任务可能需要非常复杂的触发条件或非常复杂的参数填充逻辑,这些触发条件或参数填充逻辑可能不能被其他任务(例如,通话中的语音命令、经由[IN:播放_媒体]([IN:PLAY_MEDIA])等的媒体任务等)重复使用,即使它们在任务规范中得到支持。意图处理器411也可以适用于这种类型的任务。在特定实施例中,来自意图处理器411的结果可以优先于来自任务候选排序模块414的结果。也可以将来自意图处理器411的结果发送到合并层419。
在特定实施例中,合并层419可以对来自意图处理器411的结果和来自任务候选排序模块414的结果进行组合。对话状态追踪器218可以将每个任务建议为对话策略360要从中选择的新状态,从而生成状态候选的列表。合并后的结果可以进一步被发送到对话理解强化引擎(conversational understanding reinforcement engine,CURE)追踪器420。在特定实施例中,CURE追踪器420可以是个性化学习过程,以使用实时用户反馈来改进对话状态追踪器218在不同上下文下对状态候选的确定。有关会话理解强化引擎的更多信息可以在以下文件中找到:于2021年2月26日提交的、第17/186459号美国专利申请,该申请通过引用而被结合。
在特定实施例中,可以将CURE追踪器420生成的候选状态发送到动作选择器222。动作选择器222可以查询任务策略364,任务策略364可以从通过任务规范管理器API 430访问的执行规范中生成。在特定实施例中,执行规范可以描述应该如何执行任务以及动作选择器222可能需要采取什么动作来完成任务。
在特定实施例中,动作选择器222可以确定与系统相关联的动作。这样的动作可能需要代理228来执行。因此,动作选择器222可以将系统动作发送到代理228,并且代理228可以返回这些动作的执行结果。在特定实施例中,动作选择器可以确定与用户或设备相关联的动作。这样的动作可能需要由传递系统230执行。因此,动作选择器222可以将用户/设备动作发送到传递系统230,并且传递系统230可以返回这些动作的执行结果。
本文所公开的各实施例可以包括人工现实系统、或结合人工现实系统来实现。人工现实是在呈现给用户之前已经以某种方式进行了调整的现实形式,该人工现实可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(mixed reality,MR)、混合现实(hybridreality),或它们的某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与采集到的内容(例如,真实世界的照片)相结合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或它们的某种组合,并且以上中的任何一种都可以在单通道或多通道中呈现(例如,给观看者带来三维效果的立体视频)。此外,在一些实施例中,人工现实还可以与应用、产品、附件、服务或它们的某些组合相关联,该应用、产品、附件、服务或它们的某种组合例如用于在人工现实中创建内容,和/或用于人工现实中(例如,在人工现实中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实现,这些平台包括连接到主计算机系统的头戴式显示器(head-mounted display,HMD)、独立HMD、移动设备或计算系统、或能够向一位或多位观看者提供人工现实内容的任何其他硬件平台。
自动采集有趣时刻
在特定实施例中,助理系统140可以允许用户参与他们的真实世界活动,同时仍然能够易于从他们的支持助理的客户端系统130、通过自动采集功能拍摄照片或视频。用户可以利用自动采集功能,来设置延迟触发(例如,告诉他们的智能眼镜在未来活动开始时拍摄照片或视频),并且助理系统140可以检测用户的上下文的变化以自动地确定活动何时开始、识别有趣时刻并采集这些时刻。作为示例而非限制,用户明天要去徒步旅行。用户可以说:“嘿助理,记得在明天的徒步旅行期间拍摄照片”。当用户第二天到达徒步旅行路线时,助理系统140可以使用GPS信息来确定用户正在开始徒步旅行。然后,当用户正在徒步旅行时,助理系统140可以基于各种信号确定有趣时刻,并拍摄这些时刻的照片。徒步旅行结束后,助理系统140可以停止拍摄照片。助理系统140还可以自动整理这些照片,并为用户将这些照片拼接为集锦视频。助理系统140可以使用不同的信号来确定活动的开始和结束、以及有趣时刻,这些信号可以包括视觉信号、声音信号、动作信号等。助理系统140可以使用一系列机器学习模型,基于这些模型所使用的输入信号,这些模型具有不同计算成本。既可以被动使用自动采集功能,也可以主动使用自动采集功能,来帮助用户采集他们活动中的有趣时刻。在被动使用时,用户可能需要设置触发器以便在触发条件发生时激活自动采集。在主动使用时,助理系统140可以基于用户的知识(例如,用户偏好设置、用户记忆等)来触发自动采集。自动采集可以使助理系统140能够解决几个约束,这些约束包括在采集有趣时刻时用户体验的摩擦、客户端系统130上的电力管理、隐私敏感信息的保护、以及在执行采集有趣时刻的任务时的时延。尽管本公开描述了由特定系统以特定方式自动采集特定时刻,但是本公开考虑了由任何合适的系统以任何合适的方式自动采集任何合适的时刻。
在特定实施例中,助理系统140可以从与第一用户相关联的客户端系统130访问由客户端系统130的一个或多个传感器采集到的一个或多个传感器信号。客户端系统130可以包括多个传感器。在特定实施例中,该一个或多个传感器信号可以是基于一个或多个级联模型策略从该一个或多个传感器访问的。每个级联模型策略可以利用与每个传感器相关联的各自成本或各自相关性中的一者或两者。然后,助理系统140可以基于一个或多个机器学习模型和该一个或多个传感器信号,检测与第一用户的活动相关联的第一用户的上下文的变化。在特定实施例中,第一用户的上下文的变化可以满足与该活动相关联的触发条件。助理系统140还可以响应于所检测到的第一用户的上下文的变化,通过客户端系统130的一个或多个摄像头自动采集视觉数据。
在特定实施例中,助理系统140可以提供免手持体验,以帮助用户利用自动采集功能停留在当前时刻并保持在场。自动采集功能可以提供利用客户端系统130(例如智能眼镜或AR眼镜)来采集珍贵时刻的便利方式,该客户端系统自动地选择并采集具有高兴趣性的正确时刻。在特定实施例中,兴趣性可以表示通过赋予情感意义或概念意义来唤醒用户反应的活动时刻的力量。具有高兴趣性的时刻可以更好地吸引用户。兴趣性可以与人们相信他们会记住的东西有关。兴趣性也可以意味着引起好奇心的东西,并且可以是注意力的前兆。在特定实施例中,可以使用来自认知科学、早期视觉系统的神经生理学、以及人类实验与计算建模的混合的见解来评估兴趣性。作为示例而非限制,可以基于各种线索(例如美学、不寻常性和一般偏好)来评估兴趣性。相应地,可以使用在计算上对这些兴趣性方面进行采集的一组功能来学习根据这些兴趣性方面来预测兴趣性的模型。在特定实施例中,助理系统140可以基于一个或多个机器学习模型和一个或多个传感器信号,确定对一个或多个时刻中的每个时刻的兴趣度高于阈值兴趣度。助理系统140可以利用自动采集功能解决硬件限制,例如短暂的电池寿命、视频采集长度、图像/视频采集频率、数据传输速率和使用伴随应用的频率。
出于以下原因,对于允许用户在采集有趣时刻的同时参与他们的活动的目的而言,持续采集多个时刻可能是不现实的。首先,这个方法可能过于耗能/存储密集,这可能不适合紧凑型客户端系统130(例如智能眼镜)。第二,人们可能不想只是拍摄所有东西的照片/视频。而是,他们可能想要经过精心挑选的有意义和有趣的照片/视频。第三,持续拍摄照片/视频可能具有隐私影响(例如,即使用户进入了浴室,采集也可能会继续)。自动采集功能可以解决上述限制,并允许人们在依然能够容易地拍摄照片/视频的同时参与他们的活动。作为示例而非限制,如果用户每次想要拍摄照片/视频的时候都需要说:“嘿助理,拍摄照片/视频”,这种用户体验的摩擦是令人讨厌的且尴尬的。相比之下,利用自动采集,用户可以在试图采集他们的活动的有趣时刻时具有完全免手持的体验,而不需要每次都告诉助理系统140这样做。因此,助理系统140可以具有使用户能够参与真实世界活动、同时易于记录该活动的有趣时刻的技术优势,因为助理系统140可以在活动期间自动检测用户的上下文的变化,以识别有趣时刻且在无需用户指令的情况下采集这些有趣时刻。在特定实施例中,助理系统140可以设计和训练多模态(视频、音频、惯性测量单元)机器学习模型,以确定如何从客户端系统130自动采集高质量、可共享的照片和视频。自动采集可能有用的示例活动可以是徒步旅行、露营、滑雪、钓鱼、健身房锻炼、健身活动、跑步/慢跑等。为了解决隐私问题,自动采集可以在确定用户转换到隐私敏感环境时自动关闭摄像头。自动采集还可以减少由必须通过整个助理堆栈来处理这些语音命令而导致的时延。作为示例而非限制,助理系统140可以检测到聚会中有笑声,然后自动开始采集该时刻,而不需要遍历整个助理堆栈。通过使用低功率的客户端侧分类模型来确定何时拍摄照片/视频以及拍摄什么,自动采集可以进一步减少时延。
图5示出了自动采集有趣时刻的示例工作流。客户端系统130可以在客户端系统130处接收对采集与活动相关联的视觉数据的用户请求。作为图5中的示例,用户请求510可以是“嘿助理,明天下午给我在圣克鲁斯(Santa Cruz)的徒步旅行拍摄视频”。客户端系统130可以基于用户请求确定触发条件。例如,对于用户请求510,触发条件可以包括开始徒步旅行。在特定实施例中,可以存在用于有效自动采集的多个阶段。第一阶段可以是预测目标活动(例如,徒步旅行)是否正在发生。在特定实施例中,这种预测可以基于上下文信号520。作为示例而非限制,上下文信号520可以帮助系统确定用户的上下文530,该用户的上下文包括:位置为圣克鲁斯、时间为明天下午12点之后、运动类型为步行、场景为户外、设置为大自然、以及人物为当前。一旦助理系统140确信目标活动正在发生,则下一阶段可以是根据一个或多个标准来预测正在发生的目标活动的场景是否可能在视觉上是有趣和可共享的。然后,助理系统140可以采集包括了该活动的一个或多个时刻540的视觉数据。在特定实施例中,该一个或多个时刻中的每个时刻可以与大于阈值兴趣度的兴趣度相关联。视觉数据可以被存储为一个或多个媒体数据文件550。作为示例而非限制,该一个或多个媒体数据文件中的每个媒体数据文件可以包括图像或视频中的一者或两者。助理系统140还可以执行采集后处理,以自动地将所采集到的照片和视频组合为、编辑为和组织(curate)为可以容易地共享给其他用户或在线社交网络的有吸引力的集锦视频。助理系统140可以依赖于高光检测和视频概括来执行采集后处理。在特定实施例中,助理系统140可以基于一个或多个机器学习模型和一个或多个传感器信号,检测活动的结束。然后,助理系统140可以基于在活动期间采集到的视觉数据,生成基于对视觉数据的概括的集锦视频。该概括可以是基于视觉数据的兴趣度的。助理系统140还可以在客户端系统130处,向第一用户呈现集锦视频。
在特定实施例中,助理系统140可以使用用于自动采集的不同解决方案。一种解决方案可以是:将用户的指令作为输入来设置延迟触发,并且一旦用户的上下文的变化满足触发,就开始自动采集活动。客户端系统130的机载传感器可能能够获取这样的信号:所述信号提供用于理解用户的上下文的信息。这些传感器可以包括惯性测量单元(IMU)(例如,加速度计和陀螺仪)、音频传声器、肌电(EMG)传感器、GPS、设备上摄像头,以上这些传感器按它们各自的计算成本排序。因此,该一个或多个传感器信号可以包括以下中的一者或多者:惯性测量单元(IMU)信号、音频信号、GPS信号、肌电(EMG)信号或视觉信号。另外,用户的知识(例如,来自助理用户存储器354)和世界的知识(例如,来自知识图谱)也可以是可用的。助理系统140可以使用这些传感器信号来检测用户的上下文的变化。作为示例而非限制,用户可以请求助理系统140采集生日聚会的有趣时刻。助理系统140可以基于关于用户的知识来确定生日聚会的时间和地点、以及生日聚会是为谁(例如,用户的孩子)举办的。因此,当存在满足触发的用户的上下文的变化时(即,时间到了并且用户处于聚会地点),助理系统140可以开始对聚会的自动采集,但专注于在用户的孩子(与基于由计算机视觉模型进行的面部识别的聚会中的其他人相对)开心(与基于由卷积神经网络模型进行的情绪分析的哭泣相对)时采集该孩子的照片。
在特定实施例中,助理系统140可以使用上下文引擎220来检测上下文的变化。上下文引擎220可以包括人工智能(artificial intelligence,AI)模型的集合。上下文引擎220可以在使用支持助理的客户端系统130时提供关于用户及其环境的上下文信号(即,特征和/或类别级的预测)。上下文引擎220可以是低级客户端系统130和世界信号之上的第一层。上下文引擎220可以使用两个数据源:(1)客户端系统130的机载传感器;以及(2)用户和世界知识。传感器可以包括IMU(加速度计和陀螺仪)、GPS、传声器和设备上摄像头。对于用户和世界知识,上下文引擎220可以具有关于用户的日程表、他们出席的活动、以及位置历史(如常规位置和重要位置)等的信息。作为输出,上下文引擎220可以提供关于预定义的一组上下文状态的预测。然后,助理系统140可以使用这些预测来检测用户的上下文的变化。作为示例而非限制,上下文引擎可以提供关于用户动作(例如坐、站、步行、跑步、驾驶等)的预测。作为另一示例而非限制,上下文引擎可以提供关于在对话中用户是否正在说话或是否正在对该用户说话的预测。作为另一示例而非限制,上下文引擎可以提供关于用户环境的预测,该用户环境例如为嘈杂的室内环境(包括房屋、办公室、餐馆等)、户外环境(包括街道、公园、城市、后院、屋顶等)、车辆(包括汽车、公共汽车、火车、自行车等)、太亮或太暗。上下文引擎220例如可以通过使用用于预测的设备上模型来使确定用户环境和动作的变换的时延最小化。
在特定实施例中,用于解决检测满足触发的用户的上下文的变化并确定有趣时刻的技术挑战的一种解决方案可以是:使用不同传感器的不同信号和基于这些信号的机器学习模型,因为这些传感器信号可以包括表征用户的上下文和有趣时刻的信息、并且机器学习模型可以分析这些传感器信号以检测上下文的变化并确定有趣时刻。类似地,助理系统140可以依赖于上下文引擎220,以使用传感器信号来检测用户的上下文的变化。为了使用不同的信号,助理系统可以根据一个或多个级联模型策略,使用来自一个传感器的一个信号来进行预筛选并仅在需要时才使用来自另一个传感器的另一个信号。在特定实施例中,每个级联模型策略可以利用与每个传感器相关联的各自相关性。更具体地,每个级联模型策略可以指定:如果第一相关性高于第二相关性,则在访问来自与第二相关性相关联的第二传感器的第二传感器信号之前,访问来自与第一相关性相关联的第一传感器的第一传感器信号。在特定实施例中,可以基于活动来确定与每个传感器相关联的各自相关性。作为示例而非限制,助理系统140可以为用户自动采集用户的徒步旅行。首先,助理系统140可以使用GPS信号来追踪用户从家到步道附近的停车场的路程(即,用户的上下文从家改变到停车场)。一旦GPS信号指示用户处于停车场,助理系统140就可以开始使用IMU信号来检测用户的步行活动。然后,助理系统140可以使用低功率模式或低每秒帧数(frames-per-second,FPS)模式短暂地打开摄像头,以确定用户是否处于步道上(即,用户的上下文从停车场改变到步道)。在确定用户处于步道上之后,助理系统140可以使用处于全分辨率或高FPS的摄像头来采集徒步旅行的有趣时刻(即,用户的上下文从步道的非有趣部分改变为步道的有趣部分)。助理系统140可以使用机器学习模型来决定接下来使用哪个传感器信号。另外,助理系统140可以使用预定义的规则来确定接下来使用哪个传感器信号。此外,助理系统140可以将每个传感器的功率/时延/准确度资料用作这些规则的基础、或决定接下来使用哪个传感器信号的机器学习模型的输入。
在特定实施例中,为了解决节约客户端系统130上的计算资源的技术挑战,助理系统140可以依赖于如下解决方案:使用基于级联建模策略的一系列机器学习模型,该一系列机器学习模型基于不同传感器信号的各自计算成本来使用这些传感器信号,以确定满足触发条件的用户的上下文的变化和有趣时刻,因为助理系统140可以主要使用成本低的传感器信号并且少量地使用成本高的传感器信号。换句话说,每个级联模型策略可以利用与每个传感器相关联的各自成本。更具体地,每个级联模型策略可以指定:如果第一成本低于第二成本,则在访问来自与第二成本相关联的第二传感器的第二传感器信号之前,访问来自与第一成本相关联的第一传感器的第一传感器信号。作为示例而非限制,助理系统140可以主要使用成本低的传感器信号(例如,音频信号、IMU信号等)来维持高置信度,并且少量地使用成本高的视觉信号。例如,一旦满足时间和位置(即,GPS)标准,IMU信号就可以确定用户是否已经开始步行,并且音频信号可以了解用户是否在大自然中。随着来自IMU和音频信号的不断验证,就只有在徒步旅行置信度高的时期才打开视频。通过利用IMU和音频,可以节约能源并降低时延,以改善自动采集体验。由于模型和信号/传感器彼此正交,因此助理可以对同一信号使用多个模型,或者对每个信号使用不同的模型。
在特定实施例中,一个或多个级联模型策略可以为多个活动中的每个活动指定访问来自多个传感器访问多个传感器信号的特定顺序。可以基于与检测上下文的变化相关联的置信度分数来访问来自多个传感器的附加传感器。根据级联模型策略,检测与第一用户的活动相关联的第一用户的上下文的变化可以包括以下步骤。助理系统140可以基于一个或多个机器学习模型和多个传感器中的第一传感器的第一传感器信号,计算第一置信度分数,该第一置信度分数关联于与第一用户的活动相关联的第一用户的上下文的变化。然后,助理系统140可以确定第一置信度分数是否大于阈值置信度分数。助理系统140可以基于对第一置信度分数是否大于阈值分数的确定,来执行不同的动作。如果第一置信度分数大于阈值分数,则助理系统140可以确认与第一用户的活动相关联的第一用户的上下文的变化。否则,助理系统140可以从与第一用户相关联的客户端系统130访问多个传感器中的第二传感器的第二传感器信号。第二传感器信号可以是基于一个或多个级联模型策略访问的。助理系统140还可以基于一个或多个机器学习模型和第二传感器信号,计算第二置信度分数,该第二置信度分数关联于与第一用户的活动相关联的第一用户的上下文的变化。如果第二置信度分数大于阈值分数,则助理系统140可以确认与第一用户的活动相关联的第一用户的上下文的变化。作为示例而非限制,助理可以开始使用基于成本非常低的传感器(例如IMU信号)的低成本模型来分析输入。如果助理不确定(例如,关于正在发生有趣的事情的置信度较低),则助理可以使用基于音频信号的中等成本模型。如果助理仍然不确定,则助理可以使用基于来自低功率/低IPS模式下的摄像头的视觉信号的更高成本的模型。如果助理仍然不确定,则助理可以使用基于来自高质量模式下的摄像头的视觉信号的模型。
如果所有单传感器模型都未能检测到用户的上下文的变化满足触发或未能确定有趣时刻,则助理系统140可以将基于多个信号的更高成本的多传感器模型用作最后一级模型来进行确定。在这些模型的多模态级联中,最终模型可以是基于所有传感器信号的模型,该最终模型可以被保留到最后以节能。具体地,检测与第一用户的活动相关联的第一用户的上下文的变化可以包括以下步骤。在特定实施例中,助理系统140可以基于一个或多个机器学习模型和一个或多个传感器信号,计算第一置信度分数,该第一置信度分数关联于与第一用户的活动相关联的第一用户的上下文的变化。然后,助理系统140可以确定第一置信度分数是否大于阈值分数。助理系统140可以基于对第一置信度分数是否大于阈值分数的确定,来执行不同的动作。如果第一置信度分数大于阈值分数,则助理系统140可以确认与第一用户的活动相关联的第一用户的上下文的变化。否则,助理系统140可以从与第一用户相关联的客户端系统130访问由该客户端系统的多个传感器采集到的多个传感器信号。该多个传感器信号可以是基于一个或多个级联模型策略访问的。助理系统140还可以基于一个或多个机器学习模型和多个传感器信号,计算第二置信度分数,该第二置信度分数关联于与第一用户的活动相关联的第一用户的上下文的变化。如果第二置信度分数大于阈值分数,则助理系统140可以确认与第一用户的活动相关联的第一用户的上下文的变化。继续前面的徒步旅行示例,如果助理系统140使用一个或多个单传感器模型没有确定上下文的变化,则助理系统可以使用基于所有传感器信号的模型来检测上下文的变化。
利用前述的级联方法,存在多级模型以及传感器被分级使用,以确保高准确性和低平均成本。例如,当用户正在徒步旅行并突然停止时,助理可以首先使用IMU信号来检测停止(即,上下文从行走到站立的变化),然后使用由摄像头采集到的视觉信号来确定是否存在有趣时刻(即,上下文从非有趣时刻到有趣时刻的变化)以拍摄照片/视频。因此,在助理试图决定是否应该开始采集图像/视频时,这一系列机器学习模型被设置为从较低成本的模型到较高成本的模型的“级联”。然而,助理可以首先考虑每个传感器的相关性,然后再考虑成本。继续前面的徒步旅行示例,即使GPS比IMU成本更高,助理也可以首先使用GPS来确定用户的位置,然后再使用IMU来确定用户是否正在步行。
在特定实施例中,助理系统140可以基于不同的标准来确定有趣时刻,这可以是用于解决确定有趣时刻的技术挑战的有效解决方案,因为这些标准可以提供量化的测量结果以评估兴趣性。如果音频信号指示人与人之间的对话,则助理系统140可以确定有趣时刻,使得该有趣时刻在逻辑时间开始,以优化对对话的理解。如果视觉信号有时涉及与运动有关的关键活动(例如跳入泳池、挥手或踢球),则助理系统140可以确定有趣时刻,使得该有趣时刻包含该运动。如果存在环境变化,则助理系统140可以确定有趣时刻,使得该有趣时刻显示场景中的关键变化(例如,烟花或生日蛋糕蜡烛)。如果存在具有转动变化的显著角运动,则助理系统140可以将这种运动确定为有趣时刻。这种运动的示例可以包括用户在佩戴着头戴式设备或拿着摄像头并转动他们手中的设备时转动他们的头部(转动了显著的量)以向左/向右/向上/向下看。如果与用户正在执行的活动的性质相比,摄像头中存在显著的运动量,则助理系统140可以将有趣时刻确定为包括这种显著的运动量。这种运动的示例可以包括头戴式设备落在地上或用户在行走/徒步旅行/跑步期间摔倒。作为示例而非限制,针对徒步旅行,助理系统140可以基于一些徒步旅行专用标准来确定有趣时刻。这些标准可以包括某人有声地笑,某人发出可听得见的惊呼(例如,“哇!”),一个人出现在步道上,一只狗或其他有趣的动物出现在步道上,用户在徒步旅行期间(例如,当他们看到很好的景色时)停止行走并环顾四周,摄像头馈送聚焦在远景或视点上,用户暂停以聚焦于附近的且有趣的对象(例如,瀑布、大树、有趣的植物)上,用户将手指(在摄像头视图框中可见)指向步道上或步道周围的东西。在特定实施例中,助理系统140还可以基于视觉信号的质量(例如与视觉信号(例如,头部或用户身体的运动)相关联的模糊度、采光、转动、大运动)来确定有趣时刻。
在特定实施例中,助理系统140可以通过硬件感知神经架构搜索来构建用于自动采集的紧凑设备上模型。与该设备上模型的云对应部件相比,该设备上模型可以具有改进的时延。另外,设备上模型可以节约自动采集所需的能源和电力。助理系统140可以具有高效地使用紧凑型客户端系统130的有限计算资源以进行自动采集的技术优势,因为客户端系统130仅工作以采集有趣时刻,从而更节能/更节约存储。另一个技术优势可以包括:通过绕过用于处理语音命令的整个助理堆栈、以及通过使用用于确定何时执行自动采集的客户端分类模型,来降低自动采集的时延。在特定实施例中,由于客户端系统130的处理能力有限,因此设备上神经网络模型设计可能具有挑战性。因此,降低模型的时延和提高模型的能效可能是至关重要的。在特定实施例中,助理系统140可以使用量化、多对多(teacher-student)学习或预训练来改进模型的时延和能效。在运行模型时,量化使用了整数运算而不是浮点运算,这可以显著降低模型的运行成本。作为示例而非限制,助理系统140可以将可部署量化三维卷积(Conv3D)运算器用于移动CPU平台来构建量化视频理解模型。
在特定实施例中,助理系统140可以使用数据驱动方法和全面的用户研究来学习可确定有趣时刻的模型,这可以是解决确定有趣时刻的技术挑战的有效解决方案,因为将用户包括在循环中以提供大量人类对兴趣性的判断可以使模型在以类似于人类的方式确定兴趣性时更鲁棒。代替确定性逻辑(例如“3秒后开始采集”),助理系统140可以自动分析当前内容并仅采集有趣时刻。在特定实施例中,一个或多个机器学习模型中的一个或多个可以基于与多个活动的多个时刻相对应的多个传感器信号而被训练。该多个传感器信号中的每个传感器信号可以与预定兴趣度相关联。作为示例而非限制,针对徒步旅行,助理系统140可以使用以下模型来仅采集最佳场景:该模型从被用户评价为美妙场景的大量图像中学习。作为另一示例而非限制,针对棒球比赛,助理系统140可以使用以下模型来自动采集全垒打:该模型从包括全垒打的大量视频以及被用户评价为比赛中最难忘的时刻的大量视频中学习。在特定实施例中,助理系统140可以使用来自不同源(例如在线社交网络的新闻馈送)的数据。助理系统140可以专注于使用更接近地反映佩戴着智能眼镜、AR眼镜和VR头戴式设备的用户的以自我为中心的数据,并改进建模工作。不同类型的传感器信号可以不同地用于确定有趣时刻。作为示例而非限制,IMU信号可以用于分析可指示焦点或兴趣的头部运动,并且音频信号可以用于识别笑声或惊呼声中的亮点。兴趣性还可以通过使用来自助理用户存储器354的存储器服务的个性化来进一步标识。例如,如果用户喜欢狗,则助理系统140可以尝试采集更多带有狗的视频。在特定实施例中,助理系统140还可以提供工具来对用于兴趣性检测的模型的下游输出进行可视化,从而确定图像或视频片段是否有趣和有效。
图6A至图6D示出了生日聚会的示例自动采集。图6A示出了对自动采集生日聚会的示例用户请求。用户605可以佩戴着支持助理的智能眼镜作为他的客户端系统130。用户请求610可以是“嘿助理,明天为埃琳娜(Elena)的生日拍摄一些照片。”然后,助理系统140可以回答“收到。好的。”615。在特定实施例中,助理系统140可以基于用户605的知识来确定埃琳娜是用户605的女儿。图6B示出了生日聚会的示例发生。如图6B所示,用户605现在可能在埃琳娜620的生日聚会上。由于生日聚会正在进行,因此助理系统140可以开始自动采集聚会的有趣时刻。图6C示出了该生日聚会的示例自动采集到的时刻。用户605可以正在看埃琳娜620与其他孩子一起玩耍。助理系统140可以确定这是一个有趣时刻。因此,智能眼镜可以将这一时刻自动采集为图像625。图6D示出了该生日聚会的另一示例自动采集到的时刻。用户605可能正在看埃琳娜620吹灭生日蜡烛。助理系统140可以确定这是另一个有趣时刻。因此,智能眼镜可以将这一时刻自动采集为另一图像630。
图7A至图7C示出了棒球比赛的示例自动采集。图7A示出了对自动采集棒球比赛的示例用户请求。用户705可以佩戴着智能眼镜作为他的客户端系统130。用户请求710可以是“嘿助理,明天为比赛拍摄一些视频。”然后,助理系统140可以回答“收到。好的。”715。图7B示出了棒球比赛的示例发生。如图7B所示,用户705现在可能在棒球比赛处。由于棒球比赛正在进行,因此助理系统140可以开始自动采集比赛的有趣时刻。图7C示出了示例自动采集到的全垒打时刻。用户705可能正在观看比赛,并且发生了全垒打。助理系统140可以确定这是一个有趣时刻。因此,智能眼镜可以将这一时刻自动采集为视频720。
图8示出了用于自动采集有趣时刻的示例方法800。该方法可以在步骤810处开始,其中,助理系统140可以在与第一用户相关联的客户端系统130处,接收对采集与第一用户的活动相关联的视觉数据的用户请求。在步骤820处,助理系统140可以基于用户请求确定触发条件。在步骤830处,助理系统140可以从客户端系统130访问由该客户端系统的一个或多个传感器采集到的一个或多个传感器信号;其中,客户端系统包括多个传感器;其中,该一个或多个传感器信号是基于一个或多个级联模型策略从该一个或多个传感器访问的;其中,每个级联模型策略利用与每个传感器相关联的各自成本或各自相关性中的一者或两者;其中,该一个或多个传感器信号包括以下中的一者或多者:惯性测量单元(IMU)信号、音频信号、GPS信号、肌电(EMG)信号或视觉信号;其中,该一个或多个级联模型策略为多个活动中的每个活动指定访问来自多个传感器的传感器信号的特定顺序;其中,来自该多个传感器的附加传感器基于与检测上下文的变化相关联的置信度分数而被访问;其中,当每个级联模型策略利用与每个传感器相关联的各自成本时,每个级联模型策略指定:如果第一成本低于第二成本,则在访问来自与第二成本相关联的第二传感器的第二传感器信号之前,访问来自与第一成本相关联的第一传感器的第一传感器信号;并且其中,当每个级联模型策略利用与每个传感器相关联的各自相关性时,每个级联模型策略指定:如果第一相关性高于第二相关性,则在访问来自与第二相关性相关联的第二传感器的第二传感器信号之前,访问来自与第一相关性相关联的第一传感器的第一传感器信号。在步骤840处,助理系统140可以基于一个或多个机器学习模型和一个或多个传感器信号,检测与第一用户的活动相关联的第一用户的上下文的变化,其中,第一用户的上下文的变化满足与该活动相关联的触发条件。在步骤850处,助理系统140可以响应于所检测到的第一用户的上下文的变化,通过客户端系统130的一个或多个摄像头自动采集视觉数据;其中,视觉数据包括活动的一个或多个时刻;其中,该一个或多个时刻中的每个时刻与高于阈值兴趣度的兴趣度相关联;其中,视觉数据被存储为一个或多个媒体数据文件;并且其中,该一个或多个媒体数据文件中的每个媒体数据文件包括图像或视频的一者或两者。在步骤860处,助理系统140可以基于一个或多个机器学习模型和一个或多个传感器信号,检测活动的结束。在步骤870处,助理系统140可以基于在活动期间采集到的视觉数据,生成基于视觉数据的概括的集锦视频,其中,该概括是基于视觉数据的兴趣度的。在步骤880处,助理系统140可以在客户端系统130处,向第一用户呈现集锦视频。在适当的情况下,特定实施例可以重复图8中的方法的一个或多个步骤。尽管本公开描述和示出了图8中的方法的以特定顺序发生的多个特定步骤,但是本公开考虑了图8中的方法的以任何合适的顺序发生的任何合适的步骤。此外,尽管本公开描述和示出了用于自动采集有趣时刻的、包括图8中的方法的各特定步骤的示例方法,但是本公开考虑了用于自动采集有趣时刻的、包括任何合适的步骤的任何合适的方法,在适当的情况下,这些步骤可以包括图8中的方法的所有步骤、一些步骤,或者不包括图8中的方法的步骤。此外,尽管本公开描述和示出了执行图8中的方法的各特定步骤的多个特定部件、设备或系统,但是本公开考虑了执行图8中的方法的任何合适的步骤的任何合适的部件、设备或系统的任何合适的组合。
社交图谱
图9示出了示例社交图谱900。在特定实施例中,社交网络系统160可以在一个或多个数据存储库中存储一个或多个社交图谱900。在特定实施例中,社交图谱900可以包括多个节点——这些节点可以包括多个用户节点902或多个概念节点904——以及连接这些节点的多条边906。每个节点可以与唯一的实体(即,用户或概念)相关联,每个实体可以具有唯一的标识符(ID)(例如唯一的号码或用户名)。出于教导目的,图9中所示的示例社交图谱900以二维可视化图谱表示的形式示出。在特定实施例中,社交网络系统160、客户端设备130、助理系统140或第三方系统170可以访问社交图谱900和相关的社交图谱信息,以用于合适的应用。社交图谱900的节点和边可以作为数据对象存储,例如存储在数据存储库(例如社交图谱数据库)中。这种数据存储库可以包括社交图谱900的节点或边的一个或多个可搜索或可查询的索引。
在特定实施例中,用户节点902可以与社交网络系统140或助理系统140的用户相对应。作为示例而非限制,用户可以是与社交网络系统160或助理系统140交互或通信、或者通过社交网络系统160或助理系统140进行交互或通信的个体(人类用户)、实体(例如,企业、商业或第三方应用)或群组(例如,个体群组或实体群组)。在特定实施例中,当用户使用社交网络系统160注册账户时,社交网络系统160可以创建与该用户相对应的用户节点902,并将该用户节点902存储在一个或多个数据存储库中。在适当的情况下,本文所描述的用户和用户节点902可以指所注册的用户和与所注册的用户相关联的用户节点902。另外或者作为替代,在适当的情况下,本文所描述的用户和用户节点902可以指尚未使用社交网络系统160进行注册的用户。在特定实施例中,用户节点902可以与由用户提供的信息或由各种系统(包括社交网络系统160)收集的信息相关联。作为示例而非限制,用户可以提供他或她的姓名、资料图片、联系信息、出生日期、性别、婚姻状况、家庭状况、职业、教育背景、偏好、兴趣、或其他人口统计信息。在特定实施例中,用户节点902可以与一个或多个数据对象相关联,该一个或多个数据对象对应于与用户相关联的信息。在特定实施例中,用户节点902可以对应于一个或多个网页界面。
在特定实施例中,概念节点904可以对应于概念。作为示例而非限制,概念可以对应于地点(例如,电影院、餐厅、地标、或城市);网站(例如,与社交网络系统160相关联的网站、或与网页应用服务器相关联的第三方网站);实体(例如,个体、商业、群组、运动队伍、或名人);可位于社交网络系统160内或外部服务器(例如网页应用服务器)上的资源(例如,音频文件、视频文件、数码照片、文本文件、结构化文档、或应用);不动产或知识产权(例如,雕塑、绘画、电影、游戏、歌曲、创意、照片、或书面作品);游戏;活动;想法或理论;另一合适的概念;或者两个或更多个这种概念。概念节点904可以与由用户提供的概念的信息或由各种系统(包括社交网络系统160和助理系统140)收集的信息相关联。作为示例而非限制,概念的信息可以包括名称或标题;一幅或多幅图像(例如,书籍的封面图像);位置(例如,地址或地理位置);网站(其可以与URL相关联);联系信息(例如,电话号码或电子邮件地址);其他合适的概念信息;或者这种信息的任何合适的组合。在特定实施例中,概念节点904可以与一个或多个数据对象相关联,该一个或多个数据对象对应于与概念节点904相关联的信息。在特定实施例中,概念节点904可以对应于一个或多个网页界面。
在特定实施例中,社交图谱900中的节点可以表示网页(其可以被称为“资料页面”)或由该网页表示。资料界面可由社交网络系统160或助理系统140托管、或可由社交网络系统160或助理系统140访问。资料界面也可以被托管在与第三方系统170相关联的第三方网站上。作为示例而非限制,对应于特定外部网页界面的资料界面可以是特定外部网页界面,并且该资料界面可以对应于特定概念节点904。资料界面可以被其他用户的所有子集或所选定子集查看。作为示例而非限制,用户节点902可以具有对应的用户资料界面,在该用户资料界面中,对应的用户可以添加内容、做出声明、或以其他方式表达他或她自己。作为另一示例而非限制,概念节点904可以具有对应的概念资料界面,在该概念资料界面中,一个或多个用户可以添加内容、做出声明、或表达他们自己(特别是在对应于概念节点904的概念方面)。
在特定实施例中,概念节点904可以表示由第三方系统170托管的第三方网页界面或资源。除了其他元素之外,第三方网页界面或资源可以包括表示动作或活动的内容、可选图标或其他图标、或其他可交互的对象。作为示例而非限制,第三方网页界面可以包括可选图标,例如“喜欢”、“签到”、“吃”、“推荐”、或其他合适的动作或活动。查看第三方网页界面的用户可以通过选择这些图标中的一个图标(例如,“签到”)来执行动作,从而使得客户端设备130向社交网络系统160发送指示用户动作的消息。社交网络系统160可以响应于该消息,在与用户相对应的用户节点902和与第三方网页界面或资源相对应的概念节点904之间创建边(例如,签到类的边),并将边906存储在一个或多个数据存储库中。
在特定实施例中,社交图谱900中的一对节点可以通过一条或多条边906彼此连接。连接一对节点的边906可以表示该一对节点之间的关系。在特定实施例中,边906可以包括或表示与一对节点之间的关系相对应的一个或多个数据对象或属性。作为示例而非限制,第一用户可以指示第二用户是第一用户的“朋友”。社交网络系统160可以响应于该指示,向第二用户发送“朋友请求”。如果第二用户确认了该“朋友请求”,则社交网络系统160可以在社交图谱900中创建将第一用户的用户节点902连接到第二用户的用户节点902的边906,并将边906作为社交图谱信息存储在一个或多个数据存储库中。在图9的示例中,社交图谱900包括指示用户“A”和用户“B”的用户节点902之间的朋友关系的边906、以及指示用户“C”和用户“B”的用户节点902之间的朋友关系的边。尽管本公开描述或示出了具有连接特定用户节点902的特定属性的特定边906,但是本公开考虑了具有连接用户节点902的任何合适属性的任何合适的边906。作为示例而非限制,边906可以表示朋友关系、家庭关系、商业或雇佣关系、粉丝关系(例如,包括喜欢等)、关注者关系、访客关系(例如,包括访问、查看、签到、分享等)、订户关系、上级/下级关系、互惠关系、非互惠关系、另一合适类型的关系、或两个或更多个这种关系。此外,尽管本公开总体上将节点描述为被连接,但是本公开也将用户或概念描述为被连接。在本文中,在适当的情况下,对被连接的用户或概念的引用可以指与社交图谱900中通过一条或多条边906连接的那些用户或概念相对应的节点。分别由两个节点表示的两个对象之间的关系距离是在社交图谱900中连接这两个节点的最短路径中的边的计数。作为示例而非限制,在社交图谱900中,用户“C”的用户节点902经由多条路径连接到用户“A”的用户节点902,该多条路径例如包括直接穿过用户“B”的用户节点902的第一路径、穿过公司“公司名称(CompanyName)”的概念节点904和用户“D”的用户节点902的第二路径、以及穿过表示学校“学校名称(SchoolName)”、用户“G”、公司“公司名称”和用户“D”的用户节点902和概念节点904的第三路径。由于连接用户“C”和用户“A”的对应节点的最短路径(即,第一路径)包括两条边906,因此他们的关系距离为二。
在特定实施例中,用户节点902与概念节点904之间的边906可以表示由与用户节点902相关联的用户针对与概念节点904相关联的概念而执行的特定动作或活动。作为示例而非限制,如图9所示,用户可以“喜欢”、“定期去”、“播放”、“收听”、“烹饪”、“工作于”或“阅读”概念,上述动作或活动中的每个动作或活动可以对应于边的类型或边的子类型。对应于概念节点904的概念资料界面例如可以包括可选的“签到”图标(例如,可点击的“签到”图标)或可选的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统160可以响应于与各自动作相对应的用户动作,来创建“收藏”边或“签到”边。作为另一示例而非限制,用户(用户“C”)可以使用特定的应用(第三方在线音乐应用)来收听特定的歌曲(“歌曲名称”)。在这种情况下,社交网络系统160可以在与用户相对应的用户节点902和与歌曲和应用相对应的概念节点904之间创建“收听”边906和“使用”边(如图9所示),以指示用户收听了该歌曲并使用了该应用。此外,社交网络系统160可以在与歌曲和应用相对应的概念节点904之间创建“播放”边906(如图9所示),以指示由特定应用播放了特定歌曲。在这种情况下,“播放”边906与由外部应用(第三方在线音乐应用)在外部音频文件(歌曲“歌曲名称”)上执行的动作相对应。尽管本公开描述了具有连接用户节点902和概念节点904的特定属性的特定边906,但是本公开考虑了具有连接用户节点902和概念节点904的任何合适属性的任何合适的边906。此外,尽管本公开描述了在用户节点902与概念节点904之间表示单个关系的边,但是本公开考虑了在用户节点902与概念节点904之间表示一个或多个关系的边。作为示例而非限制,边906可以表示用户喜欢特定概念和用户已经在特定概念处使用过。替代地,另一条边906可以表示用户节点902与概念节点904之间(如图9所示,用户“E”的用户节点902与“在线音乐应用”的概念节点904之间)的各种类型的关系(或多种单个的关系)。
在特定实施例中,社交网络系统160可以在社交图谱900中的用户节点902与概念节点904之间创建边906。作为示例而非限制,(例如,通过使用由用户的客户端设备130托管的网页浏览器或专用应用)查看概念资料界面的用户可以通过点击或选择“喜欢(Like)”图标,来指示他或她喜欢由概念节点904表示的概念,这可以使得用户的客户端设备130向社交网络系统160发送指示用户喜欢与概念资料界面相关联的概念的消息。社交网络系统160可以响应于该消息,在与用户相关联的用户节点902与概念节点904之间创建边906(如由用户与概念节点904之间的“喜欢”边906所示)。在特定实施例中,社交网络系统160可以在一个或多个数据存储库中存储边906。在特定实施例中,可以由社交网络系统160响应于特定用户动作而自动形成边906。作为示例而非限制,如果第一用户上传了图片、阅读了书籍、观看了电影或收听了歌曲,则可以在与第一用户相对应的用户节点902和与这些概念相对应的概念节点904之间形成边906。尽管本公开描述了以特定的方式形成特定的边906,但是本公开考虑了以任何合适的方式形成任何合适的边906。
向量空间与嵌入
图10示出了向量空间1000的示例视图。在特定实施例中,对象或n元语法可以在d维向量空间中表示,其中d表示任何合适数量的维度。尽管向量空间1000被示为三维空间,但是这仅出于说明的目的,因为向量空间1000可以具有任何合适的维度。在特定实施例中,n元语法可以在向量空间1000中被表示为被称为项嵌入(term embedding)的向量。每个向量可以包括对应于向量空间1000中的特定点(即,向量的终点)的坐标。作为示例而非限制,如图10所示,向量1010、1020和1030可以被表示为向量空间1000中的点。n元语法可以被映射到各自的向量表示。作为示例而非限制,可以通过应用由字典定义的函数来将n元语法t1和t2分别映射到向量空间1000中的向量/>和/>使得/>且/>作为另一示例而非限制,可以使用被训练为将文本映射到向量表示的词典,或者可以通过训练本身来生成这样的词典。作为另一示例而非限制,词嵌入模型可以用于将n元语法映射到向量空间1000中的向量表示。在特定实施例中,可以通过使用机器学习模型(例如,神经网络)来将n元语法映射到向量空间1000中的向量表示。可以使用一系列训练数据(例如,多个对象的语料库,该多个对象中的每个对象包括n元语法)来训练机器学习模型。
在特定实施例中,对象可以在向量空间1000中被表示为如下向量:该向量被称为特征向量或对象嵌入。作为示例而非限制,可以通过应用函数来将对象e1和e2分别映射到向量空间1000中的向量/>和/>使得/>且/>在特定实施例中,可以基于以下项来将对象映射到向量:对象的一个或多个性质、一个或多个属性或一个或多个特征;对象与其他对象的关系;或与对象相关联的任何其他合适的信息。作为示例而非限制,函数/>可以通过特征提取来将对象映射到向量,该特征提取可以从测量数据的初始集合开始并构建导出值(例如,特征)。作为示例而非限制,可以通过使用检测或隔离对象的各种所需部分或形状的算法,来将包括视频或图像的对象映射到向量。用于计算向量的特征可以基于从以下项获取到的信息:边缘检测、角点检测、斑点检测、脊线检测、尺度不变特征变换、边缘方向、改变强度、自相关、运动检测、光流、阈值、斑点提取、模板匹配、霍夫变换(例如,线、圆、椭圆、任意形状)或任何其他合适的信息。作为另一示例而非限制,包括音频数据的对象可以基于如下特征被映射到向量:所述特征例如为频谱斜率、音调系数、音频频谱质心、音频频谱包络、梅尔频率倒频谱或任何其他合适的信息。在特定实施例中,当对象具有太大而无法有效处理的数据或包括冗余数据时,函数/>可以使用经变换的减少的一组特征(例如,特征选择)来将对象映射到向量。在特定实施例中,函数/>可以基于与对象e相关联的一个或多个n元语法来将对象e映射到向量/>尽管本公开描述了以特定方式在向量空间中表示n元语法或对象,但是本公开考虑了以任何合适的方式在向量空间中表示n元语法或对象。
在特定实施例中,社交网络系统160可以计算向量空间1000中的多个向量的相似度度量。相似度度量可以是余弦相似度、明氏(Minkowski)距离、马氏(Mahalanobis)距离、杰卡德(Jaccard)相似度系数或任何合适的相似度度量。作为示例而非限制,和/>的相似度度量可以是余弦相似度/>作为另一示例而非限制,/>和/>的相似度度量可以是欧氏(Euclidean)距离/>两个向量的相似度度量可以表示由向量空间1000中的两个向量之间的距离测量到的、分别对应于这两个向量的两个对象或两个n元语法彼此有多相似。作为示例而非限制,基于各自向量之间的距离,向量1010和向量1020可以对应于如下对象:所述对象比与向量1010和向量1030相对应的对象彼此更相似。尽管本公开描述了以特定方式计算向量之间的相似度度量,但是本公开考虑了以任何合适的方式计算向量之间的相似度度量。
有关向量空间、嵌入、特征向量和相似度度量的更多信息可以在以下文件中找到:于2015年11月23日提交的、第14/949436号美国专利申请,于2016年10月5日提交的、第15/286315号美国专利申请,以及于2016年11月30日提交的、第15/365789号美国专利申请,这些申请中的每个申请通过引用而被结合。
人工神经网络
图11示出了示例人工神经网络(artificial neural network,“ANN”)1100。在特定实施例中,ANN可以指包括一个或多个节点的计算模型。示例ANN 1100可以包括输入层1110,隐藏层1120、1130、1140和输出层1150。ANN 1100的每一层可以包括一个或多个节点,例如节点1105或节点1115。在特定实施例中,ANN的每个节点可以连接到ANN的另一节点。作为示例而非限制,输入层1110的每个节点可以连接到隐藏层1120的多个节点中的一个节点。在特定实施例中,一个或多个节点可以是偏置节点(例如,层中未连接到前一层中的任何节点且不从前一层中的任何节点接收输入的节点)。在特定实施例中,每层中的每个节点可以连接到前一层或后一层的一个或多个节点。尽管图11描绘了具有特定数量的层、特定数量的节点以及这些节点之间的特定连接的特定ANN,但是本公开考虑了具有任何合适数量的层、任何合适数量的节点以及这些节点之间的任何合适连接的任何合适的ANN。作为示例而非限制,尽管图11描绘了输入层1110的每个节点与隐藏层1120的每个节点之间的连接,但是输入层1110的一个或多个节点可以不连接到隐藏层1120的一个或多个节点。
在特定实施例中,ANN可以是前馈ANN(例如,不具有循环或环路的ANN,其中节点之间的通信在一个方向上流动,从输入层开始并继续到后续的层)。作为示例而非限制,到隐藏层1120的每个节点的输入可以包括输入层1110的一个或多个节点的输出。作为另一示例而非限制,到输出层1150的每个节点的输入可以包括隐藏层1140的一个或多个节点的输出。在特定实施例中,ANN可以是深度神经网络(例如,包括至少两个隐藏层的神经网络)。在特定实施例中,ANN可以是深度残差网络。深度残差网络可以是包括被组织为残差块的隐藏层的前馈ANN。进入第一残差块之后的每个残差块的输入可以是前一残差块的输出和前一残差块的输入的函数。作为示例而非限制,进入残差块N的输入可以是F(x)+x,其中F(x)可以是残差块N-1的输出,x可以是进入残差块N-1的输入。尽管本公开描述了特定ANN,但是本公开考虑了任何合适的ANN。
在特定实施例中,激活函数可以对应于ANN的每个节点。对于给定输入,节点的激活函数可以为定义节点的输出。在特定实施例中,到节点的输入可以包括一组输入。作为示例而非限制,激活函数可以是身份函数、二元阶梯函数(binary step function)、逻辑函数或任何其他合适的函数。作为另一示例而非限制,节点k的激活函数可以是Sigmoid函数双曲正切函数/>整流(rectifier)Fk(sk)=max(0,sk)或任何其他合适的函数Fk(sk),其中sk可以是到节点k的有效输入。在特定实施例中,可以对与节点相对应的激活函数的输入进行加权。每个节点可以使用对应的激活函数、基于加权后的输入来生成输出。在特定实施例中,节点之间的每个连接可以与权重相关联。作为示例而非限制,节点1105与节点1115之间的连接1125可以具有0.4的加权系数,该加权系数可以指示用节点1105的输出乘以0.4来用作节点1115的输入。作为另一示例而非限制,节点k的输出yk可以是yk=Fk(sk),其中Fk可以是对应于节点k的激活函数,sk=∑j(wjkxj)可以是到节点k的有效输入,xj可以是连接到节点k的节点j的输出,并且wjk可以是节点j和节点k之间的加权系数。在特定实施例中,对输入层的各节点的输入可以基于表示对象的向量。尽管本公开描述了对节点的特定输入和节点的特定输出,但是本公开考虑了对节点的任何合适的输入和节点的任何合适的输出。此外,尽管本公开可以描述节点之间的特定连接和权重,但是本公开考虑了节点之间的任何合适的连接和权重。
在特定实施例中,可以使用训练数据来训练ANN。作为示例而非限制,训练数据可以包括到ANN 1100的输入和预期输出。作为另一示例而非限制,训练数据可以包括各自表示一训练对象的多个向量和每个训练对象的一预期标签。在特定实施例中,训练ANN可以包括通过优化目标函数来修改与ANN的节点之间的连接相关联的权重。作为示例而非限制,可以使用训练方法(例如,共轭梯度法、梯度下降法、随机梯度下降法)来反向传播作为表示训练对象的各个向量之间的距离而(例如,使用最小化平方和误差的成本函数)测量到的平方和(sum-of-squares)误差。在特定实施例中,可以使用丢弃(dropout)技术来训练ANN。作为示例而非限制,在训练时可以暂时省略一个或多个节点(例如,该一个或多个节点不接收输入并且不生成输出)。对于每个训练对象,ANN的一个或多个节点可以具有被省略的一些可能性。为特定训练对象省略的节点可以不同于为其他训练对象省略的节点(例如,这些节点可以在逐个对象的基础上被暂时省略)。尽管本公开描述了以特定方式训练ANN,但是本公开考虑了以任何的合适方式训练ANN。
隐私
在特定实施例中,计算系统的一个或多个对象(例如,内容或其他类型的对象)可以与一个或多个隐私设置相关联。一个或多个对象可以存储在任何合适的计算系统或应用上或以其他方式与其相关联,该合适的计算系统或应用例如是社交网络系统160、客户端系统130、助理系统140、第三方系统170、社交网络应用、助理应用、消息收发应用、照片共享应用或任何其他合适的计算系统或应用。尽管本文所论述的示例处于在线社交网络的上下文中,但是这些隐私设置可以应用于任何其他合适的计算系统。可以以任何合适的方式存储对象的隐私设置(或“访问设置”),这些方式例如为与该对象相关联、以授权服务器上的索引的方式、以另一合适的方式、或以这些方式的任意组合。对象的隐私设置可以指定可以如何在在线社交网络内访问、存储或以其他方式使用(例如,查看、共享、修改、复制、执行、呈现或标识)该对象(或与该对象相关联的特定信息)。当对象的隐私设置允许特定用户或其他实体访问该对象时,该对象可以被描述为相对于该用户或其他实体是“可见的”。作为示例而非限制,在线社交网络的用户可以指定用户资料页面的隐私设置,该隐私设置标识可以访问用户资料页面上的工作经验信息的一组用户,从而拒绝其他用户访问该信息。
在特定实施例中,对象的隐私设置可以指定不应被允许访问与对象相关联的某些信息的用户或其他实体的“被阻止列表”。在特定实施例中,该被阻止列表可以包括第三方实体。该被阻止列表可以指定一个或多个用户或实体,对于这些用户或实体,对象是不可见的。作为示例而非限制,用户可以指定不可以访问与该用户相关联的相册的一组用户,从而拒绝这些用户访问相册(同时也可能允许不在该组用户内的某些用户访问该相册)。在特定实施例中,隐私设置可以与特定的社交图谱元素相关联。社交图谱元素(例如,节点或边)的隐私设置可以指定可以如何使用在线社交网络来访问社交图谱元素、与社交图谱元素相关联的信息、或与社交图谱元素相关联的对象。作为示例而非限制,特定照片可以具有隐私设置,该隐私设置指定仅照片中标记的用户和照片中标记的用户的朋友可以访问该照片。在特定实施例中,隐私设置可以允许用户选择让或不让:社交网络系统160或助理系统140存储/记录、或与其他系统(例如,第三方系统170)共享其内容、信息或动作。尽管本公开描述了以特定的方式使用特定的隐私设置,但是本公开考虑了以任何合适的方式使用任何合适的隐私设置。
在特定实施例中,隐私设置可以基于社交图谱900的一个或多个节点或者一条或多条边。隐私设置可以针对社交图谱900的一条或多条边906或一个或多个边类型来指定,或者相对于社交图谱900的一个或多个节点902、904或一个或多个节点类型来指定。应用于连接两个节点的特定边906的隐私设置可以控制与这些节点相对应的两个实体之间的关系是否对在线社交网络的其他用户可见。类似地,应用于特定节点的隐私设置可以控制与该节点相对应的用户或概念是否对在线社交网络的其他用户可见。作为示例而非限制,第一用户可以向社交网络系统160共享对象。该对象可以与通过边906连接到第一用户的用户节点902的概念节点904相关联。第一用户可以对应用于连接到对象的概念节点904的特定边906的隐私设置进行指定,或者可以对应用于连接到概念节点904的所有边906的隐私设置进行指定。作为另一示例而非限制,第一用户可以共享特定对象类型的一组对象(例如,一组图像)。第一用户可以将相对于与该特定对象类型的第一用户相关联的所有对象的隐私设置指定为具有特定隐私设置(例如,指定由第一用户发布的所有图像仅对第一用户的朋友和/或在这些图像中标记了的用户可见)。
在特定实施例中,社交网络系统160可以(例如,在网页、模块、一个或多个对话框、或任何其他合适的界面内)向第一用户呈现“隐私向导”,以帮助第一用户指定一个或多个隐私设置。隐私向导可以显示指令、合适的隐私相关信息、当前隐私设置、用于接收来自第一用户的指定隐私设置的改变或确认的一个或多个输入的一个或多个输入域、或其任何合适的组合。在特定实施例中,社交网络系统160可以向第一用户提供“控制面板”功能,该功能可以向第一用户显示第一用户的当前隐私设置。可以在任何合适的时间(例如,在来自第一用户调用控制面板功能的输入之后、在特定事件或触发动作发生之后)向第一用户显示控制面板功能。控制面板功能可以允许第一用户在任何时间以任何合适的方式修改第一用户的当前隐私设置中的一个或多个(例如,将第一用户重定向到隐私向导)。
与对象相关联的隐私设置可以指定允许访问或拒绝访问的任何合适的粒度。作为示例而非限制,可以为以下用户指定访问或拒绝访问:特定用户(例如,只有我、我的室友和我的领导)、特定分离度内的用户(例如,朋友、或朋友的朋友)、用户群组(例如,游戏俱乐部、我的家庭)、用户网络(例如,特定雇主的雇员、特定大学的学生或校友)、所有用户(“公共”)、无用户(“私人”)、第三方系统170的用户、特定应用(例如,第三方应用、外部网站)、其他合适的实体、或以上用户或实体的任意组合。尽管本公开描述了允许访问或拒绝访问的特定粒度,但是本公开考虑了允许访问或拒绝访问的任何合适的粒度。
在特定实施例中,一个或多个服务器162可以是用于实施隐私设置的授权/隐私服务器。响应于来自用户(或其他实体)对存储在数据存储库164中的特定对象的请求,社交网络系统160可以向数据存储库164发送对该对象的请求。该请求可以识别与该请求相关联的用户,并且如果授权服务器基于与该对象相关联的隐私设置确定该用户被授权访问该对象,则该请求可以仅被发送给该用户(或用户的客户端系统130)。如果请求用户未被授权访问该对象,则授权服务器可以阻止从数据存储库164中检索所请求的对象,或者可以阻止将所请求的对象发送给该用户。在搜索查询上下文中,只有当查询用户被授权访问该对象时,例如,如果该对象的隐私设置允许该对象被呈现给该查询用户、被该查询用户发现或以其他方式对该查询用户可见,才可以将该对象提供为搜索结果。在特定实施例中,对象可以表示通过用户的新闻推送对用户可见的内容。作为示例而非限制,一个或多个对象可以对用户的“趋势”页面可见。在特定实施例中,对象可以对应于特定用户。该对象可以是与该特定用户相关联的内容,或者可以是该特定用户的帐户或存储在社交网络系统160或其他计算系统上的信息。作为示例而非限制,第一用户可以通过在线社交网络的“你可能认识的人”功能或者通过查看第一用户的朋友列表来查看在线社交网络的一个或多个第二用户。作为示例而非限制,第一用户可以在指定他们不希望在他们的新闻推送或朋友列表中看到与特定第二用户相关联的对象。如果该对象的隐私设置不允许它出现在用户面前、被用户发现或对用户可见,则可以从搜索结果中排除该对象。尽管本公开描述了以特定方式描述了执行隐私设置,但是本公开考虑了以任何合适的方式执行隐私设置。
在特定实施例中,与用户相关联的相同类型的不同对象可以具有不同的隐私设置。与用户相关联的不同类型的对象可以具有不同类型的隐私设置。作为示例而非限制,第一用户可以指定第一用户的状态更新是公开的,但是由第一用户共享的任何图像仅对在线社交网络上的第一用户的朋友可见。作为另一示例而非限制,用户可以为不同类型的实体指定不同的隐私设置,例如个人用户、朋友的朋友、追随者、用户组或公司实体。作为另一示例而非限制,第一用户可以指定可以观看由第一用户发布的视频的一组用户,同时防止视频对第一用户的雇主可见。在特定实施例中,可以为不同的用户组或用户背景信息提供不同的隐私设置。作为示例而非限制,第一用户可以指定与第一用户在同一所大学的其他用户可以观看第一用户的照片,但是作为第一用户的家庭成员的其他用户不可以观看那些相同的照片。
在特定实施例中,社交网络系统160可以为特定对象类型的每个对象提供一个或多个默认隐私设置。对象的被设置为默认的隐私设置可以由与该对象相关联的用户改变。作为示例而非限制,由第一用户发布的所有图像可以具有仅对第一用户的朋友可见的默认隐私设置,并且对于特定图像,第一用户可以将该图像的隐私设置改变为对朋友和朋友的朋友可见。
例如,在特定实施例中,隐私设置可以允许第一用户指定(例如,通过选择退出、通过不选择加入)社交网络系统160或助理系统140是否可以出于任何目的而接收、收集、记录或存储特定对象或与用户相关联的信息。在特定实施例中,隐私设置可以允许第一用户指定特定应用或过程是否可以访问、存储或使用与用户相关联的特定对象或信息。隐私设置可以允许用户选择让或选择不让特定应用或过程访问、存储或使用对象或信息。社交网络系统160或助理系统140可以访问这种信息以向第一用户提供特定功能或服务,而社交网络系统160或助理系统140却不能出于任何其他目的而访问该信息。在访问、存储或使用这些对象或信息之前,社交网络系统160或助理系统140可以提示用户在允许任何这种动作之前提供这样隐私设置:该隐私设置指定哪些应用或过程(如果有的话)可以访问、存储或使用该对象或信息。作为示例而非限制,第一用户可以经由与在线社交网络相关的应用(例如,消息收发应用)向第二用户发送消息,并且可以指定这样的隐私设置:社交网络系统160或助理系统140不应该存储这种消息。
在特定实施例中,用户可以指定与第一用户相关联的特定类型的对象或信息是否可以由社交网络系统160或助理系统140访问、存储或使用。作为示例而非限制,第一用户可以指定由第一用户通过社交网络系统160或助理系统140发送的图像不可以由社交网络系统160或助理系统140存储。作为另一示例而非限制,第一用户可以指定从第一用户发送到特定第二用户的消息可以不被社交网络系统160或助理系统140存储。作为又一示例而非限制,第一用户可以指定经由特定应用发送的所有对象可以由社交网络系统160或助理系统140保存。
在特定实施例中,隐私设置可以允许第一用户指定是否可以从特定客户端系统130或第三方系统170访问与第一用户相关联的特定对象或信息。隐私设置可以允许第一用户选择是否从特定设备(例如,用户智能电话上的电话簿)、从特定应用(例如,消息收发应用)、或从特定系统(例如,电子邮件服务器)访问对象或信息。社交网络系统160或助理系统140可以提供关于每个设备、系统或应用的默认隐私设置,和/或可以提示第一用户为每个上下文指定特定隐私设置。作为示例而非限制,第一用户可以利用社交网络系统160或助理系统140的位置服务特征来为用户附近的餐馆或其他地方提供推荐。第一用户的默认隐私设置可以指定社交网络系统160或助理系统140可以使用从第一用户的客户端系统130提供的位置信息来提供基于位置的服务,但是社交网络系统160或助理系统140可以不存储第一用户的位置信息或将其提供给任何第三方系统170。然后,第一用户可以更新隐私设置以允许第三方图像共享应用使用位置信息,以便对照片进行地理标记。
在特定实施例中,隐私设置可以允许用户指定可以访问对象的一个或多个地理位置。对对象的访问或拒绝访问可以取决于试图访问对象的用户的地理位置。作为示例而非限制,用户可以共享对象并指定只有同一城市中的用户可以访问或查看该对象。作为另一示例而非限制,第一用户可以共享对象并指定仅当第一用户在特定位置时该对象才对第二用户可见。如果第一用户离开该特定位置,则该对象对于第二用户不再是可见的。作为另一示例而非限制,第一用户可以指定对象仅对与第一用户在阈值距离内的第二用户可见。如果用户随后改变位置,则具有对该对象的访问权的原始第二用户可能失去访问权,而一组新第二用户在他们来到第一用户的阈值距离内时可以获得访问权。
在特定实施例中,社交网络系统160或助理系统140可以具有这样的功能:所述功能可以使用用户的个人信息或生物特征信息作为输入以用于用户认证或体验个性化目的。用户可以选择利用这些功能来增强他们在在线社交网络的体验。作为示例而非限制,用户可以向社交网络系统160或助理系统140提供个人信息或生物识别信息。用户的隐私设置可以指定这种信息仅可用于特定过程(例如,认证),并且还指定这种信息不可以与任何第三方系统170共享、或用于与社交网络系统160或助理系统140相关联的其他过程或应用。作为另一示例而非限制,社交网络系统160可以为用户提供向在线社交网络提供声纹记录的功能。作为示例而非限制,如果用户希望利用在线社交网络的这一功能,则用户可以提供他或她自己的语音的语音录音以提供对线社交网络的状态更新。可以将语音输入的录音与用户的声纹进行比较,以确定用户说了什么词语。用户的隐私设置可以指定这种语音录音仅可用于语音输入目的(例如,认证用户、发送语音消息、改进语音识别,以便使用在线社交网络的语音操作特征),并且还指定这种语音录音不可以与任何第三方系统170共享、或由与社交网络系统160相关联的其他过程或应用使用。作为另一示例而非限制,社交网络系统160可以为用户提供用于向在线社交网络提供参考图像(例如,面部资料、视网膜扫描)的功能。在线社交网络可以将参考图像与随后接收到的图像输入进行比较(例如,以认证用户、在照片中标记用户)。用户的隐私设置可以指定这种图像仅可用于有限的目的(例如,认证),并且还指定这种图像不可以与任何第三方系统170共享、或由与社交网络系统160相关联的其他过程或应用使用。
系统和方法
图12示出了示例计算机系统1200。在特定实施例中,一个或多个计算机系统1200执行本文所描述或示出的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统1200提供本文所描述或示出的功能。在特定实施例中,在一个或多个计算机系统1200上运行的软件执行本文所描述或示出的一种或多种方法的一个或多个步骤,或者提供本文所描述或示出的功能。特定实施例包括一个或多个计算机系统1200的一个或多个部分。在本文中,在适当的情况下,对计算机系统的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机系统的引用可以包括一个或多个计算机系统。
本公开考虑了任何合适数量的计算机系统1200。本公开考虑了采用任何合适的物理形式的计算机系统1200。作为示例而非限制,计算机系统1200可以为嵌入式计算机系统、片上系统(System-On-Chip,SOC)、单板计算机系统(Single-Board Computer System,SBC)(例如,模块上计算机(Computer-On-Module,COM)或模块上系统(system-on-module,SOM))、台式计算机系统、膝上型或笔记本式计算机系统、交互式自助服务终端(kiosk)、大型机、计算机系统组网、移动电话、个人数字助理(PDA)、服务器、平板计算机系统、或这些系统中的两者或更多者的组合。在适当的情况下,计算机系统1200可以包括一个或多个计算机系统1200;可以是单一的或分布式的;跨多个位置的;跨多台机器的;跨越多个数据中心的;或位于云中(该云可以包括一个或多个网络中的一个或多个云部件)。在适当的情况下,一个或多个计算机系统1200可以在无实质性的空间限制或时间限制的情况下,执行本文所描述或示出的一种或多种方法的一个或多个步骤。作为示例而非限制,一个或多个计算机系统1200可以实时地或以分批处理模式执行本文所描述或示出的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统1200可以在不同的时间或在不同的位置处执行本文所描述或示出的一种或多种方法的一个或多个步骤。
在特定实施例中,计算机系统1200包括处理器1202、内存1204、存储器1206、输入/输出(Input/Output,I/O)接口1208、通信接口1210和总线1212。尽管本公开描述并示出了具有处于特定布置的特定数量的特定部件的特定计算机系统,但本公开考虑了具有处于任何合适的布置的任何合适数量的任何合适部件的任何合适的计算机系统。
在特定实施例中,处理器1202包括用于执行多个指令的硬件,这些指令例如为,构成计算机程序的那些指令。作为示例而非限制,为了执行多个指令,处理器1202可从内部寄存器、内部高速缓冲存储器、内存1204、或存储器1206检索(或提取)这些指令;解码并执行这些指令;然后将一个或多个结果写入内部寄存器、内部高速缓冲存储器、内存1204或存储器1206。在特定实施例中,处理器1202可以包括用于数据、指令或地址的一个或多个内部高速缓冲存储器。在适当的情况下,本公开考虑了包括任何合适数量的任何合适的内部高速缓冲存储器的处理器1202。作为示例而非限制,处理器1202可以包括一个或多个指令高速缓冲存储器、一个或多个数据高速缓冲存储器、和一个或多个页表缓存(TranslationLookaside Buffer,TLB)。指令高速缓冲存储器中的指令可以是内存1204或存储器1206中的指令的副本,并且该指令高速缓冲存储器可以加速处理器1202对这些指令的检索。数据高速缓冲存储器中的数据可以是内存1204或存储器1206中、供在处理器1202处执行的指令操作的数据的副本;可以是在处理器1202处执行的先前指令的结果,以供在处理器1202处执行的后续指令访问、或用于写入内存1204或存储器1206;或者可以是其他合适的数据。数据高速缓冲存储器可以加速处理器1202的读操作或写操作。TLB可以加速处理器1202的虚拟地址转换。在特定实施例中,处理器1202可以包括用于数据、指令或地址的一个或多个内部寄存器。在适当的情况下,本公开考虑了包括任何适当数量的任何合适的内部寄存器的处理器1202。在适当的情况下,处理器1202可以包括一个或多个算术逻辑单元(ArithmeticLogic Unit,ALU);可以是多核处理器;或可以包括一个或多个处理器1202。尽管本公开描述并示出了特定的处理器,但是本公开考虑了任何合适的处理器。
在特定实施例中,内存1204包括主内存,该主内存用于存储供处理器1202执行的指令或供处理器1202操作的数据。作为示例而非限制,计算机系统1200可以将指令从存储器1206或另一源(例如,另一计算机系统1200)加载到内存1204。然后,处理器1202可以将这些指令从内存1204加载到内部寄存器或内部高速缓冲存储器。为了执行这些指令,处理器1202可以从内部寄存器或内部高速缓冲存储器中检索这些指令并对它们进行解码。在执行这些指令期间或之后,处理器1202可以将一个或多个结果(该一个或多个结果可以是中间结果或最终结果)写入内部寄存器或内部高速缓冲存储器。然后,处理器1202可以将这些结果中的一个或多个结果写入内存1204。在特定实施例中,处理器1202仅执行一个或多个内部寄存器中或一个或多个内部高速缓冲存储器中的、或内存1204(与存储器1206不同或其他位置)中的指令,且仅对一个或多个内部寄存器或内部高速缓冲存储器中的、或内存1204(与存储器1206不同或其他位置)中的数据进行操作。一条或多条内存总线(每条内存总线可以包括地址总线和数据总线)可以将处理器1202耦接到内存1204。如下所述,总线1212可以包括一条或多条内存总线。在特定实施例中,一个或多个内存管理单元(MemoryManagement Unit,MMU)位于处理器1202与内存1204之间,并且促进由处理器1202所请求的对内存1204的访问。在特定实施例中,内存1204包括随机存取存储器(Random AccessMemory,RAM)。在适当的情况下,该RAM是易失性存储器。在适当的情况下,该RAM可以为动态RAM(Dynamic RAM,DRAM)或静态RAM(Static RAM,SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开考虑了任何合适的RAM。在适当的情况下,内存1204可以包括一个或多个内存1204。尽管本公开描述和示出了特定的内存,但本公开考虑了任何合适的内存。
在特定实施例中,存储器1206包括用于数据或指令的大容量存储器。作为示例而非限制,存储器1206可以包括硬盘驱动器(Hard Disk Drive,HDD)、软盘驱动器(FloppyDisk Drive,FDD)、闪存、光盘、磁光盘、磁带、或通用串行总线(Universal Serial Bus,USB)驱动器、或这些存储器中的两者或更多者的组合。在适当的情况下,存储器1206可以包括可移除介质或不可移除(或固定)介质。在适当的情况下,存储器1206可以处于计算机系统1200的内部或外部。在特定实施例中,存储器1206是非易失性固态存储器。在特定实施例中,存储器1206包括只读存储器(Read-Only Memory,ROM)。在适当的情况下,该ROM可以是掩码编程ROM、可编程ROM(Programmable ROM,PROM)、可擦除PROM(Erasable PROM,EPROM)、电可擦除PROM(Electrically Erasable PROM,EEPROM)、电可改写ROM(ElectricallyAlterable ROM,EAROM)或闪存、或这些ROM中的两者或更多者的组合。本公开考虑了采用任何合适物理形式的大容量存储器1206。在适当的情况下,存储器1206可以包括促进处理器1202和存储器1206之间的通信的一个或多个存储器控制单元。在适当的情况下,存储器1206可以包括一个或多个存储器1206。尽管本公开描述和示出了特定的存储器,但是本公开考虑了任何合适的存储器。
在特定实施例中,I/O接口1208包括这样的硬件、软件或这两者:该硬件、软件或这两者提供用于计算机系统1200与一个或多个I/O设备之间的通信的一个或多个接口。在适当的情况下,计算机系统1200可以包括这些I/O设备中的一个或多个I/O设备。这些I/O设备中的一个或多个I/O设备可以实现个人与计算机系统1200之间的通信。作为示例而非限制,I/O设备可以包括键盘、小键盘、传声器、监视器、鼠标、打印机、扫描仪、扬声器、静物摄像头、手写笔、平板电脑、触摸屏、追踪球、摄像机、另一合适的I/O设备、或这些I/O设备中的两者或更多者的组合。I/O设备可以包括一个或多个传感器。本公开考虑了任何合适的I/O设备和用于该I/O设备的任何合适的I/O接口1208。在适当的情况下,I/O接口1208可以包括使处理器1202能够驱动这些I/O设备中的一个或多个I/O设备的一个或多个设备或软件驱动器。在适当的情况下,I/O接口1208可以包括一个或多个I/O接口1208。尽管本公开描述和示出了特定的I/O接口,但本公开考虑了任何合适的I/O接口。
在特定实施例中,通信接口1210包括这样的硬件、软件或这两者:该硬件、软件或这两者提供用于计算机系统1200与一个或多个其他计算机系统1200或一个或多个网络之间的通信(例如,基于数据包的通信)的一个或多个接口。作为示例而非限制,通信接口1210可以包括用于与以太网或其他基于线路的网络进行通信的网络接口控制器(networkinterface controller,NIC)或网络适配器,或用于与诸如WI-FI网络等无线网络进行通信的无线NIC(wireless NIC,WNIC)或无线适配器。本公开考虑了任何合适的网络和用于该网络的任何合适的通信接口1210。作为示例而非限制,计算机系统1200可以与如下的网络进行通信:自组网、个域网(personal area network,PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)、或互联网的一个或多个部分、或这些网络中的两者或更多者的组合。这些网络中的一种或多种网络的一个或多个部分可以是有线的或无线的。作为示例,计算机系统1200可以与如下的网络进行通信:无线PAN(wireless PAN,WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信系统(Global System for MobileCommunications,GSM)网络)、或其他合适的无线网络、或这些网络中的两者或更多者的组合。在适当的情况下,计算机系统1200可以包括用于这些网络中的任何网络的任何合适的通信接口1210。在适当情况下,通信接口1210可以包括一个或多个通信接口1210。尽管本公开描述并示出了特定的通信接口,但是本公开考虑了任何合适的通信接口。
在特定实施例中,总线1212包括将计算机系统1200的多个部件彼此耦接的硬件、软件或这两者。作为示例而非限制,总线1212可以包括:加速图形端口(AcceleratedGraphics Port,AGP)或其他图形总线、增强型工业标准体系结构(Enhanced IndustryStandard Architecture,EISA)总线、前端总线(front-side bus,FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准体系结构(Industry Standard Architecture,ISA)总线、无限带宽(INFINIBAND)互连、低引脚计数(low-pin-count,LPC)总线、内存总线、微通道结构(Micro Channel Architecture,MCA)总线、外围部件互连(Peripheral ComponentInterconnect,PCI)总线、高速外围部件互联(PCI-Express,PCIe)总线、串行高级技术附件(serial advanced technology attachment,SATA)总线、视频电子标准协会局域(VideoElectronics Standards Association local,VLB)总线、或另一合适的总线、或这些总线中的两者或更多者的组合。在适当的情况下,总线1212可以包括一条或多条总线1212。尽管本公开描述和示出了特定的总线,但本公开考虑了任何合适的总线或互连件。
在本文中,在适当的情况下,一种或多种计算机可读非暂态存储介质可以包括:一个或多个基于半导体的集成电路(integrated circuit,IC)或其他IC(例如,现场可编程门阵列(field-programmable gate array,FPGA)或专用IC(application-specific IC,ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(hybrid hard drive,HHD)、光盘、光盘驱动器(optical disc drive,ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器、磁带、固态驱动器(solid-state drive,SSD)、RAM驱动器、安全数字卡(SECURE DIGITAL card)或安全数字驱动器、任何其他合适的计算机可读非暂态存储介质、或这些存储介质中的两者或更多者的任何合适的组合。在适当的情况下,计算机可读非暂态存储介质可以是易失性的、非易失性的、或易失性与非易失性的组合。
其他参数
在本文中,除非另有明确说明或上下文另有说明,否则“或”是包含而非排他性的。因此,在本文中,除非另有明确说明或上下文另有说明,否则“A或B”意指“A、B、或这两者”。此外,除非另有明确说明或上下文另有说明,否则“和”是共同的和单独的。因此,在本文中,除非另有明确说明或上下文另有说明,否则“A和B”意指“A和B,共同地或单独地”。
本公开的范围包括对本文中所描述或所示出的示例实施例的所有改变、替代、变化、变换和修改,本领域普通技术人员将理解这些改变、替代、变化、变换和修改。本公开的范围不限于本文所描述或所示出的示例实施例。此外,尽管本公开将本文中的各个实施例描述并示出为包括特定的部件、元件、特征、功能、操作、或步骤,但是这些实施例中的任何实施例可以包括本领域普通技术人员将理解的、本文中任何地方所描述或所示出的部件、元件、特征、功能、操作、或步骤中的任何的任何组合或排列。此外,在所附权利要求中对适用于、被布置为、能够、被配置为、使能够、能被操作、或可被操作以执行特定功能的装置或系统、或装置或系统中的部件的引用包括该装置、系统、部件,无论该装置、系统、部件或该特定功能是否被激活、开启或解锁,只要该装置、系统或部件被如此适用于、被布置为、能够、被配置为、使能够、能被操作或可被操作。另外,尽管本公开将特定实施例描述或示出为提供特定优点,但是特定实施例可以不提供这些优点,或可以提供这些优点中的一些或全部。

Claims (15)

1.一种方法,包括:由客户端系统:
从与第一用户相关联的所述客户端系统访问由所述客户端系统的一个或多个传感器采集到的一个或多个传感器信号,其中,所述客户端系统包括多个传感器,并且其中,所述一个或多个传感器信号是基于一个或多个级联模型策略从所述一个或多个传感器访问的,其中,每个级联模型策略利用与每个传感器相关联的各自成本或各自相关性中的一者或两者;
基于一个或多个机器学习模型和所述一个或多个传感器信号,检测与所述第一用户的活动相关联的所述第一用户的上下文的变化,其中,所述第一用户的上下文的变化满足与所述活动相关联的触发条件;以及
响应于所检测到的所述第一用户的上下文的变化,通过所述客户端系统的一个或多个摄像头自动采集视觉数据。
2.根据权利要求1所述的方法,其中,所述视觉数据包括所述活动的一个或多个时刻,其中,所述一个或多个时刻中的每个时刻与高于阈值兴趣度的兴趣度相关联。
3.根据权利要求2所述的方法,还包括:
基于所述一个或多个机器学习模型和所述一个或多个传感器信号,确定对所述一个或多个时刻中的每个时刻的所述兴趣度高于所述阈值兴趣度。
4.根据权利要求3所述的方法,其中,所述一个或多个机器学习模型中的一个或多个基于与多个活动的多个时刻相对应的多个传感器信号而被训练,其中,所述多个传感器信号中的每个传感器信号与预定兴趣度相关联。
5.根据权利要求1所述的方法,其中,所述视觉数据被存储为一个或多个媒体数据文件,其中,所述一个或多个媒体数据文件中的每个媒体数据文件包括图像或视频中的一者或两者。
6.根据权利要求1所述的方法,还包括:
基于所述一个或多个机器学习模型和所述一个或多个传感器信号,检测所述活动的结束;
基于在所述活动期间采集到的所述视觉数据,生成基于对所述视觉数据的概括的集锦视频,其中,所述概括是基于所述视觉数据的兴趣度的;以及
在所述客户端系统处,向所述第一用户呈现所述集锦视频。
7.根据权利要求1所述的方法,其中,所述一个或多个传感器信号包括以下中的一者或多者:惯性测量单元(IMU)信号、音频信号、GPS信号、肌电(EMG)信号或视觉信号。
8.根据权利要求1所述的方法,其中,每个级联模型策略利用与每个传感器相关联的各自成本,并且其中,每个级联模型策略指定:如果第一成本低于第二成本,则在访问来自与所述第二成本相关联的第二传感器的第二传感器信号之前,访问来自与所述第一成本相关联的第一传感器的第一传感器信号。
9.根据权利要求1所述的方法,其中,检测与所述第一用户的所述活动相关联的所述第一用户的上下文的变化包括:
基于所述一个或多个机器学习模型和所述多个传感器中的第一传感器的第一传感器信号,计算第一置信度分数,所述第一置信度分数关联于与所述第一用户的所述活动相关联的所述第一用户的上下文的变化;
确定所述第一置信度分数是否大于阈值置信度分数;以及
基于对所述第一置信度分数是否大于所述阈值分数的所述确定:
如果所述第一置信度分数大于所述阈值分数,则确认与所述第一用户的所述活动相关联的所述第一用户的上下文的变化;
否则:
从与所述第一用户相关联的所述客户端系统访问所述多个传感器中的第二传感器的第二传感器信号,其中,所述第二传感器信号是基于所述一个或多个级联模型策略访问的;以及
基于所述一个或多个机器学习模型和所述第二传感器信号,计算第二置信度分数,所述第二置信度分数关联于与所述第一用户的所述活动相关联的所述第一用户的上下文的变化,其中,如果所述第二置信度分数大于所述阈值分数,则确认与所述第一用户的活动相关联的所述第一用户的上下文的变化。
10.根据权利要求1所述的方法,其中,每个级联模型策略利用与每个传感器相关联的各自相关性,并且其中,每个级联模型策略指定:如果第一相关性高于第二相关性,则在访问来自与所述第二相关性相关联的第二传感器的第二传感器信号之前,访问来自与所述第一相关性相关联的第一传感器的第一传感器信号;并且可选地,
其中,与每个传感器相关联的各自相关性是基于所述活动来确定的。
11.根据权利要求1所述的方法,还包括:
在所述客户端系统处,接收对采集与所述活动相关联的视觉数据的用户请求;以及
基于所述用户请求确定所述触发条件。
12.根据权利要求1所述的方法,其中,检测与所述第一用户的所述活动相关联的所述第一用户的上下文的变化包括:
基于所述一个或多个机器学习模型和所述一个或多个传感器信号,计算第一置信度分数,所述第一置信度分数关联于与所述第一用户的所述活动相关联的所述第一用户的上下文的变化;
确定所述第一置信度分数是否大于阈值分数;以及
基于对所述第一置信度分数是否大于所述阈值分数的所述确定:
如果所述第一置信度分数大于所述阈值分数,则确认与所述第一用户的所述活动相关联的所述第一用户的上下文的变化;
否则:
从与所述第一用户相关联的所述客户端系统访问由所述客户端系统的所述多个传感器采集到的多个传感器信号,其中,所述多个传感器信号是基于所述一个或多个级联模型策略访问的;以及
基于所述一个或多个机器学习模型和所述多个传感器信号,计算第二置信度分数,所述第二置信度分数关联于与所述第一用户的所述活动相关联的所述第一用户的上下文的变化,其中,如果所述第二置信度分数大于所述阈值分数,则确认与所述第一用户的所述活动相关联的所述第一用户的上下文的变化。
13.根据权利要求1所述的方法,其中,所述一个或多个级联模型策略为多个活动中的每个活动指定访问来自所述多个传感器的传感器信号的特定顺序,其中,来自所述多个传感器的附加传感器基于与检测所述上下文的变化相关联的置信度分数而被访问。
14.一种或多种计算机可读非暂态存储介质,所述一种或多种计算机可读非暂态存储介质包含软件,所述软件在被执行时能够操作以执行如权利要求1至13中任一项所述的方法步骤。
15.一种系统,包括:一个或多个处理器;以及非暂态存储器,所述非暂态存储器耦接到所述一个或多个处理器,所述非暂态存储器包括能够由所述一个或多个处理器执行的指令,所述一个或多个处理器在执行所述指令时能够操作以执行如权利要求1至13中任一项所述的方法步骤。
CN202280030451.2A 2021-04-21 2022-04-21 由助理系统自动采集有趣时刻 Pending CN117396836A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US63/177,812 2021-04-21
US17/394,096 US20220366170A1 (en) 2021-04-21 2021-08-04 Auto-Capture of Interesting Moments by Assistant Systems
US17/394,096 2021-08-04
PCT/US2022/025675 WO2022226140A1 (en) 2021-04-21 2022-04-21 Auto-capture of interesting moments by assistant systems

Publications (1)

Publication Number Publication Date
CN117396836A true CN117396836A (zh) 2024-01-12

Family

ID=89470708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280030451.2A Pending CN117396836A (zh) 2021-04-21 2022-04-21 由助理系统自动采集有趣时刻

Country Status (1)

Country Link
CN (1) CN117396836A (zh)

Similar Documents

Publication Publication Date Title
US11238239B2 (en) In-call experience enhancement for assistant systems
US20210400235A1 (en) Proactive In-Call Content Recommendations for Assistant Systems
CN114930363A (zh) 为助理系统生成主动内容
US11861315B2 (en) Continuous learning for natural-language understanding models for assistant systems
US20220374645A1 (en) Task Execution Based on Real-world Text Detection for Assistant Systems
CN116018791A (zh) 在助手系统中使用单个请求进行多人呼叫
US20220366904A1 (en) Active Listening for Assistant Systems
US20230128422A1 (en) Voice Command Integration into Augmented Reality Systems and Virtual Reality Systems
US20220279051A1 (en) Generating Proactive Reminders for Assistant Systems
EP4327200A1 (en) Auto-capture of interesting moments by assistant systems
WO2022226244A1 (en) Multi-device mediation for assistant systems
CN116888661A (zh) 用于辅助系统的包括非拉丁或不可解析内容项的通信内容的读出
US20240054156A1 (en) Personalized Labeling for User Memory Exploration for Assistant Systems
US11983329B1 (en) Detecting head gestures using inertial measurement unit signals
CN117396836A (zh) 由助理系统自动采集有趣时刻
US20230353652A1 (en) Presenting Personalized Content during Idle Time for Assistant Systems
US20230419952A1 (en) Data Synthesis for Domain Development of Natural Language Understanding for Assistant Systems
US20230236555A1 (en) Event-Based Reasoning for Assistant Systems
EP4343493A1 (en) Presenting attention states associated with voice commands for assistant systems
CN117396837A (zh) 助理系统的多设备调解
CN117396838A (zh) 助理系统的基于真实世界文本检测的任务执行
CN117377942A (zh) 助理系统的主动收听
WO2022187480A1 (en) Text editing using voice and gesture inputs for assistant systems
CN116897353A (zh) 用于辅助系统的使用语音和手势输入的文本编辑

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination