CN114930363A - 为助理系统生成主动内容 - Google Patents
为助理系统生成主动内容 Download PDFInfo
- Publication number
- CN114930363A CN114930363A CN202080055180.7A CN202080055180A CN114930363A CN 114930363 A CN114930363 A CN 114930363A CN 202080055180 A CN202080055180 A CN 202080055180A CN 114930363 A CN114930363 A CN 114930363A
- Authority
- CN
- China
- Prior art keywords
- user
- active
- particular embodiments
- way
- suggestions
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 121
- 230000004044 response Effects 0.000 claims description 99
- 230000015654 memory Effects 0.000 claims description 76
- 238000012384 transportation and delivery Methods 0.000 claims description 25
- 230000000007 visual effect Effects 0.000 claims description 22
- 238000010801 machine learning Methods 0.000 claims description 20
- 230000005236 sound signal Effects 0.000 claims description 17
- 230000009471 action Effects 0.000 description 135
- 230000008569 process Effects 0.000 description 71
- 239000013598 vector Substances 0.000 description 59
- 239000003795 chemical substances by application Substances 0.000 description 48
- 230000000875 corresponding effect Effects 0.000 description 47
- 238000004891 communication Methods 0.000 description 42
- 230000006870 function Effects 0.000 description 38
- 230000003993 interaction Effects 0.000 description 19
- 238000012549 training Methods 0.000 description 19
- 230000000694 effects Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 14
- 230000008901 benefit Effects 0.000 description 13
- 230000006855 networking Effects 0.000 description 13
- 238000004458 analytical method Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 10
- 230000004913 activation Effects 0.000 description 9
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 8
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 8
- 238000013475 authorization Methods 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000013518 transcription Methods 0.000 description 8
- 230000035897 transcription Effects 0.000 description 8
- 239000004984 smart glass Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000012790 confirmation Methods 0.000 description 6
- 238000005457 optimization Methods 0.000 description 6
- 238000011524 similarity measure Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 230000000116 mitigating effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 239000000047 product Substances 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 230000001755 vocal effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 239000011521 glass Substances 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 230000003190 augmentative effect Effects 0.000 description 3
- 238000003058 natural language processing Methods 0.000 description 3
- 238000012552 review Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 230000003595 spectral effect Effects 0.000 description 3
- 230000000153 supplemental effect Effects 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000003542 behavioural effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012512 characterization method Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005352 clarification Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000001143 conditioned effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000001815 facial effect Effects 0.000 description 2
- 238000011835 investigation Methods 0.000 description 2
- 235000012054 meals Nutrition 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000012015 optical character recognition Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- UHDGCWIWMRVCDJ-CCXZUQQUSA-N Cytarabine Chemical compound O=C1N=C(N)C=CN1[C@H]1[C@@H](O)[C@H](O)[C@@H](CO)O1 UHDGCWIWMRVCDJ-CCXZUQQUSA-N 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 240000008415 Lactuca sativa Species 0.000 description 1
- 235000019687 Lamb Nutrition 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- UCJGJABZCDBEDK-UHFFFAOYSA-N bazedoxifene Chemical compound C=1C=C(OCCN2CCCCCC2)C=CC=1CN1C2=CC=C(O)C=C2C(C)=C1C1=CC=C(O)C=C1 UCJGJABZCDBEDK-UHFFFAOYSA-N 0.000 description 1
- 229960000817 bazedoxifene Drugs 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 238000005094 computer simulation Methods 0.000 description 1
- 238000002939 conjugate gradient method Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000001073 episodic memory Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000011478 gradient descent method Methods 0.000 description 1
- 230000001976 improved effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 235000013550 pizza Nutrition 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000012797 qualification Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 235000012045 salad Nutrition 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003997 social interaction Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000012358 sourcing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000011144 upstream manufacturing Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/109—Time management, e.g. calendars, reminders, meetings or time accounting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
- G06N5/022—Knowledge engineering; Knowledge acquisition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
- G06F3/167—Audio in a user interface, e.g. using voice commands for navigating, audio feedback
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
- G06F9/453—Help systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/02—Reservations, e.g. for tickets, services or events
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06311—Scheduling, planning or task assignment for a person or group
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
- H04L67/306—User profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/535—Tracking the activity of the user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/75—Indicating network or usage conditions on the user display
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/53—Network services using third party service providers
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Strategic Management (AREA)
- Entrepreneurship & Innovation (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Human Computer Interaction (AREA)
- Artificial Intelligence (AREA)
- Development Economics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Computer Hardware Design (AREA)
- Primary Health Care (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- User Interface Of Digital Computer (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种系统、介质和方法包括:接收与主动触发器相关联的一个或多个输入,该主动触发器与第一用户相关联;基于一个或多个主动策略来确定第一用户是否有资格接收主动建议;基于一个或多个输入和与第一用户相关联的用户上下文数据,生成一个或多个主动建议;基于与第一用户相关联的任务历史数据来选择一个或多个主动建议;以及向与第一用户相关联的客户端系统发送用于向第一用户呈现主动内容的指令,其中主动内容包括所选择的主动建议。
Description
优先权
本申请要求于2020年8月28日提交的美国非临时专利申请序列号17/006,260、于2019年10月18日提交的美国临时专利申请号62/923,342和于2020年6月25日提交的美国临时专利申请号的权益。以上专利申请的公开内容通过引用并入本文。
技术领域
本公开大体上涉及网络环境内的数据库和文件管理,并且具体地涉及一种用于智能助理系统的硬件和软件。
背景技术
助理系统可以基于用户输入、位置感知和从各种在线资源(诸如天气状况、交通拥堵、新闻、股票价格、用户调度、零售价格等)访问信息的能力的组合代表用户来提供信息或服务。用户输入可以包括文本(例如在线聊天),尤其是在即时消息应用或其他应用、语音、图像、运动或它们的组合中。助理系统可以执行服务台职员类型的服务(例如进行晚餐预订、购买事件门票、进行旅行布置)或基于用户输入提供信息。助理系统还可以基于在线信息和事件执行管理或数据处置任务,而无需用户发起或交互。可以由助理系统执行的那些任务的示例可以包括调度管理(例如向晚餐约会发送用户由于交通状况迟到的提示信号,更新双方的调度,并且改变餐厅预订时间)。助理系统可以通过计算设备、应用编程接口(API)和用户设备上的应用剧增的组合来启用。
可以包括社交网络网站的社交网络系统可以使其用户(诸如个人或组织)能够通过该网络彼此交互并且与其互动并。利用来自用户的输入,社交网络系统可以在社交网络系统中创建并且存储与用户相关联的用户简档。用户简档可以包括人口统计信息、通信信道信息和关于用户的个人兴趣的信息。利用来自用户的输入,社交网络系统还可以创建并且存储用户与社交网络系统的其他用户的关系记录,以及提供服务(例如简档/新闻提要帖子、照片共享、事件组织、消息传递、游戏或广告)以促进用户之间的社交交互。
社交网络系统可以通过一个或多个网络向用户的移动设备或其他计算设备发送与其服务相关的内容或消息。用户还可以在用户的移动设备或其他计算设备上安装软件应用,以访问用户的用户简档和社交网络系统内的其他数据。社交网络系统可以生成个性化的内容对象集合以显示给用户,诸如连接至该用户的其他用户的聚合故事的新闻提要。
发明内容
在特定实施例中,助理系统可以辅助用户获得信息或服务。助理系统可以使用户能够在有状态和多回合会话中使用多模用户输入(诸如语音、文本、图像、视频、运动)与它交互,以获得辅助。作为示例而不通过限制,助理系统可以支持音频(口头)输入和非口头输入(诸如视觉、位置、手势、运动或混合/多模输入)。助理系统可以创建和存储包括与用户相关联的个人和上下文信息的用户简档。在特定实施例中,助理系统可以使用自然语言理解来分析用户输入。该分析可以基于用户的用户简档,以进行更加个性化和上下文意识的理解。助理系统可以基于分析解析与用户输入相关联的实体。在特定实施例中,助理系统可以与不同的代理交互,以获得与解析的实体相关联的信息或服务。助理系统可以通过使用自然语言生成针对用户生成关于信息或服务的响应。通过与用户的交互,助理系统可以使用对话管理技术来管理和推进与用户的会话流程。在特定实施例中,助理系统还可以通过对信息进行汇总来辅助用户有效且高效地消化所获得的信息。助理系统还可以通过提供帮助用户与在线社交网络交互的工具(例如创建帖子、评论、消息)来辅助用户更多地参与在线社交网络。助理系统可以附加地辅助用户管理不同的任务,诸如追踪事件。在特定实施例中,助理系统可以在与用户相关的时间在没有用户输入的情况下基于用户简档主动执行与用户兴趣和偏好相关的任务。在特定实施例中,助理系统可以检查隐私设置,以确保根据用户的隐私设置允许访问用户的简档或其他用户信息并且执行不同的任务。
在特定实施例中,助理系统可以经由建立于客户端侧过程和服务器侧过程的混合架构来辅助用户。客户端侧过程和服务器侧过程可以是用于处理用户输入并且向用户提供辅助的两个并行工作流。在特定实施例中,客户端侧过程可以在与用户相关联的客户端系统上本地执行。相比之下,服务器侧过程可以在一个或多个计算系统上远程执行。在特定实施例中,客户端系统上的仲裁器可以协调接收用户输入(例如音频信号),确定是否使用客户端侧过程、服务器侧过程或两者来响应用户输入,并且分析来自每个过程的处理结果。仲裁器可以基于上述分析指示客户端侧或服务器侧的代理执行与用户输入相关联的任务。执行结果还可以被渲染为客户端系统的输出。通过利用客户端侧和服务器侧过程,助理系统可以有效地辅助用户优化计算资源的使用,同时保护用户隐私并且增强安全性。
在特定实施例中,助理系统可以向用户提供主动内容建议,这可以由多种多模信号触发。主动内容也可以作为响应于用户请求的后续动作提供,这可以被认为是一种半主动用例(即,它可能不是完全主动的,因为它响应用户请求)。主动内容可以包括建议的查询、建议的后续行动、补充信息、调查或任何其他合适的内容。当作为后续动作而被提供时,主动内容可以通过在用户任务完成后扩展对话来丰富用户对话。作为示例而不通过限制,用户可以询问“现在几点了?”。助理系统可以回复“现在是上午11:30”。助理系统还可以提供建议的后续动作(诸如“您想看看您的日历吗?”)或补充信息(如“您中午去看牙医需要15分钟”)。作为另一示例而不通过限制,用户可能会询问“现在正在播放什么歌曲?”,其中用户请求的任务可能是[IN:get_track_info_music()]。助理系统可能会回复“这是Outkast的Hey Ya”,这标记了任务的完成。助理系统还可以主动询问“您想要将这首歌添加到您的收藏夹吗?”,这对应于建议的后续动作(即,[IN:add_to_favorites()])。任务的完成、用户上下文的变化或相关的多模信号可以触发主动策略。基于主动策略,助理系统可以确定将执行什么种类的主动内容。助理系统可以采用与用户的先前交互或关于用户的先前知识来确定什么主动内容是合适的。助理系统可以基于对话的每个回合的用户反馈或在多模上下文中生成主动内容链,其中助理系统可以响应于用户与主动内容或动态多模信号交互而继续主动提供内容。作为示例而不通过限制,助理系统可以充当推荐器系统,其中助理系统在每个回合结束时提供新推荐。通过主动内容,助理系统可以提供直接的增长机会(例如用户教育)和用户满意度测量以及可以被用于与助理系统相关联的进一步特征或增强的核心技术。尽管本公开描述了由特定系统以特定方式生成特定主动内容,但本公开设想由任何合适系统以任何合适方式生成任何合适的主动内容。
在特定实施例中,助理系统可以接收与主动触发器相关联的一个或多个输入,该主动触发器与第一用户相关联。助理系统可以基于一个或多个主动策略来确定第一用户是否有资格接收主动建议。助理系统然后可以基于一个或多个输入以及与第一用户相关联的用户上下文数据来生成一个或多个主动建议。在特定实施例中,助理系统可以基于与第一用户相关联的任务历史数据来选择一个或多个主动建议。助理系统还可以向与第一用户相关联的客户端系统发送用于向第一用户呈现主动内容的指令。主动内容可以包括所选的主动建议。
针对实现提供主动建议的目标可能存在某些技术挑战。一个技术挑战可以包括准确地确定向用户提供哪些主动建议。由本文公开的实施例提出以解决以上挑战的解决方案是使用用户上下文、对话上下文、用户任务历史、用户记忆和知识图谱来确定主动建议,因为这些不同类型的数据可以保证推荐的主动建议是相关的并且对用户是有趣的。另一技术挑战可以包括不让用户过载不想要的建议。由本文公开的实施例提出以解决该挑战的解决方案包括基于用户上下文数据、任务历史数据或用户记忆使用对话策略来确定用户是否有资格获得主动建议,因为这种对话策略可以有效地使用当前信息以及与用户相关的历史信息,以评估用户是否想要主动建议。另一技术挑战可以包括在最适当的条件下向用户提供主动内容。由本文公开的实施例提出以解决该挑战的解决方案包括基于用户上下文数据、用户记忆或知识图谱来确定主动内容的递送调度,因为这些类型的数据可以捕获用户可能愿意使用主动内容提示的个人偏好。
本文公开的某些实施例可以提供一个或多个技术优点。实施例的技术优点可以包括通过响应于不同类型的多模信号自动向用户提供主动建议来增加用户与助理系统的接合程度。实施例的另一技术优点可以包括辅助用户学习助理系统能够掌握的新技能,因为助理系统可以基于历史数据准确地确定用户还没有探索过哪些技能,并且为用户提供与这种技能相关的建议。本文公开的某些实施例可以不提供以上技术优点,提供以上技术优点中的一些或全部。鉴于本公开的附图、描述和权利要求,一种或多种其他技术优点对本领域技术人员可以是十分明显的。
本文公开的实施例仅为示例,并且本公开的范围不被限于它们。特定实施例可以包括本文公开的实施例的所有、一些组件、元件、特征、功能、操作或步骤,或者不包括这些。根据本发明的实施例在涉及方法、存储介质、系统和计算机程序产品的所附权利要求中特别公开,其中在一个权利要求类别(例如方法)中提及的任何特征也可以在另一权利要求类别(例如系统)中要求保护。所附权利要求中返回的依赖性或引用仅出于正式原因选择。然而,因故意引用回任何先前权利要求(特别是多个依赖性)而产生的任何主题也可以被要求保护,使得权利要求及其特征的任何组合被公开,并且可以被要求保护,而不管在所附权利要求中选择的依赖性如何。可以要求保护的主题不仅包括所附权利要求中陈述的特征的组合,还包括权利要求中的特征的任何其他组合,其中权利要求中提及的每个特征可以与任何其他特征或者权利要求中的其他特征的组合组合。此外,本文描述或描绘的任何实施例和特征可以在单独的权利要求中和/或与本文描述或描绘的任何实施例或特征或与所附权利要求的任何特征的任何组合中要求保护。
附图说明
图1图示了与助理系统相关联的示例网络环境。
图2图示了助理系统的示例架构。
图3图示了助理系统的服务器侧过程的示例流程图。
图4图示了由助理系统处理用户输入的示例流程图。
图5图示了用于提供主动建议的示例架构。
图6A图示了响应于检查时间的用户请求的示例主动建议。
图6B图示了响应于检查时间的用户请求的另一示例主动建议。
图7A图示了响应于拍照的用户请求的示例主动建议。
图7B图示了响应于拍照的用户请求的另一示例主动建议。
图8图示了响应于视觉信号的示例主动建议。
图9图示了响应于音频信号的示例主动建议。
图10图示了主动建议链的示例。
图11图示了用于提供主动建议的示例方法。
图12图示了示例社交图谱。
图13图示了嵌入空间的示例视图。
图14图示了示例人工神经网络。
图15图示了示例计算机系统。
具体实施方式
系统概述
图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的一个或多个部分可以包括自组织网络、内联网、外联网、虚拟私有网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共切换电话网络(PSTN)的一部分、蜂窝电话网络或这些中的两个或多个的组合。网络110可以包括一个或多个网络110。
链路150可以将客户端系统130、助理系统140、社交网络系统160和第三方系统170连接至通信网络110或彼此连接。本公开设想了任何合适的链路150。在特定实施例中,一个或多个链路150包括一个或多个有线(诸如例如数字用户线(DSL)或电缆数据服务接口规范(DOCSIS))、无线(诸如例如Wi-Fi或全球微波接入互操作性(WiMAX))或光学(诸如例如同步光学网络(SONET)或同步数字体系(SDH))链路。在特定实施例中,一个或多个链路150分别包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路150或者这种链路150中的两个或多个的组合。在整个网络环境100中,链路150不必一定相同。一个或多个第一链路150可以在一个或多个方面与一个或多个第二链路150不同。
在特定实施例中,客户端系统130可以是包括硬件、软件或嵌入式逻辑组件或者这种组件的两个或多个的组合的电子设备,并且能够执行由客户端系统130实施或支持的适当功能。作为示例而不通过限制,客户端系统130可以包括计算机系统,诸如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、相机、个人数字助理(PDA)、手持式电子设备、蜂窝电话、智能手机、智能扬声器、虚拟现实(VR)耳机、增强现实(AR)智能眼镜、其他合适的电子设备或其任何合适的组合。在特定实施例中,客户端系统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浏览器132,并且可以具有一个或多个附加组件(add-on)、插件(plug-in)或其他扩展。客户端系统130处的用户可以键入统一资源定位符(URL)或将web浏览器132定向到特定服务器(诸如服务器162或与第三方系统170相关联的服务器)的其他地址,并且web浏览器132可以生成超文本传送协议(HTTP)请求并将该HTTP请求传递给服务器。服务器可以接受HTTP请求,并且响应于HTTP请求将一个或多个超文本标记语言(HTML)文件传递给客户端系统130。客户端系统130可以基于来自服务器的HTML文件渲染web界面(例如网页)以呈现给用户。本公开设想了任何合适的源文件。作为示例而不通过限制,web界面可以根据特定需要从HTML文件、可扩展超文本标记语言(XHTML)文件,或可扩展标记语言(XML)文件渲染。这种界面还可以执行脚本、标记语言和脚本的组合等。在本文中,在适当的情况下,对web界面的引用涵盖一个或多个对应的源文件(浏览器可以使用它来渲染web界面),反之亦然。
在特定实施例中,客户端系统130可以包括安装在客户端系统130上的社交网络应用134。客户端系统130处的用户可以使用社交网络应用134来访问在线社交网络。客户端系统130处的用户可以使用社交网络应用134来与用户的社交联系(例如朋友、关注者、关注的账号、联系人等)进行通信。客户端系统130处的用户还可以使用社交网络应用134来与在线社交网络上的多个内容对象(例如帖子、新闻文章、短暂内容等)交互。作为示例而不通过限制,用户可以使用社交网络应用134浏览热门话题和突发新闻。
在特定实施例中,客户端系统130可以包括助理应用136。客户端系统130处的用户可以使用助理应用136来与助理系统140交互。在特定实施例中,助理应用136可以包括独立应用。在特定实施例中,助理应用136可以被集成到社交网络应用134或另一合适的应用(例如消息传递应用)中。在特定实施例中,助理应用136还可以被集成到客户端系统130、助理硬件设备或任何其他合适的硬件设备中。在特定实施例中,助理应用136可以经由web浏览器132访问。在特定实施例中,用户可以经由不同模态提供输入。作为示例而不通过限制,模态可以包括音频、文本、图像、视频、运动、定向等。助理应用136可以将用户输入传递给助理系统140。基于用户输入,助理系统140可以生成响应。助理系统140可以将生成的响应发送给助理应用136。助理应用136然后可以在客户端系统130处向用户呈现响应。呈现的响应可以基于不同的模态,诸如音频、文本、图像和视频。作为示例而不通过限制,用户可以通过对着客户端系统130的麦克风说话来向助理应用136口头上地询问交通信息(即,经由音频模态)。助理应用136然后可以将请求传递给助理系统140。助理系统140可以相应地生成响应,并且将其发送回助理应用136。助理应用136还可以在客户端系统130的显示器上以文本和/或图像的形式向用户呈现响应。
在特定实施例中,助理系统140可以辅助用户从不同源取回信息。助理系统140还可以辅助用户从不同的服务提供方请求服务。在特定实施例中,助理系统140可以经由客户端系统130中的助理应用136接收对信息或服务的用户请求。助理系统140可以使用自然语言理解来基于用户的简档和其他相关信息来分析用户请求。分析的结果可以包括与在线社交网络相关联的不同实体。助理系统140然后可以取回与这些实体相关联的信息或请求服务。在特定实施例中,当为用户取回信息或请求服务时,助理系统140可以与社交网络系统160和/或第三方系统170交互。在特定实施例中,助理系统140可以使用自然语言生成技术为用户生成个性化的通信内容。个性化通信内容可以包括,例如,取回的信息或所请求服务的状态。在特定实施例中,助理系统140可以使用户能够通过使用对话管理技术在有状态和多回合会话中就信息或服务与其交互。助理系统140的功能在下面的图2的讨论中更详细地描述。
在特定实施例中,社交网络系统160可以是能够托管在线社交网络的网络可寻址计算系统。社交网络系统160可以生成、存储、接收和发送社交网络数据,诸如例如用户简档数据、概念简档数据、社交图谱信息或与在线社交网络相关的其他合适的数据。社交网络系统160可以由网络环境100的其他组件直接或经由网络110访问。作为示例而不通过限制,客户端系统130可以使用web浏览器132或与社交网络系统160相关联的本地应用(例如移动社交网络应用、消息传递应用、另一合适的应用或其任何组合)直接或经由网络110访问社交网络系统160。在特定实施例中,社交网络系统160可以包括一个或多个服务器162。每个服务器162可以是跨越多个计算机或多个数据中心的单一服务器或分布式服务器。服务器162可以是各种类型,诸如例如但不限于web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、用于执行本文描述的功能或过程的另一合适的服务器或其任何组合。在特定实施例中,每个服务器162可以包括硬件、软件或嵌入式逻辑组件或这种组件中的两个或多个的组合,用于执行由服务器162实施或支持的适当功能。在特定实施例中,社交网络系统160可以包括一个或多个数据存储库164。数据存储库164可以被用于存储各种类型的信息。在特定实施例中,存储在数据存储库164中的信息可以根据具体数据结构来组织。在特定实施例中,每个数据存储库164可以是关系数据库、柱状数据库、相关性数据库或其他合适的数据库。尽管本公开描述或图示了特定类型的数据库,但本公开设想任何合适类型的数据库。特定实施例可以提供使客户端系统130、社交网络系统160、助理系统140或第三方系统170能够管理、取回、修改、添加或删除存储在数据存储库164中的信息的界面。
在特定实施例中,社交网络系统160可以在一个或多个数据存储库164中存储一个或多个社交图谱。在特定实施例中,社交图谱可以包括多个节点—其可以包括多个用户节点(每个对应于特定的用户)或多个概念节点(每个对应于特定的概念)—以及连接节点的多个边缘。社交网络系统160可以向在线社交网络的用户提供与其他用户通信和交互的能力。在特定实施例中,用户可以经由社交网络系统160加入在线社交网络,然后将联系(例如关系)添加到他们想要连接至的社交网络系统160的多个其他用户。在本文中,术语“朋友”可以指社交网络系统160的任何其他用户,用户已经经由社交网络系统160与其形成联系、关联或关系。
在特定实施例中,社交网络系统160可以向用户提供对由社交网络系统160支持的各种类型的物品或对象采取动作的能力。作为示例而不通过限制,物品和对象可以包括社交网络系统160的用户可能所属的群组或社交网络、用户可能感兴趣的事件或日历条目、用户可能使用的基于计算机的应用、允许用户经由服务购买或销售物品的交易、与用户可能执行的广告的交互或其他合适的物品或对象。用户可以与能够在社交网络系统160中或由第三方系统170的外部系统表示的任何事物交互,第三方系统170与社交网络系统160分离并且经由网络110耦合至社交网络系统160。
在特定实施例中,社交网络系统160可以能够链接各种实体。作为示例而不通过限制,社交网络系统160可以使用户能够彼此交互并且从第三方系统170或其他实体接收内容,或者允许用户通过应用程序接口(API)或其他通信信道与这些实体交互。
在特定实施例中,第三方系统170可以包括一种或多种类型的服务器、一个或多个数据存储库、一个或多个接口(包括但不限于API)、一个或多个web服务、一个或多个内容源、一个或多个网络或任何其他合适的组件,例如服务器可以与其通信。第三方系统170可以由与操作社交网络系统160的实体不同的实体操作。然而,在特定实施例中,社交网络系统160和第三方系统170可以彼此结合操作,以向社交网络系统160或第三方系统170的用户提供社交网络服务。在该意义上,社交网络系统160可以提供平台或主干,其他系统(诸如第三方系统170)可以使用其以对互联网上的用户提供社交网络服务和功能。
在特定实施例中,第三方系统170可以包括第三方内容对象提供方。第三方内容对象提供方可以包括一个或多个内容对象源,其可以被传递给客户端系统130。作为示例而不通过限制,内容对象可以包括关于用户感兴趣的事物或活动的信息,诸如例如电影放映时间、电影评论、餐厅评论、餐厅菜单、产品信息和评论或其他合适的信息。作为另一示例而不通过限制,内容对象可以包括激励内容对象,诸如优惠券、折扣票、礼券或其他合适的激励对象。在特定实施例中,第三方内容提供方可以使用一个或多个第三方代理来提供内容对象和/或服务。第三方代理可以是在第三方系统170上托管和执行的实施方式。
在特定实施例中,社交网络系统160还包括用户生成的内容对象,其可以增强用户与社交网络系统160的交互。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络系统160的任何内容。作为示例而不通过限制,用户将帖子从客户端系统130传递给社交网络系统160。帖子可以包括数据,诸如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容还可以由第三方通过诸如新闻提要或流等“通信渠道”添加到社交网络系统160。
在特定实施例中,社交网络系统160可以包括各种服务器、子系统、程序、模块、日志和数据存储库。在特定实施例中,社交网络系统160可以包括以下一项或多项:web服务器、动作记录器、API请求服务器、相关性和排列引擎、内容对象分类器、通知控制器、动作日志、第三方内容对象公开日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块、用户界面模块、用户简档存储库、联系存储库、第三方内容存储库或位置存储库。社交网络系统160还可以包括合适的组件,诸如网络接口、安全性机制、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的组件或其任何合适的组合。在特定实施例中,社交网络系统160可以包括用于存储用户简档的一个或多个用户简档存储库。用户简档库可以包括例如传记信息、人口统计信息、行为信息、社交信息或其他类型的描述信息,诸如工作经验、教育历史、爱好或偏好、兴趣、亲和力或位置。兴趣信息可以包括与一个或多个类别相关的兴趣。类别可以是通用的或具体的。作为示例而不通过限制,如果用户“喜欢”关于鞋子品牌的文章,则该类别可以是该品牌或者“鞋子”或“服装”的通用类别。联系存储库可以被用于存储关于用户的联系信息。联系信息可以指示具有类似或共同的工作经验、群组成员资格、爱好、教育历史或者以任何方式相关或共享共同属性的用户。联系信息还可以包括不同用户和内容(内部和外部)之间的用户定义的联系。web服务器可以被用于经由网络110将社交网络系统160链接至一个或多个客户端系统130或一个或多个第三方系统170。web服务器可以包括邮件服务器或用于在社交网络系统160和一个或多个客户端系统130之间接收和路由消息的其他消息传递功能。API请求服务器可以允许例如助理系统140或第三方系统170通过调用一个或多个API访问来自社交网络系统160的信息。动作记录器可以被用于从web服务器接收关于用户在社交网络系统160上或下的动作的通信。结合动作日志,第三方内容对象日志可以维持用户暴露于第三方内容对象。通知控制器可以向客户端系统130提供关于内容对象的信息。信息可以作为通知被推送给客户端系统130,或者信息可以响应于从客户端系统130接收到的请求而从客户端系统130拉取。授权服务器可以被用于实施社交网络系统160的用户的一个或多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何共享。授权服务器可以允许用户选择加入或选择退出使他们的动作由社交网络系统160记录或与其他系统(例如第三方系统170)共享,诸如例如通过设置适当的隐私设置。第三方内容对象存储库可以被用于存储从第三方接收的内容对象,诸如第三方系统170。位置存储库可以被用于存储从与用户相关联的客户端系统130接收的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息,来以通知的形式向用户提供相关广告。
助理系统
图2图示了助理系统140的示例架构。在特定实施例中,助理系统140可以辅助用户获得信息或服务。助理系统140可以使用户能够在有状态和多回合会话中使用多模用户输入(诸如语音、文本、图像、视频、运动)与它交互,以获得辅助。作为示例而不通过限制,助理系统140可以支持音频(口头)输入和非口头输入,诸如视觉、位置、手势、运动或混合/多模输入。助理系统140可以创建和存储包括与用户相关联的个人和上下文信息的用户简档。在特定实施例中,助理系统140可以使用自然语言理解来分析用户输入。该分析可以基于用户的用户简档,以进行更加个性化和上下文感知的理解。助理系统140可以基于分析解析与用户输入相关联的实体。在特定实施例中,助理系统140可以与不同的代理交互,以获得与解析的实体相关联的信息或服务。助理系统140可以通过使用自然语言生成为用户生成关于信息或服务的响应。通过与用户的交互,助理系统140可以使用对话管理技术来管理和转发与用户的会话流。在特定实施例中,助理系统140还可以通过对信息进行汇总来辅助用户有效且高效地消化所获得的信息。助理系统140还可以通过提供帮助用户与在线社交网络交互的工具(例如创建帖子、评论、消息)来辅助用户更多地参与在线社交网络。助理系统140可以附加地辅助用户管理不同的任务,诸如追踪事件。在特定实施例中,助理系统140可以在与用户相关的时间在没有用户输入的情况下基于用户简档主动执行与用户兴趣和偏好相关的预授权任务。在特定实施例中,助理系统140可以检查隐私设置,以确保根据用户的隐私设置允许访问用户的简档或其他用户信息并且执行不同的任务。关于辅助用户进行隐私设置的更多信息可以在于2018年11月6日提交的美国专利申请号16/182542中找到,其通过引用并入。
在特定实施例中,助理系统140可以经由建立于客户端侧过程和服务器侧过程的混合架构来辅助用户。客户端侧过程和服务器侧过程可以是用于处理用户输入并且向用户提供辅助的两个并行工作流。在特定实施例中,客户端侧过程可以在与用户相关联的客户端系统130上本地执行。相比之下,服务器侧过程可以在一个或多个计算系统上远程执行。在特定实施例中,客户端系统130上的助理协调器(assistant orchestrator)可以协调接收用户输入(例如音频信号),并且确定是否使用客户端侧过程、服务器侧过程或两者来响应用户输入。对话仲裁器可以分析来自每个过程的处理结果。对话仲裁器可以基于上述分析指示客户端侧或服务器侧的代理执行与用户输入相关联的任务。执行结果还可以被渲染为客户端系统130的输出。通过利用客户端侧和服务器侧过程,助理系统140可以有效地辅助用户优化计算资源的使用,同时保护用户隐私并且增强安全性。
在特定实施例中,助理系统140可以从与用户相关联的客户端系统130接收用户输入。在特定实施例中,用户输入可以是在单个回合中被发送给助理系统140的用户生成的输入。用户输入可以是口头的、非口头的或其组合。作为示例而不通过限制,非口头用户输入可以基于用户的语音、视觉、位置、活动、手势、运动或其组合。如果用户输入基于用户的语音(例如用户可以对客户端系统130说话),则这种用户输入可以首先由系统音频API 202(应用编程接口)处理。系统音频API 202可以进行回声消除、噪声移除、波束成形和自用语音激活、说话者标识、语音活动检测(VAD)和任何其他声学技术,以生成易于由助理系统140处理的音频数据。在特定实施例中,系统音频API 202可以通过用户输入执行唤醒词检测204。作为示例而不通过限制,唤醒词可以是“嘿助理”。如果这种唤醒词被检测到,则助理系统140可以被相应地激活。在备选的实施例中,用户可以经由视觉信号激活助理系统140而无需唤醒词。视觉信号可以在可以检测各种视觉信号的低功率传感器(例如相机)处接收。作为示例而不通过限制,视觉信号可以是由客户端系统130检测到的条形码、QR码或通用产品代码(UPC)。作为另一示例而不通过限制,视觉信号可以是用户对对象的注视。作为又一示例且不通过限制,视觉信号可以是用户手势,例如用户指向对象。
在特定实施例中,来自系统音频API 202的音频数据可以被发送给助理协调器206。助理协调器206可以在客户端系统130上执行。在特定实施例中,助理协调器206可以确定是否通过使用客户端侧过程、服务器侧过程或两者来响应用户输入。如图2所指示的,客户端侧过程在虚线207下方图示,而服务器侧过程在虚线207上方图示。助理协调器206还可以确定通过同时使用客户端侧过程和服务器侧过程来响应用户输入。虽然图2将助理协调器206图示为客户端侧过程,助理协调器206可以是服务器侧过程,或者可以是在客户端和服务器侧过程之间拆分的混合过程。
在特定实施例中,在音频数据从系统音频API 202生成之后,服务器侧过程可以如下。助理协调器206可以将音频数据发送给托管助理系统140的不同模块的远程计算系统,以响应用户输入。在特定实施例中,音频数据可以在远程自动言语识别(ASR)模块208处接收。ASR模块208可以允许用户口述并且将言语转录为书面文本,将文档合成为音频流,或者发出诸如由系统识别的命令。ASR模块208可以使用统计模型来确定与由助理系统140作为音频输入接收的言语的给定部分相对应的最可能的词语序列。模型可以包括隐马尔可夫模型、神经网络、深度学习模型或其任何组合中的一个或多个。接收到的音频输入可以以特定采样率(例如16、44.1或96kHz)并且以表示每个样本的特定数量的比特(例如8、16、24位)来编码为数字数据。
在特定实施例中,ASR模块208可以包括不同的组件。ASR模块208可以包括字素到音素(G2P)模型、发音学习模型、个性化声学模型、个性化语言模型(PLM)或端点模型中的一个或多个。在特定实施例中,G2P模型可以被用于确定用户的字素到音素的风格,例如当特定用户说出特定词语时该词语可能听起来像什么。个性化声学模型可以是音频信号与语言中的语音单位的声音之间的关系模型。因此,这种个性化的声学模型可以标识用户的语音听起来如何。个性化声学模型可以使用训练数据(诸如作为音频输入接收的训练言语和与该言语相对应的对应语音单位)来生成。个性化声学模型可以使用特定用户的语音来训练或改进,以识别该用户的言语。在特定实施例中,个性化语言模型然后可以确定对应于特定音频输入的所标识的语音单位的最可能的短语。个性化语言模型可以是语言中各种词语序列可能出现的概率模型。音频输入中的语音单位的声音可以使用个性化语言模型与词语序列进行匹配,并且更大的权重可以被分配给语言中更可能是短语的词语序列。具有最高权重的词语序列然后可以被选择作为对应于音频输入的文本。在特定实施例中,个性化语言模型还可以被用于预测给定上下文用户最有可能说出什么词语。在特定实施例中,端点模型可以检测何时到达言语的结尾。
在特定实施例中,ASR模块208的输出可以被发送给远程自然语言理解(NLU)模块210。NLU模块210可以执行命名实体解析(NER)。NLU模块210在分析用户输入时可以附加地考虑上下文信息。在特定实施例中,意图和/或槽位(slot)可以是NLU模块210的输出。意图可以是语义意图的预定义分类法中的元素,其可以指示用户与助理系统140交互的目的。NLU模块210可以将用户输入分类为预定义分类法的成员,例如针对输入“播放’贝多芬第五交响曲”,NLU模块210可以将输入分类为具有意图[IN:play_music]。在特定实施例中,域(domain)可以表示交互的社交上下文(例如教育)或针对意图的集合(例如音乐)的名称空间。槽位可以是与用户输入内的字符串相对应的命名子字符串,表示基础语义实体。例如,“披萨”的槽位可能是[SL:dish]。在特定实施例中,有效的或预期的命名槽位集合可以以分类的意图为条件。作为示例而不通过限制,针对意图[IN:play_music],有效槽位可以是[SL:song_name]。在特定实施例中,NLU模块210可以附加地从社交图谱、知识图谱或概念图中的一个或多个提取信息,并且从一个或多个远程数据存储库212取回用户的简档。NLU模块210还可以通过确定什么信息将聚合,注释用户输入的n元语法,基于聚合信息用置信度分数对n元语法进行排列,并且将排列后的n元语法表述为可以由NLU模块210用于理解用户输入的特征来处理来自这些不同源的信息。
在特定实施例中,NLU模块210可以以个性化和上下文感知的方式从用户输入标识域、意图或槽位中的一个或多个。作为示例而不通过限制,用户输入可以包括“告诉我如何去咖啡店”。NLU模块210可以基于用户的个人信息和关联的上下文信息来标识用户想要去的特定咖啡店。在特定实施例中,NLU模块210可以包括特定语言的辞典以及用于将句子分区为内部表示的剖析器和语法规则。NLU模块210还可以包括一个或多个程序,这些程序执行素朴语义或随机语义分析以使用语用学来理解用户输入。在特定实施例中,剖析器可以基于包括多个长短期记忆(LSTM)网络的深度学习架构。作为示例而不通过限制,剖析器可以基于循环神经网络语法(RNNG)模型,这是一种循环和递归LSTM算法。关于自然语言理解的更多信息可以在于2018年6月18日提交的美国专利申请号16/011062、于2018年7月2日提交的美国专利申请号16/025317和于2018年7月17日提交的美国专利申请号16/038120中找到,其中的每一个都通过引用并入。
在特定实施例中,NLU模块210的输出可以被发送给远程推理模块214。推理模块214可以包括对话管理器和实体解析组件。在特定实施例中,对话管理器可以具有复杂的对话逻辑和与产品相关的业务逻辑。对话管理器可以管理用户和助理系统140之间的对话状态和流程。对话管理器可以附加地存储用户和助理系统140之间的先前会话。在特定实施例中,对话管理器可以与实体解析组件通信以解析与一个或多个槽位相关联的实体,其支持对话管理器推进用户和助理系统140之间的会话流。在特定实施例中,实体解析组件可以在解析实体时访问社交图谱、知识图谱或概念图中的一个或多个。实体可以包括例如唯一的用户或概念,其中的每一个都可以具有唯一标识符(ID)。作为示例而不通过限制,知识图谱可以包括多个实体。每个实体可以包括与一个或多个属性值相关联的单个记录。特定记录可以与唯一实体标识符相关联。每个记录针对实体的属性可能具有不同的值。每个属性值可以与置信度概率相关联。属性值的置信度概率表示该值对于给定属性为准确的概率。每个属性值也可以与语义权重相关联。考虑到所有可用信息,属性值的语义权重可以表示该值在语义上如何适合给定属性。例如,知识图谱可以包括书籍“爱丽丝的冒险”的实体,其包括从多个内容源(例如在线社交网络、在线百科全书、书评源、媒体数据库和娱乐内容源)提取的信息,然后去重、解析和融合以生成知识图谱的单个唯一记录。该实体可以与“幻想”属性值相关联,该值指示书籍“爱丽丝的冒险”的类型。关于知识图谱的更多信息可以在于2018年7月27日提交的美国专利申请号16/048049和于2018年7月27日提交的美国专利申请号16/048101中找到,其中的每一个通过引用被并入。
在特定实施例中,实体解析组件可以检查隐私约束,以保证实体的解析不违反隐私策略。作为示例而不通过限制,要被解析的实体可以是在他/她的隐私设置中指定他/她的标识不应在在线社交网络上可搜索到的另一用户,因此实体解析组件可以不响应于请求返回该用户的标识符。基于从社交图谱、知识图谱、概念图和用户简档获得的信息,并且受适用的隐私策略的约束,因此,实体解析组件可以以个性化、上下文感知和隐私感知的方式解析与用户输入相关联的实体。在特定实施例中,解析实体中的每个解析实体可以与由社交网络系统160托管的一个或多个标识符相关联。作为示例而不通过限制,标识符可以包括对应于特定用户的唯一用户标识符(ID)(例如唯一的用户名或用户ID号)。在特定实施例中,解析实体中的每个解析实体还可以与置信度分数相关联。关于解析实体的更多信息可以在于2018年7月27日提交的美国专利申请号16/048049和于2018年7月27日提交的美国专利申请号16/048072中找到,其中的每一个通过引用并入。
在特定实施例中,对话管理器可以进行对话优化和助理状态追踪。对话优化是使用数据来理解对话中最可能的分支应该是什么的问题。作为示例而不通过限制,利用对话优化,助理系统140可能不需要确认用户想要呼叫谁,因为助理系统140具有高置信度,即,基于对话优化所推断的人很可能是用户想打电话的人。在特定实施例中,对话管理器可以使用强化学习来优化对话。助理状态追踪旨在追踪随着用户与世界交互以及助理系统140与用户交互而随时间改变的状态。作为示例而不通过限制,受适用的隐私策略约束,助理状态追踪可以追踪用户正在谈论什么、用户和谁在一起、用户在哪里、当前正在进行什么任务以及用户在注视哪里等。在特定实施例中,对话管理器可以使用运算符集合来追踪对话状态。运算符可以包括必要的数据和逻辑来更新对话状态。每个运算符可以在处理传入请求后充当对话状态的增量。在特定实施例中,对话管理器还可以包括对话状态追踪器和动作选择器。在备选的实施例中,对话状态追踪器可以替换实体解析组件,并且解析引用/提及并追踪状态。
在特定实施例中,推理模块214还可以进行错误触发缓解。错误触发缓解的目标是检测助理请求的错误触发(例如唤醒词),并且避免在用户实际上不打算调用助理系统140时生成错误记录。作为示例而不通过限制,推理模块214可以基于无意义检测器实现错误触发缓解。如果无意义检测器确定唤醒词在与用户的交互中的该点上没有意义,则推理模块214可以确定推断用户旨在调用助理系统140可能是不正确的。在特定实施例中,推理模块214的输出可以被发送给远程对话仲裁器216。
在特定实施例中,ASR模块208、NLU模块210和推理模块214中的每一个可以访问远程数据存储库212,其包括用户情景存储器以确定如何更有效地辅助用户。关于情景存储器的更多信息可以在于2019年8月27日提交的美国专利申请号16/552559中找到,其通过引用被并入。数据存储库212可以附加地存储用户的用户简档。用户的用户简档可以包括用户简档数据,该用户简档数据包括与用户相关联的人口统计信息、社交信息和上下文信息。用户简档数据还可以包括对多个话题的用户兴趣和偏好,其通过新闻提要、搜索日志、消息平台等上的会话聚合。用户简档的使用可能受到隐私约束,以确保用户的信息可以仅用于他/她的利益,并且不与其他任何人共享。关于用户简档的更多信息可以在于2018年4月30日提交的美国专利申请号15/967239中找到,其通过引用并入。
在特定实施例中,与涉及ASR模块208、NLU模块210和推理模块214的上述服务器侧过程并行,客户端侧过程可以如下。在特定实施例中,助理协调器206的输出可以被发送给客户端系统130上的本地ASR模块216。ASR模块216可以包括个性化语言模型(PLM)、G2P模型和端点模型。由于客户端系统130的计算能力有限,助理系统140可以在客户端侧过程期间在运行时优化个性化语言模型。作为示例而不通过限制,助理系统140可以预先计算用户可能谈论的多个可能主题的多个个性化语言模型。当用户请求辅助时,助理系统140然后可以快速交换这些预先计算的语言模型,使得个性化语言模型可以在运行时基于用户活动由助理系统140在本地优化。因此,助理系统140可以具有节省计算资源同时有效地确定用户可能正在谈论什么的技术优点。在特定实施例中,助理系统140还可以在运行时快速地重新学习用户发音。
在特定实施例中,ASR模块216的输出可以被发送给本地NLU模块218。在特定实施例中,与在服务器侧支持的远程NLU模块210相比,本文的NLU模块218可以更紧凑。当ASR模块216和NLU模块218处理用户输入时,它们可以访问本地助理存储器220。出于保护用户隐私的目的,本地助理存储器220可以不同于存储在数据存储库212上的用户记忆。在特定实施例中,本地助理存储器220可以经由网络110与存储在数据存储库212上的用户记忆同步。作为示例而不通过限制,本地助理存储器220可以将用户的客户端系统130上的日历与关联于用户的服务器侧日历同步。在特定实施例中,本地助理存储器220中的任何安全数据可能仅对在客户端系统130上本地执行的助理系统140的模块可访问。
在特定实施例中,NLU模块218的输出可以被发送给本地推理模块222。推理模块222可以包括对话管理器和实体解析组件。由于有限的计算能力,推理模块222可以进行基于特别为客户端系统130定制的学习算法的设备上学习。作为示例而不通过限制,联邦学习(federated learning)可以由推理模块222使用。联邦学习是一种特定类别的分布式机器学习方法,它使用驻留在终端设备(诸如移动电话)上的分散数据来训练机器学习模型。在特定实施例中,推理模块222可以使用特定联邦学习模型,即,联合用户表示学习,以将现有的神经网络个性化技术扩展到联邦学习。联合用户表示学习可以通过学习特定于任务的用户表示(即,嵌入)或通过个性化模型权重来个性化联邦学习中的模型。联合用户表示学习是简单的、可缩放的、隐私保护的和资源高效的。联合用户表示学习可以将模型参数划分为联合参数和私有参数。私有参数(诸如私有用户嵌入)可以在客户端系统130上本地训练,而不是被传送到远程服务器或在远程服务器上求平均。相比之下,联合参数可以在服务器上远程训练。在特定实施例中,推理模块222可以使用另一特定的联邦学习模型,即,主动联邦学习,以将在远程服务器上训练的全局模型传输给客户端系统130,并且在这些客户端系统130上本地计算梯度。主动联邦学习可以使推理模块能够最小化与下载模型和上传梯度相关联的传输成本。针对主动联邦学习,在每个回合中,客户端系统的选择不是均匀随机的,而是利用当前模型和客户端系统上的数据为条件的概率,以最大化效率。在特定实施例中,推理模块222可以使用另一特定联邦学习模型,即,联邦亚当(federated Adam)。常规的联邦学习模型可以使用随机梯度下降(SGD)优化器。相比之下,联邦亚当模型可以使用基于矩的优化器。联邦亚当模型可以使用平均模型来计算近似梯度,而不是像常规工作那样直接使用平均模型。这些梯度然后可以被馈送到联邦亚当模型中,该模型可以对随机梯度进行降噪并且使用每个参数的自适应学习率。由联邦学习产生的梯度可能比随机梯度下降更嘈杂(因为数据可能不是独立同分布的),因此联邦亚当模型可能有助于甚至更好地处理噪声。联邦亚当模型可以使用梯度以采取更智能的步骤来最小化目标函数。实验示出,基准上的常规联邦学习在ROC(接收器操作特性)曲线上下降了1.6%,而联邦亚当模型仅下降了0.4%。另外,联邦亚当模型在通信或设备上计算方面没有增加。在特定实施例中,推理模块222还可以执行错误触发缓解。当用户的言语输入包括受隐私约束的数据时,该错误触发缓解可以帮助检测客户端系统130上的错误激活请求,例如唤醒词。作为示例而不通过限制,当用户在语音呼叫中时,用户的会话是隐私的,并且基于这种会话的错误触发检测能够仅在用户的客户端系统130本地发生。
在特定实施例中,助理系统140可以包括本地上下文引擎224。上下文引擎224可以处理所有其他可用信号,以向推理模块222提供更多信息提示。作为示例而不通过限制,上下文引擎224可以具有与人相关的信息、来自客户端系统130传感器(例如麦克风、相机)的感觉数据(sensory data)该数据由计算机视觉技术进一步分析、几何构造、活动数据、惯性数据(例如由VR耳机收集)、位置等。在特定实施例中,计算机视觉技术可以包括人体骨骼重建、面部检测、面部识别、手部追踪、眼睛追踪等。在特定实施例中,几何构造可以包括使用由客户端系统130收集的数据构建用户周围的对象。作为示例而不通过限制,用户可能戴着AR眼镜,并且几何构造可能旨在确定地板在哪里、墙壁在哪里、用户的手部在哪里等。在特定实施例中,惯性数据可以是与线性和角运动相关联的数据。作为示例而不通过限制,惯性数据可以由测量用户身体部位如何移动的AR眼镜捕获。
在特定实施例中,本地推理模块222的输出可以被发送给对话仲裁器216。对话仲裁器216在三种场景中可以不同地运作。在第一场景中,助理协调器206确定使用服务器侧过程,对话仲裁器216可以将推理模块214的输出传输给远程动作执行模块226。在第二场景中,助理协调器206确定使用服务器侧过程和客户侧过程两者,对话仲裁器216可以聚合来自两个过程的两个推理模块(即,远程推理模块214和本地推理模块222)的输出并且分析它们。作为示例而不通过限制,对话仲裁器216可以执行排列,并且选择最佳推理结果以响应用户输入。在特定实施例中,对话仲裁器216还可以基于分析确定是使用服务器侧的代理还是客户端侧的代理来执行相关任务。在第三场景中,助理协调器206确定使用客户端侧过程,并且对话仲裁器216需要评估本地推理模块222的输出以确定客户端侧过程是否能够完成处置用户输入的任务。在备选的实施例中,如果助理协调器206确定使用客户端侧过程并且客户端侧过程完全能够处理用户输入,则推理模块222的输出可以不被发送给对话仲裁器216。
在特定实施例中,针对上面提及的第一场景和第二场景,对话仲裁器216可以确定服务器侧的代理对于响应于用户输入执行任务是必要的。因此,对话仲裁器216可以向动作执行模块226发送关于用户输入的必要信息。动作执行模块226可以调用一个或多个代理来执行任务。在备选的实施例中,对话管理器的动作选择器可以确定要执行的动作,并且相应地指示动作执行模块226。在特定实施例中,代理可以是充当跨一个域的多个内容提供方的经纪(broker)的实施方式。内容提供方可以是负责执行与意图相关联的动作或完成与意图相关联的任务的实体。在特定实施例中,代理可以包括第一方代理和第三方代理。在特定实施例中,第一方代理可以包括由助理系统140可访问和可控制的内部代理(例如与由在线社交网络提供的服务相关联的代理,诸如消息传递服务或照片共享服务)。在特定实施例中,第三方代理可以包括助理系统140无法控制的外部代理(例如第三方在线音乐应用代理、售票代理)。第一方代理可以与提供由社交网络系统160托管的内容对象和/或服务的第一方提供方相关联。第三方代理可以与提供由第三方系统170托管的内容对象和/或服务的第三方提供方相关联。在特定实施例中,第一方代理或第三方代理中的每一个可以为特定域指定。作为示例而不通过限制,域可以包括天气、运输、音乐、购物、社交、视频、照片、事件、位置、工作等。在特定实施例中,助理系统140可以协作地使用多个代理以响应用户输入。作为示例而不通过限制,用户输入可以包括“将我引导至我的下一次会议”。助理系统140可以使用日历代理来取回下一次会议的位置。助理系统140然后可以使用导航代理来将用户引导至下一次会议。
在特定实施例中,针对上面提及的第二场景和第三场景,对话仲裁器216可以确定客户端侧的代理能够响应于用户输入而执行任务,但是需要附加信息(例如响应模板),或者任务只能够由服务器侧的代理处置。如果对话仲裁器216确定任务只能够由服务器侧的代理处置,则对话仲裁器216可以将关于用户输入的必要信息发送给动作执行模块226。如果对话仲裁器216确定客户端侧的代理能够执行任务但需要响应模板,则对话仲裁器216可以将关于用户输入的必要信息发送给远程响应模板生成模块228。响应模板生成模块228的输出还可以被发送给在客户端系统130上执行的本地动作执行模块230。在特定实施例中,如果助理协调器206确定使用客户端侧过程并且客户端侧过程完全能够处理用户输入,则推理模块222的输出可以被直接发送给动作执行模块230。
在特定实施例中,动作执行模块230可以调用本地代理来执行任务。与服务器侧的代理相比,客户端系统130上的本地代理可能能够执行更简单的任务。作为示例而不通过限制,多个特定于设备的实现方式(例如对客户端系统130或客户端系统130上的消息传递应用的实时呼叫)可以由单个代理内部处置。备选地,这些设备特定(device-specific)的实施方式可以由与多个域相关联的多个代理处置。在特定实施例中,动作执行模块230可以附加地执行通用的可执行对话动作集合。可执行对话动作集合可以与代理、用户和助理系统140本身交互。这些对话动作可以包括用于槽位请求、确认、消歧、代理执行等的对话动作。对话动作可以独立于动作选择器或对话策略的底层实施方式。基于树的策略和基于模型的策略可以生成相同的基础对话动作,利用回调函数隐藏任何动作选择器特定的实施细节。
在特定实施例中,来自服务器侧的远程动作执行模块226的输出可以被发送给远程响应执行模块232。在特定实施例中,动作执行模块226可以传递回对话仲裁器216用于更多信息。响应执行模块232可以基于远程会话理解(CU)撰写器。在特定实施例中,来自动作执行模块226的输出可以被表述为<k,c,u,d>元组,其中k指示知识源,c指示交流目标,u指示用户模型,并且d指示话语模型。在特定实施例中,CU撰写器可以包括自然语言生成(NLG)模块和用户界面(UI)有效载荷生成器。自然语言生成器可以使用不同的语言模型和/或语言模板基于动作执行模块226的输出来生成通信内容。在特定实施例中,通信内容的生成可以是特定于应用的,并且还针对每个用户个性化。CU撰写器还可以使用UI有效载荷生成器来确定生成的通信内容的模态。在特定实施例中,NLG模块可以包括内容确定组件、句子计划器和表面实现组件。内容确定组件可以基于知识源、交流目标和用户期望来确定通信内容。作为示例而不通过限制,确定可以基于描述逻辑。描述逻辑可以包括例如三个基本观念,它们是个体(表示域中的对象)、概念(描述个体集合)和角色(表示个体或概念之间的二元关系)。描述逻辑可以通过构造器集合来表征,该构造器集合允许自然语言生成器从原子概念/角色构建复杂的概念/角色。在特定实施例中,内容确定组件可以执行以下任务来确定通信内容。第一任务可以包括转化任务,其中自然语言生成器的输入可以被转化为概念。第二任务可以包括选择任务,其中相关概念可以基于用户模型从由转化任务产生的概念中选择。第三任务可以包括验证任务,其中所选概念的相干性可以被验证。第四任务可以包括实例化任务,其中所验证的概念可以被实例化为可以由自然语言生成器处理的可执行文件。句子计划器可以确定通信内容的组织,以使其变得可以被人类理解。表面实现组件可以确定要使用的具体词语、句子的序列以及通信内容的风格。UI有效载荷生成器可以确定要被呈现给用户的通信内容的优选模态。在特定实施例中,CU撰写器可以检查与用户相关联的隐私约束,以确保通信内容的生成遵循隐私策略。关于自然语言生成的更多信息可以在于2018年4月30日提交的美国专利申请号15/967279和于2018年4月30日提交的美国专利申请号15/966455中找到,其中的每一个通过引用并入。
在特定实施例中,来自客户端系统130上的本地动作执行模块230的输出可以被发送给本地响应执行模块234。响应执行模块234可以基于本地会话理解(CU)撰写器。CU撰写器可以包括自然语言生成(NLG)模块。由于客户端系统130的计算能力可能有限,出于计算效率的考虑,NLG模块可以是简单的。因为NLG模块可以是简单的,所以响应执行模块234的输出可以被发送给本地响应扩展模块236。响应扩展模块236还可以扩展响应执行模块234的结果,以使响应更自然并且包含更丰富的语义信息。
在特定实施例中,如果用户输入基于音频信号,则服务器侧的响应执行模块232的输出可以被发送给远程文本到言语(TTS)模块238。类似地,客户端侧的响应扩展模块236的输出可以被发送给本地TTS模块240。两个TTS模块都可以将响应转换为音频信号。在特定实施例中,来自响应执行模块232、响应扩展模块236或两侧的TTS模块的输出最终可以被发送给本地渲染输出模块242。渲染输出模块242可以生成适合于客户端系统130的响应。作为示例而不通过限制,响应执行模块232或响应扩展模块236的输出可以包括自然语言字符串、言语、具有参数的动作或可以在VR耳机或AR智能眼镜中显示的渲染图像或视频中的一个或多个。因此,渲染输出模块242可以基于CU撰写器的输出来确定要执行什么任务,以适当地渲染响应以显示在VR耳机或AR智能眼镜上。例如,响应可以是可以经由VR耳机或AR智能眼镜显示的基于视觉的模态(例如图像或视频片段)。作为另一示例,响应可以是可以由用户经由VR耳机或AR智能眼镜播放的音频信号。作为又一示例,响应可以是增强现实数据,其可以渲染VR耳机或AR智能眼镜以增强用户体验。
在特定实施例中,助理系统140可以具有多种能力,包括音频认知、视觉认知、信号智能、推理和记忆。在特定实施例中,音频识别的能力可以使助理系统140能够理解与不同语言的各个域相关联的用户输入,理解会话并且能够对其进行总结,对复杂命令执行设备上的音频认知,通过语音标识用户,从会话提取话题并且自动标注会话的区段,在没有唤醒词的情况下启用音频交互,从环境噪声和会话中过滤和放大用户语音,理解用户正在与哪个客户端系统130(如果附近有多个客户端系统130)交谈。
在特定实施例中,视觉认知能力可以使助理系统140能够执行面部检测和追踪,识别用户,以变化的角度识别主要大都市区域中的大多数感兴趣的人,通过现有的机器学习模型和一次性学习的组合识别世界上大多数感兴趣的对象,识别有趣的时刻并且自动捕获它,在不同时间段的多个视觉框架上实现语义理解,为人、地点、对象识别的附加能力提供平台支持,识别包括个性化位置的设置和微位置的完整集合,识别复杂活动,识别复杂手势以控制客户端系统130,处置来自以自我为中心的相机的图像/视频(例如具有运动、捕获角度、分辨率等),对分辨率较低的图像实现类似的准确度和速度水平,进行一次性注册以及人、地点和对象的识别,并且在客户端系统130上执行视觉识别。
在特定实施例中,助理系统140可以利用计算机视觉技术来实现视觉认知。除了计算机视觉技术之外,助理系统140可以探索可以补充这些技术以扩大对象识别的选项。在特定实施例中,助理系统140可以使用补充信号,诸如对象标签的光学字符识别(OCR)、用于地点识别的GPS信号、来自用户的客户端系统130以标识用户的信号。在特定实施例中,助理系统140可以执行通用场景识别(家庭、工作、公共空间等),以为用户设置上下文并且减少计算机视觉搜索空间以标识最可能的对象或人。在特定实施例中,助理系统140可以指导用户训练助理系统140。例如,众包可以被用于使用户标注并且帮助助理系统140随着时间的推移识别更多对象。作为另一示例,当使用助理系统140时,用户可以将他们的个人对象注册为初始设置的一部分。助理系统140还可以允许用户为他们与之交互的对象提供正面/负面信号,以训练和改进他们的个性化模型。
在特定实施例中,信号智能能力可以使助理系统140能够确定用户位置,理解日期/时间,确定家庭位置,理解用户的日历和未来期望的位置,集成更丰富的声音理解以单独通过声音标识设置/上下文,在运行时间构建可以针对用户的个人例程个性化的信号智能模型。
在特定实施例中,推理能力可以使助理系统140能够在未来的任何时间点选取任何先前的会话线程,合成所有信号以理解微观和个性化的上下文,从用户的历史行为中学习交互模式和偏好并且准确地建议他们可能重视的交互,基于微观上下文理解生成高度预测的主动建议,理解用户在一天中的什么时间可能想看什么内容,理解场景的变化以及这可能会如何影响用户期望的内容。
在特定实施例中,记忆的能力可以使助理系统140能够记住用户先前呼叫过或与之交互的社交联系,随意写入存储器和查询存储器(即,打开听写和自动标注),基于先前交互和长期学习提取更丰富的偏好,记住用户的生活史,从以自我为中心的数据流和自动目录中提取丰富的信息,并且以结构化的形式写入存储器以形成丰富的短期、情景和长期记忆。
图3图示了助理系统140的服务器侧过程的示例图流程。在特定实施例中,服务器-助理服务模块301可以在接收到用户请求时访问请求管理器302。在备选的实施例中,如果用户请求基于音频信号,则用户请求可以首先由远程ASR模块208处理。在特定实施例中,请求管理器302可以包括上下文提取器303和会话理解对象生成器(CU对象生成器)304。上下文提取器303可以提取与用户请求相关联的上下文信息。上下文提取器303还可以基于在客户端系统130上执行的助理应用程序136来更新上下文信息。作为示例并且不通过限制,上下文信息的更新可以包括在客户端系统130上显示的内容项。作为另一示例而不通过限制,上下文信息的更新可以包括闹钟是否在客户端系统130上设置。作为另一示例而不通过限制,上下文信息的更新可以包括歌曲是否正在客户端系统130上播放。CU对象生成器304可以生成与用户请求相关的特定内容对象。内容对象可以包括与用户请求相关联的对话会话(dialog-session)数据和特征,其可以与助理系统140的所有模块共享。在特定实施例中,请求管理器302可以将上下文信息和生成的内容对象存储在数据存储库212中,其是在助理系统140中实现的特定数据存储库。
在特定实施例中,请求管理器302可以将生成的内容对象发送给远程NLU模块210。NLU模块210可以执行多个步骤来处理内容对象。在步骤305中,NLU模块210可以为内容对象生成白名单。在特定实施例中,白名单可以包括与用户请求相匹配的解释数据。在步骤306中,NLU模块210可以基于白名单执行特征化。在步骤307中,NLU模块210可以基于由特征化产生的特征在用户请求中执行域分类/选择,以将用户请求分类为预定义域。域分类/选择结果可以基于两个相关程序进一步处理。在步骤308a中,NLU模块210可以使用意图分类器来处理域分类/选择结果。意图分类器可以确定与用户请求相关联的用户意图。在特定实施例中,针对每个域可以有一个意图分类器来确定给定域中最可能的意图。作为示例而不通过限制,意图分类器可以基于机器学习模型,该模型可以将域分类/选择结果作为输入并且计算输入与特定的预定义意图相关联的概率。在步骤308b中,NLU模块210可以使用元意图分类器来处理域分类/选择结果。元意图分类器可以确定描述用户意图的类别。在特定实施例中,多个域共有的意图可以由元意图分类器处理。作为示例而不通过限制,元意图分类器可以基于机器学习模型,该模型可以将域分类/选择结果作为输入并且计算输入与特定的预定义意图相关联的概率。在步骤309a中,NLU模块210可以使用槽位标注器来注释与用户请求相关联的一个或多个槽位。在特定实施例中,槽位标注器可以为用户请求的n元语法注释一个或多个槽位。在步骤309b中,NLU模块210可以使用元槽位标注器为来自元意图分类器的分类结果注释一个或多个槽位。在特定实施例中,元槽位标注器可以标注通用槽位,诸如对项目的引用(例如第一个)、槽位的类型、槽位的值等。作为示例而不通过限制,用户请求可以包括“将我账户中的500美元兑换为日元”。意图分类器可以将用户请求作为输入,并且将其表述为向量。意图分类器然后可以基于表示用户请求的向量与表示不同预定义意图的向量之间的向量比较来计算用户请求与不同预定义意图相关联的概率。通过类似的方式,槽位标注器可以将用户请求作为输入,并且将每个词语表述为向量。意图分类器然后可以基于表示词语的向量与表示不同预定义槽位的向量之间的向量比较来计算每个词语与不同预定义槽位相关联的概率。用户的意图可以被分类为“兑换货币”。用户请求的槽位可以包括“500”、“美元”、“账户”和“日元”。用户的元意图可以被分类为“金融服务”。元槽位可以包括“金融”。
在特定实施例中,NLU模块210可以包括语义信息聚合器310。语义信息聚合器310可以通过提供语义信息来帮助NLU模块210改进内容对象的域分类/选择。在特定实施例中,语义信息聚合器310可以通过以下方式聚合语义信息。语义信息聚合器310可以首先取回来自用户上下文引擎315的信息。在特定实施例中,用户上下文引擎315可以包括离线聚合器和在线推理服务。离线聚合器可以处理从先前时间窗口收集的与用户相关联的多个数据。作为示例而不通过限制,数据可以包括在预先确定的时间帧内(例如从先前的90天窗口)收集的新闻提要帖子/评论、与新闻提要帖子/评论的交互、搜索历史等。处理结果可以作为用户简档的一部分被存储在用户上下文引擎315中。在线推理服务可以分析由助理系统140在当前时间接收到的与用户相关联的会话数据。分析结果也可以作为用户简档的一部分被存储在用户上下文引擎315中。在特定实施例中,离线聚合器和在线推理服务都可以从多个数据中提取个性化特征。经提取的个性化特征可以由助理系统140的其他模块使用,以更好地理解用户输入。在特定实施例中,语义信息聚合器310然后可以在以下步骤中处理从用户上下文引擎315取回的信息,即,用户简档。在步骤311处,语义信息聚合器310可以基于自然语言处理(NLP)来处理从用户上下文引擎315取回的信息。在特定实施例中,语义信息聚合器310可以通过文本归一化来令牌化文本,从文本中提取句法特征,并且基于NLP从文本中提取语义特征。语义信息聚合器310可以附加地从上下文信息中提取特征,上下文信息是从用户和助理系统140之间的对话历史访问的。语义信息聚合器310还可以基于上下文信息进行全局词语嵌入、特定于域的嵌入和/或动态嵌入。在步骤312中,处理结果可以由实体标注器用实体注释。基于注释,语义信息聚合器310可以在步骤313中为取回的信息生成词典。在特定实施例中,词典可以包括能够离线动态更新的全局词典特征。在步骤314中,语义信息聚合器310可以对由实体标注器标注的实体进行排列。在特定实施例中,语义信息聚合器310可以与包括社交图谱、知识图谱或概念图中的一个或多个的不同图320通信,以从用户上下文引擎315提取与取回的信息相关的本体数据。在特定实施例中,语义信息聚合器310可以聚合用户简档、排列实体和来自图320的信息。语义信息聚合器310然后可以向NLU模块210提供聚合信息,以促进域分类/选择。
在特定实施例中,NLU模块210的输出可以被发送给远程推理模块214。推理模块214可以包括共指(co-reference)组件325、实体解析组件330和对话管理器335。NLU模块210的输出可以首先在共指组件325处接收,以解释与用户请求相关联的内容对象的引用。在特定实施例中,共指组件325可以被用于标识用户请求所引用的物品。共指组件325可以包括引用创建326和引用解析327。在特定实施例中,引用创建326可以为由NLU模块210确定的实体创建引用。引用解析327可以准确地解析这些引用。作为示例而不通过限制,用户请求可以包括“给我找到最近的杂货店并且引导我到那里”。共指组件325可以将“那里”解释为“最近的杂货店”。在特定实施例中,当需要利用提高的准确度解释引用时,共指组件325可以访问用户上下文引擎315和对话管理器335。
在特定实施例中,所标识的域、意图、元意图、槽位和元槽位以及所解析的引用可以被发送给实体解析组件330以解析相关实体。实体可以包括现实世界实体(来自通用知识库)、用户实体(来自用户记忆)、上下文实体(设备上下文/对话上下文)或值解析(数字、日期时间等)中的一个或多个。实体解析组件330可以执行通用和特定于域的实体解析。在特定实施例中,实体解析组件330可以包括域实体解析331和通用实体解析332。域实体解析331可以通过将槽位和元槽位归类为不同域来解析实体。在特定实施例中,实体可以基于从图320提取的本体数据来解析。本体数据可以包括不同槽位/元槽位和域之间的结构关系。本体还可以包括关于槽位/元槽位可以如何分组、在更高级别包括域的层次结构内相关以及根据相似性和差异进行细分的信息。通用实体解析332可以通过将槽位和元槽位归类为不同的通用话题来解析实体。在特定实施例中,解析还可以基于从图320提取的本体数据。本体数据可以包括不同槽位/元槽位和通用话题之间的结构关系。本体还可以包括关于槽位/元槽位可以如何分组、在更高级别包括话题的层次结构内相关以及根据相似性和差异进行细分的信息。作为示例而不通过限制,响应于对特定电动汽车品牌的优点的查询的输入,通用实体解析332可以将引用的电动汽车品牌解析为车辆,并且域实体解析331可以将引用的电动汽车品牌解析为电动汽车。
在特定实施例中,实体解析组件330可以使用不同的技术来解析不同类型的实体。针对现实世界实体,实体解析组件330可以使用知识图谱来解析实体的跨度,诸如“音乐声带”、“电影”等。针对用户实体,实体解析组件330可以使用用户记忆或一些代理将跨度解析为特定于用户的实体,诸如“联系人”、“提醒”、“关系”等。针对上下文实体,实体解析组件330可以使用共指模块325来解析对上下文中的实体的引用,诸如“他”、“她”、“第一个”、“最后一个”等。另外,实体解析组件330可以解析上下文(设备上下文或对话上下文)下的实体,诸如屏幕上示出的实体、来自上次会话历史的实体等。针对值解析,实体解析组件330可以将提及解析为标准化形式的确切值,诸如数值、日期时间、地址等。
在特定实施例中,实体解析组件330可以与ASR模块208或ASR模块216一起工作以执行实体解析。将解析名称作为示例,实体解析组件330可以如下工作。实体解析组件330可以首先使用双变音(double metaphone)算法将与用户相关联的名称扩展为它们的归一化文本形式以及语音辅音表示。实体解析组件330然后可以确定候选转录的完整的n最佳集合,并且并行地对所有转录运行理解过程。在特定实施例中,解析为相同意图的每个转录可以被折叠为单个意图。意图可以获得与评分最高的候选转录相对应的分数。在折叠期间,实体解析组件330可以标识与每个槽位相关联的各种可能的文本转录,通过与槽位的转录关联的边界定时偏移相关。实体解析组件330可以从多个(例如1000个)候选转录中提取槽位文本可能性,而不管它们是否被分类为相同的意图。因此,意图中的槽位可以是对短语列表进行评分。在特定实施例中,可以处置意图的新的或正在运行的任务可以被标识,并且递送意图。该任务可以触发实体解析组件330,提供与其槽位中的一个槽位相关联的短语的评分列表以及针对它应当被解析的类别。
在特定实施例中,当朋友类别被指定时,实体解析组件330可以在匹配器编译时间通过相同的扩展运行来运行每个候选术语列表。术语的每个候选扩展可以在预编译的特里匹配结构(trie matching structure)中匹配。匹配可以使用采用转录输入、匹配形式和朋友姓名的函数进行评分。在特定实施例中,当名人/知名人物类别被指定时,实体解析组件330可以针对来自ASR模块208或ASR模块216的槽位的每个候选术语集合的知识图谱运行并行搜索。实体解析组件330可以基于匹配的人的流行度和ASR提供的分数信号对匹配进行评分。在特定实施例中,当存储器类别被指定时,实体解析组件330可以针对用户记忆执行相同的搜索。实体解析组件330可以通过用户记忆向后爬行,并且尝试匹配每个存储器(例如最近在会话中提及或者经由视觉信号看到和识别的人等)。针对每个人,实体解析组件330可以与朋友如何匹配类似地采用匹配(即,语音)。在特定实施例中,评分可以包括与名字最近多久被提及相关的时间衰减因子。实体解析组件330还可以组合、排序和去重所有匹配。在特定实施例中,任务可以接收候选集合。当存在多个高评分候选时,实体解析组件330可以执行用户促进的消歧。
在特定实施例中,实体解析组件330可以由任务(对应于代理350)驱动。这种处理顺序的反转可以使存在于任务中的域知识有可能在明显且适当的情况下应用于预过滤或偏置解析目标集合。作为示例而不通过限制,针对话语“谁是约翰?”,话语中没有隐含明确的类别。因此,实体解析组件330可以针对所有内容解析“约翰”。作为另一示例而不通过限制,针对话语“向约翰发送消息”,实体解析组件330可以容易地确定“约翰”指的是可以发送消息的人。因此,实体解析组件330可以将解析偏向朋友。作为另一示例而不通过限制,针对话语“约翰最著名的专辑是什么?”。为了解析“约翰”,实体解析组件330可以首先确定与话语相对应的任务,即,寻找音乐专辑。实体解析组件330可以确定与音乐专辑相关的实体包括歌手、制作人和录音室。因此,实体解析组件330可以在音乐域中的这些类型的实体中进行搜索以解析“约翰”。
在特定实施例中,实体解析组件330的输出可以被发送给对话管理器335以推进与用户的会话流程。对话管理器335可以是异步状态机,其重复更新状态并且基于新状态选择动作。对话管理器335可以包括对话意图解析336和对话状态追踪器337。在特定实施例中,对话管理器335可以执行所选择的动作,然后再次调用对话状态追踪器337,直到所选的动作需要用户响应或者没有更多动作要执行。选择的每个动作可能取决于来自先前动作的执行结果。在特定实施例中,对话意图解析336可以基于用户和助理系统140之间的对话历史来解析与当前对话会话相关联的用户意图。对话意图解析336可以将由NLU模块210确定的意图映射到不同的对话意图。对话意图解析336还可以基于来自NLU模块210、实体解析组件330的信号和用户与助理系统140之间的对话历史对对话意图进行排列。在特定实施例中,代替直接更改对话状态,对话状态追踪器337可以是无副作用的组件,并且生成对对话状态提出更新的对话状态更新运算符的n个最佳候选。对话状态追踪器337可以包括意图解析器,其包含基于对话状态处置不同类型的NLU意图并且生成运算符的逻辑。在特定实施例中,逻辑可以由意图处置器来组织,诸如当助理系统140请求消歧时处置意图的消歧意图处置器、包括处置确认的逻辑的确认意图处置器等。意图解析器可以将回合意图与对话状态组合在一起,为与用户的会话生成上下文更新。槽位解析组件然后可以递归地解析更新运算符中的槽位,解析提供方包括知识图谱和域代理。在特定实施例中,对话状态追踪器337可以更新/排列当前对话会话的对话状态。作为示例而不通过限制,如果对话会话结束,则对话状态追踪器337可以将对话状态更新为“完成”。作为另一示例而不通过限制,对话状态追踪器337可以基于与其相关联的优先级对对话状态进行排列。
在特定实施例中,推理模块214可以分别与远程动作执行模块226和对话仲裁器216通信。在特定实施例中,推理模块214的对话管理器335可以与动作执行模块226的任务完成组件340关于对话意图和关联的内容对象进行通信。在特定实施例中,任务完成模块340可以针对不同的对话意图对不同的对话假设进行排列。任务完成模块340可以包括动作选择器341。在备选的实施例中,动作选择器341可以被包括在对话管理器335中。在特定实施例中,对话管理器335可以附加地针对对话仲裁器216中包括的对话策略345检查对话状态。在特定实施例中,对话策略345可以包括描述代理350的动作的执行计划的数据结构。对话策略345可以包括通用策略346和任务策略347。在特定实施例中,通用策略346可以被用于不特定于单个任务的动作。通用策略346可以包括处置低置信度意图、内部误差、不可接受的用户重试响应、基于ASR或NLU置信度分数跳过或插入确认等。通用策略346还可以包括对来自对话状态追踪器337输出的对话状态更新候选进行排列的逻辑,并且选取要更新的一个逻辑(诸如选取排列靠前的任务意图)。在特定实施例中,助理系统140可以具有用于通用策略346的特定接口,其允许将分散的跨域策略/业务规则,特别是在对话状态追踪器337中找到的那些,整合到动作选择器341的函数中。通用策略346的接口还可以允许创作可以被绑定到具体情况或客户端的自包含子策略单元,例如可以基于客户端、情况等容易地切换的策略函数。通用策略346的接口还可以允许提供具有回退的策略分层,即,多个策略单元,其中处理具体情况的高度专业化的策略单元由在更广泛的情况下适用的更通用策略346支持。在该上下文中,通用策略346可以备选地包括意图或任务特定策略。在特定实施例中,任务策略347可以包括基于任务和当前状态的动作选择器341的逻辑。在特定实施例中,任务策略347的类型可以包括以下类型中的一种或多种:(1)人工制作的基于树的对话计划;(2)直接实施接口以生成动作的编码策略;(3)配置器指定的槽位填充任务;或(4)从数据中学习的基于机器学习模型的策略。在特定实施例中,助理系统140可以利用基于规则的逻辑引导新域并且稍后利用机器学习模型改进任务策略347。在特定实施例中,对话策略345可以是基于树的策略,其是预先构建的对话计划。基于当前的对话状态,对话策略345可以选择节点来执行并生成对应的动作。作为示例而不通过限制,基于树的策略可以包括话题分组节点和对话动作(叶)节点。
在特定实施例中,动作选择器341可以采用对话状态的候选运算符,并且咨询对话策略345来决定什么动作应该被执行。助理系统140可以使用具有处置跨域业务逻辑的通用策略346的分层对话策略,并且任务策略347处置任务/域特定逻辑。在特定实施例中,通用策略346可以从候选运算符中选取一个运算符来更新对话状态,然后通过任务策略347选择面向用户的动作。一旦任务在对话状态中是活动的,对应的任务策略347可以被咨询来选择正确的动作。在特定实施例中,对话状态追踪器337和动作选择器341都可以不改变对话状态,直到所选的动作被执行为止。这可以允许助理系统140执行对话状态追踪器337和动作选择器341,以处理推测性ASR结果并且使用空运行进行n个最佳排列。在特定实施例中,动作选择器341可以将对话状态更新运算符作为输入的一部分来选择对话动作。对话动作的执行可以生成期望集合,以指示对话状态追踪器337处置未来的回合。在特定实施例中,当处置来自下一回合的用户输入时,期望可以被用于向对话状态追踪器337提供上下文。作为示例而不通过限制,槽位请求对话动作可能具有证明所请求槽位的值的期望。
在特定实施例中,对话管理器335可以支持槽位提及的多回合组成解析。针对来自NLU 210的组成剖析,解析器可以递归地解析嵌套槽位。对话管理器335可以附加地支持对嵌套槽位的消歧。作为示例而不通过限制,用户请求可以是“提醒我给亚历克斯打电话”。在创建可行动的提醒待办事项实体之前,解析器可能需要知道要呼叫哪个亚历克斯。当需要对特定槽位进行进一步的用户阐明时,解析器可能会停止解析并且设置解析状态。通用策略346可以检查解析状态,并且创建对应的对话动作以供用户阐明。在对话状态追踪器337中,基于用户请求和最后的对话动作,对话管理器可以更新嵌套槽位。这种能力可以允许助理系统140与用户交互,不仅收集缺失的槽位值而且减少更复杂/模棱两可的话语的歧义以完成任务。在特定实施例中,对话管理器还可以支持请求嵌套意图和多意图用户请求中的缺失槽位(例如“拍下这张照片并将其发送给爸爸”)。在特定实施例中,对话管理器335可以支持机器学习模型以获得更稳健的对话体验。作为示例而不通过限制,对话状态追踪器337可以使用基于神经网络的模型(或任何其他合适的机器学习模型)来对任务假设上的信念(belief)进行建模。作为另一示例而不通过限制,针对动作选择器341,最高优先级策略单元可以包括白名单/黑名单覆盖,这可能必须按设计发生;中等优先级单元可以包括为动作选择而设计的机器学习模型;并且当机器学习模型选择不处置某种情况时,较低优先级的单元可以包括基于规则的回退。在特定实施例中,基于机器学习模型的通用策略单元可以帮助助理系统140减少冗余消歧或确认步骤,从而减少执行用户请求的回合数量。
在特定实施例中,动作执行模块226可以调用不同代理350用于任务执行。代理350可以在注册的内容提供方中进行选择以完成动作。数据结构可以由对话管理器335基于意图和与该意图相关联的一个或多个槽位来构建。对话策略345还可以包括通过逻辑运算符彼此相关的多个目标。在特定实施例中,目标可以是对话策略的一部分的结果,并且它可以由对话管理器335构造。目标可以由具有一个或多个命名参数的标识符(例如字符串)表示,其参数化目标。作为示例而不通过限制,具有关联目标参数的目标可以被表示为{confirm_artist,args:{artist:“Madonna”}}。在特定实施例中,对话策略可以基于树结构的表示,其中目标被映射到树的叶子。在特定实施例中,对话管理器335可以执行对话策略345以确定要执行的下一动作。对话策略345可以包括通用策略346和域特定策略347,这两者都可以指导如何基于对话状态选择下一系统动作。在特定实施例中,动作执行模块226的任务完成组件340可以与对话仲裁器216中所包括的对话策略345通信,以获得下一系统动作的指导。在特定实施例中,动作选择组件341因此可以基于对话意图、关联的内容对象和来自对话策略345的指导来选择动作。
在特定实施例中,动作执行模块226的输出可以被发送给远程响应执行模块232。具体地,动作执行模块226的任务完成组件340的输出可以被发送给响应执行模块226的CU撰写器355。在备选的实施例中,所选动作可能需要涉及一个或多个代理350。因此,任务完成模块340可以将所选动作通知给代理350。同时,对话管理器335可以接收更新对话状态的指令。作为示例而不通过限制,更新可以包括等待代理的350响应。在特定实施例中,CU撰写器355可以基于任务完成模块340的输出使用自然语言生成(NLG)模块356为用户生成通信内容。在特定实施例中,NLG模块356可以使用不同语言模型和/或语言模板来生成自然语言输出。自然语言输出的生成可能是特定于应用的。自然语言输出的生成也可以为每个用户个性化。CU撰写器355还可以使用UI有效载荷生成器357来确定生成的通信内容的模态。由于生成的通信内容可以被视为对用户请求的响应,因此CU撰写器355可以附加地使用响应排列器358排列生成的通信内容。作为示例而不通过限制,排列可以指示响应的优先级。在特定实施例中,CU撰写器355可以包括可以与NLG模块356分离的自然语言合成(NLS)模块。NLS模块可以指定由CU撰写器355生成的合成言语的属性,包括性别、音量、步速、风格或音区(register),以便为特定用户、任务或代理定制响应。NLS模块可以在不参与关联任务的实施方式的情况下调谐语言合成。关于定制自然语言生成的更多信息可以在于2018年4月30日提交的美国专利申请号15/966455中找到,其通过引用并入。
在特定实施例中,响应执行模块232可以基于CU撰写器355的输出来执行不同的任务。这些任务可以包括写入(即,存储/更新)从数据存储库212取回的对话状态361,并且生成响应362。在特定实施例中,CU撰写器355的输出可以包括可以在VR耳机或AR智能眼镜中显示的自然语言字符串、言语、具有参数的动作或渲染图像或视频中的一个或多个。因此,响应执行模块232可以基于CU撰写器355的输出确定要执行什么任务。在特定实施例中,生成的响应和通信内容可以由响应执行模块232发送给本地渲染输出模块242。在备选的实施例中,如果所确定的通信内容的模态是音频,则CU撰写器355的输出可以附加地被发送给远程TTS模块238。由TTS模块238生成的言语和由响应执行模块232生成的响应然后可以被发送给渲染输出模块242。
图4示出了由助理系统140处理用户输入的示例图流程。作为示例而不通过限制,用户输入可以基于音频信号。在特定实施例中,客户端系统130的麦克风阵列402可以接收音频信号(例如言语)。音频信号可以以音频帧的格式传输给处理回路404。在特定实施例中,过程回路404可以发送用于语音活动检测(VAD)406和语音唤醒(WoV)检测408的音频帧。检测结果可以被返回到过程回路404。如果WoV检测408指示用户想要调用助理系统140,则音频帧以及VAD 406结果可以被发送给编码单元410以生成编码音频数据。在编码之后,出于隐私和安全性目的,编码的音频数据可以被发送给加密单元412,随后是链接单元414和解密单元416。在解密之后,音频数据可以被发送给麦克风驱动器418,其还可以将音频数据传输给音频服务模块420。在备选的实施例中,用户输入可以在与客户端系统130配对的无线设备(例如蓝牙设备)处接收。对应地,音频数据可以从无线设备驱动器422(例如蓝牙驱动器)发送给音频服务模块420。在特定实施例中,音频服务模块420可以确定用户输入可以由在客户端系统130上执行的应用来完成。因此,音频服务模块420可以将用户输入发送给实时通信(RTC)模块424。RTC模块424可以将音频分组递送给视频或音频通信系统(例如VOIP或视频呼叫)。RTC模块424可以调用相关应用(App)426来执行与用户输入相关联的任务。
在特定实施例中,音频服务模块420可以确定用户正在请求需要助理系统140响应的辅助。因此,音频服务模块420可以通知客户端-助理服务模块426。在特定实施例中,客户端-助理服务模块426可以与助理协调器206通信。助理协调器206可以确定是使用客户端侧过程还是服务器侧过程响应用户输入。在特定实施例中,助理协调器206可以确定使用客户端侧过程,并且将这种决策通知给客户端-助理服务模块426。因此,客户端-助理服务模块426可以调用相关模块来响应用户输入。
在特定实施例中,客户端-助理服务模块426可以使用本地ASR模块216来分析用户输入。ASR模块216可以包括字素到音素(G2P)模型、发音学习模型、个性化语言模型(PLM)、端点模型和个性化声学模型。在特定实施例中,客户端-助理服务模块426还可以使用本地NLU模块218来理解用户输入。NLU模块218可以包括命名实体解析(NER)组件和上下文的基于会话的NLU组件。在特定实施例中,客户端-助理服务模块426可以使用意图经纪428来分析用户意图。为了准确地了解用户的意图,意图经纪428可以访问实体存储库430,该实体存储库包括与用户和世界相关联的实体。在备选的实施例中,用户输入可以经由在客户端系统130上执行的应用432提交。在这种情况下,输入管理器434可以接收用户输入,并且通过应用环境(App Env)模块436对其进行分析。分析结果可以被发送给应用432,该应用432还可以将分析结果发送给ASR模块216和NLU模块218。在备选的实施例中,用户输入可以经由在客户端系统130上执行的助理应用438直接提交给客户-助理服务模块426。然后客户端-助理服务模块426可以基于上述模块(即,ASR模块216、NLU模块218和意图经纪428)来执行类似的程序。
在特定实施例中,助理协调器206可以确定用户服务器侧过程。因此,助理协调器206可以将用户输入发送给托管助理系统140的不同模块的一个或多个计算系统。在特定实施例中,服务器-助理服务模块301可以从助理协调器206接收用户输入。服务器-助理服务模块301可以指示远程ASR模块208分析用户输入的音频数据。ASR模块208可以包括字素到音素(G2P)模型、发音学习模型、个性化语言模型(PLM)、端点模型和个性化声学模型。在特定实施例中,服务器-助理服务模块301还可以指示远程NLU模块210来理解用户输入。在特定实施例中,服务器-助理服务模块301可以调用远程推理模型214来处理来自ASR模块208和NLU模块210的输出。在特定实施例中,推理模型214可以执行实体解析和对话优化。在特定实施例中,推理模型314的输出可以被发送给代理350,以用于执行一个或多个相关任务。
在特定实施例中,代理350可以访问本体模块440,以准确地理解来自实体解析和对话优化的结果,使得它可以准确地执行相关任务。本体模块440可以提供与多个预定义域、意图和槽位相关联的本体数据。本体数据还可以包括不同槽位和域之间的结构关系。本体数据还可以包括槽位可以如何分组、在更高级别包括域的层次结构内相关以及根据相似性和差异进行细分的信息。本体数据还可以包括槽位可以如何分组、在更高级别包括话题的层次结构内相关以及根据相似性和差异进行细分的信息。一旦任务被执行,代理350可以将执行结果连同任务完成指示一起返回给推理模块214。
本文公开的实施例可以包括人工现实系统或结合人工现实系统来实施。人工现实是一种在呈现给用户之前已经以某种方式被调整的现实形式,其可以包括例如虚拟现实(VR)、增强现实(AR)、混合现实(MR)、混合现实或其某种组合和/或衍生物。人工现实内容可以包括完全生成的内容或与捕获的内容(例如现实世界的照片)组合的生成的内容。人工现实内容可以包括视频、音频、触觉反馈或其某种组合,并且其中的任何一个都可以在单个信道或多个信道中呈现(诸如对查看者产生三维效果的立体视频)。附加地,在一些实施例中,人工现实可以与应用、产品、附件、服务或其某种组合相关联,其例如被用于在人工现实中创建内容和/或在人工现实中使用(例如在其中执行活动)。提供人工现实内容的人工现实系统可以在各种平台上实施,包括连接至主机计算机系统的头戴式显示器(HMD)、独立的HMD、移动设备或计算系统或者能够向一个或多个查看者提供人工现实内容的任何其他硬件平台。
生成主动内容
在特定实施例中,助理系统140可以向用户提供主动内容建议,其可以由多种多模信号触发。主动内容也可以作为响应于用户请求的后续动作而被提供,这可以被认为是一种半主动用例(即,它可能不是完全主动的,因为它响应用户请求)。主动内容可以包括建议查询、建议的后续行动、补充信息、调查或任何其他合适的内容。当作为后续动作提供时,主动内容可以通过在用户任务完成后扩展对话来丰富用户对话。作为示例而不通过限制,用户可能会询问“现在几点了?”。助理系统140可以回复“现在是上午11:30”。助理系统140还可以提供建议的后续动作(诸如“您想看看您的日历吗?”)或补充信息(如“您中午去看牙医需要15分钟”)。作为另一示例而不通过限制,用户可能会询问“现在正在播放什么歌曲?”,其中用户请求的任务可能是[IN:get_track_info_music()]。助理系统140可以回复“这是Outkast的Hey Ya”,这标记了任务的完成。助理系统140还可以主动询问“您想要将这首歌添加到您的收藏夹吗?”,这对应于建议的后续动作(即,[IN:add_to_favorites()])。任务的完成、用户上下文的变化或相关的多模信号可以触发主动策略。基于主动策略,助理系统140可以确定将执行什么种类的主动内容。助理系统140可以采用与用户的先前交互或关于用户的先前知识来确定什么主动内容是合适的。助理系统140可以基于对话的每个回合的用户反馈或在多模上下文中生成主动内容链,其中助理系统140可以响应于用户与主动内容或动态多模信号交互而继续主动地提供内容。作为示例而不通过限制,助理系统140可以充当推荐器系统,其中助理系统140在每个回合结束时提供新推荐。通过主动内容,助理系统140可以提供直接的增长机会(例如用户教育)和用户满意度测量以及可以被用于与助理系统140相关联的进一步特征或增强的核心技术。尽管本公开描述了由特定系统以特定方式生成特定主动内容,本公开设想由任何合适系统以任何合适方式生成任何合适的主动内容。
在特定实施例中,助理系统140可以接收与主动触发器相关联的一个或多个输入,该主动触发器与第一用户相关联。助理系统140可以基于一个或多个主动策略来确定第一用户是否有资格接收主动建议。助理系统140然后可以基于一个或多个输入和与第一用户相关联的用户上下文数据来生成一个或多个主动建议。在特定实施例中,助理系统140可以基于与第一用户相关联的任务历史数据来选择一个或多个主动建议。助理系统140还可以向与第一用户相关联的客户端系统130发送用于向第一用户呈现主动内容的指令。主动内容可以包括所选择的主动建议。
在特定实施例中,助理系统140可以使用不同类型的多模信号来确定向用户提供什么主动内容。多模信号可以包括日期、时间、位置、视觉信号、声音信号、实体更新或用户上下文中的一个或多个。作为示例而不通过限制,如果日期和时间指示圣诞节前一周,则主动内容可以是购买礼物的主动建议。作为另一示例而不通过限制,如果声音是歌曲,则主动内容可以是相关艺人的主动建议。因此,助理系统140可以具有通过响应于不同类型的多模信号自动向用户提供主动建议来增加用户与助理系统140互动的程度的技术优点。尽管本公开描述了以特定方式基于特定信号确定特定内容,但本公开设想以任何合适方式基于任何合适信号确定任何合适的内容。
图5图示了用于提供主动建议的示例架构500。在特定实施例中,主动建议可以响应于用户请求来提供。如图5所图示的,用户请求可以基于言语,并且在服务器侧ASR模块208或客户端侧ASR模块216处接收。ASR模块208/216可以从言语中提取文本,并且将所提取的文本发送给服务器侧NLU模块210或客户端侧NLU模块218。NLU模块210/218可以确定与用户请求相关联的意图和槽位。意图和槽位可以被发送给对话状态追踪器337。在特定实施例中,主动建议可以响应于多模信号而被提供。作为示例而不通过限制,多模信号可以是手势、位置、视觉等。助理系统140可以理解多模信号,并且将它们映射到事件。这些事件可能来自不同的源。作为示例而不通过限制,意图可以被视为特殊类型的事件。助理系统140可以使用本体来维护有效事件的类型。在特定实施例中,多模信号可以在用户上下文引擎(UCE)315处接收。UCE 315可以确定一个或多个多模事件,并且将它们发送给对话状态追踪器337。在特定实施例中,主动建议可以响应于世界更新或社交更新而被提供。一个或多个观察者505可以检测这种更新,并且相应地生成世界/社交事件。作为示例而不通过限制,世界事件可以是旧金山的天气变化。作为另一示例而不通过限制,社交事件可以是妈妈上网。观察者505可以将世界/社交事件发送给对话状态追踪器337。在特定实施例中,助理系统140可以在对话状态追踪器337之前或内部过滤有效事件。尽管本公开描述了由特定系统响应于特定信号以特定方式提供特定建议,本公开设想由任何合适系统响应于任何合适信号以任何合适方式提供任何合适的建议。
在特定实施例中,对话状态追踪器337可以追踪与用户相关的事件,并且基于意图、槽位、多模事件、世界事件或社交事件中的一个或多个来建议候选任务。用户状态(例如用户的当前活动)和任务状态(例如触发条件)可以被追踪。给定当前状态,对话状态追踪器337可以建议助理系统140可以为用户执行的候选任务。作为示例而不通过限制,候选任务可以是“示出建议”、“获得天气信息”或“拍照”。在特定实施例中,对话状态追踪器337可以基于包括知识图谱510、用户记忆515和用户任务历史520的可用知识来建议候选任务。在特定实施例中,用户记忆515可以是事实的源,以存储可以为用户触发的所有可能主动任务。候选任务可以被发送给动作选择器341,该动作选择器341可以与其他模块通信以向用户呈现主动内容。在特定实施例中,动作选择器341可以从对话状态追踪器337接收建议的候选任务,并且咨询智能调度器525以确定该任务的优先级以及是否可以递送该任务。动作选择器341还可以调用有效载荷生成器来生成有效载荷,并且返回预期去往客户端系统130的“通知”动作。给定建议的候选任务,动作选择器341可以决定要采取的动作以便完成任务。诸如任务是否准备好执行/递送的验证可以由动作选择器341来完成。在特定实施例中,助理推荐器530可以确定向用户提供什么主动建议。助理推荐器530可以基于与第一用户相关联的用户上下文数据、与第一用户相关联的用户记忆515或知识图谱510中的一个或多个来选择一个或多个主动建议。在特定实施例中,如果主动建议需要由代理350执行,则助理推荐器530可以与不同的代理350通信。助理推荐器530还可以与用户教育模块535通信。尽管本公开描述了由特定系统以特定方式确定特定任务和动作,本公开设想由任何合适系统以任何合适方式确定任何合适的任务和动作。
在特定实施例中,用户教育模块535可以负责推荐允许用户学习关于助理系统140的能力的新技能的主动建议。用户教育模块535可以访问用户任务历史520和用户记忆515以查看用户已经知道如何做什么,然后推荐用户以前没有尝试做的技能。因此,助理系统140可以具有辅助用户学习助理系统140能够掌握的新技能的技术优点,因为助理系统140可以基于历史数据来准确地确定用户还没有探索过哪些技能,并且向用户提供与这种技能相关的建议。另外,用户教育模块535可以考虑用户上下文、对话上下文、用户任务历史520、用户记忆515,以确保推荐的主动建议与用户相关并且使用户感兴趣。用户教育模块535可以预测用户的下一意图以确定具体的助理技能。具体地,用户教育模块535可以基于一个或多个输入确定与第一用户相关联的初始意图。用户教育模块535然后可以基于初始意图确定与第一用户相关联的后续意图。因此,助理系统140可以进一步基于后续意图生成一个或多个主动建议。作为示例而不通过限制,下一意图可以是对新任务的推荐。在特定实施例中,如果助理系统140从UCE 315和用户任务历史520知道用户接下来可能想要执行该技能,则下一意图可以是对用户先前使用的技能的推荐。因此,用户教育模块535可以向用户推荐之前已经推荐的主动建议。在特定实施例中,确定后续意图可以基于机器学习模型。机器学习模型可以基于与多个意图对相关联的数据来训练。在特定实施例中,与多个意图对相关联的数据可以包括与初始意图和后续意图之间的意图对相关联的数据。作为示例而不通过限制,如果多个用户交互揭示意图B始终跟随意图A,则助理系统140可以生成意图对A-B。因此,当用户教育模块535标识出未来的意图A时,它可以预测用户的下一意图作为意图B。在特定实施例中,用户教育模块535可以使用价值模型排列器来获得模块层处的第一级排列,以确定要推荐的最佳主动建议。使用用户上下文、对话上下文、用户任务历史、用户记忆和知识图谱来确定主动建议可能是解决准确确定向用户提供哪些主动建议的技术挑战的有效解决方案,因为这些不同类型的数据可以保证推荐的主动建议对用户来说是相关的和感兴趣的。尽管本公开描述了由特定系统以特定方式推荐特定建议,但本公开设想由任何合适系统以任何合适方式推荐任何合适的建议。
在特定实施例中,智能调度器525可以被用于调度尚未调度的任务,并且在生成用于递送的有效载荷之前强制实施速率限制、优先级设置和任何其他个性化要求。智能调度器525可以确定主动内容的递送调度。对应地,发送用于向第一用户呈现主动内容的指令可以基于递送调度。递送调度可以基于与第一用户相关联的用户上下文数据(即,来自UCE315)、与第一用户相关联的用户记忆515或知识图谱510中的一个或多个来确定。智能调度器525可以将确定的递送调发送回动作选择器341。基于用户上下文数据、用户记忆或知识图谱来确定主动内容的递送调度可能是一种有效的解决方案,用于在最适当的条件下为用户提供主动内容,因为这些类型的数据可以捕获用户可能愿意利用主动内容提示的个人偏好。在特定实施例中,动作选择器341可以针对客户端系统130递送和执行动作,以通过将动作递送给(多个)具体设备并且获取实时设备上下文并且将其与由上游组件设置的交互模式(例如,无中断)相匹配来完成任务。作为示例而不通过限制,动作可以包括通知、建议、请求槽位或设备控制中的一个或多个。例如,助理系统140可以构建意图确认对话动作(即,“提示”对话动作类型)。这可能包括针对新任务的主动建议的意图和槽位。助理系统140还可以询问与“提示”对话动作模板相对应的是/否问题。如果用户说“是”,则新任务可以被执行。给定递送状态更新,动作选择器341还可以向对话状态追踪器337发送反馈。尽管本公开描述了由特定系统以特定方式调度特定内容,但本公开设想由任何合适系统以任何合适方式调度任何合适的内容。
在特定实施例中,助理系统140可以以在线方式(例如在给定用户的显式请求的情况下立即创建)或以离线方式(例如通过离线挖掘用户的行为模式异步创建)来创建主动任务。作为示例而不通过限制,用于在任务完成时向用户发送反馈或重试任务的任务可以被在线创建。主动任务也可以与离线处理异步创建。助理系统140可以在用户记忆之上执行离线推理以挖掘用户行为模式并且然后为用户调度基于例程的主动任务。助理系统140可以具有在用户记忆515之上运行的推理层,并且异步调用智能调度器525来处置批处理。尽管本公开描述了由特定系统以特定方式创建特定任务,但本公开设想由任何合适系统以任何合适方式创建任何合适的任务。
在特定实施例中,助理系统140可以使用对话策略来确定是否向用户提供主动建议,如果是,则提供哪个主动建议。对话策略可以包括资格策略,其能够确定用户是否有资格获得主动建议。资格策略还可以确定是否是提供这种主动建议的合适时间。资格策略可以基于不同的信息,诸如用户上下文(来自UCE 315)、用户任务历史520或用户记忆515。换言之,确定第一用户是否有资格接收主动建议还可以基于与第一用户相关联的用户上下文数据、与第一用户相关联的任务历史数据520或与第一用户相关联的用户记忆515中的一个或多个。用户上下文可以指示第一用户参与的当前任务/活动。作为示例而不通过限制,如果用户要睡觉或者如果用户忙于专注于另一任务,例如驾驶、跑步或开会,则助理系统140可能不基于资格策略提供主动建议。在特定实施例中,如果与输入相关联的任务/意图在任务/意图/技能的白名单中,则用户可能有资格接收主动建议。另外,如果用户最近接收到了另一主动建议(例如在最后一小时、最后一天内,等),则资格策略可以确定不提供任何新的主动建议,以免用户被不需要的建议过载。然而,如果用户已接受最后建议以允许主动建议链,则主动策略可以确定绕过资格策略。基于用户上下文数据、任务历史数据或用户记忆使用对话策略来确定用户是否有资格获得主动建议可能是解决技术挑战的有效解决方案,即,不让用户因不想要的建议而过载,如此对话策略可以有效地使用与用户相关的当前信息和历史信息来评估用户是否想要主动建议。尽管本公开描述以特定方式用于特定建议的特定策略,但本公开设想以任何合适方式用于任何合适建议的任何合适策略。
针对每个用户,助理系统140可以在用户任务历史520或用户记忆515中存储结构化的意图历史。因此,针对每个用户和每个意图,助理系统140可能能够快速查找用户的先前意图。附加地,针对每个用户,助理系统140可以存储任何主动建议被提供的最后时间以及哪些主动建议已经被提供作为用户的助理活动日志。存储用户的助理活动日志可能有助于满足不过度触发主动建议并且不做出相同的主动建议多于一次的目标。尽管本公开描述了由特定系统以特定方式存储特定用户历史/存储器,但本公开设想由任何合适系统以任何合适方式存储任何合适的用户历史/存储器。
在特定实施例中,助理系统140可以使用不同的主动内容模块来生成主动建议。这些内容模块可以确定什么主动建议是相关的或可用的。所有内容模块可以并行执行并且产生候选的主动建议。主动内容模块的并行化可以允许单个策略控制所有模块,并且使对附加类型的主动内容缩放更容易。创建对话动作的任何模块都可以是与其他模块并行执行的主动内容模块中的一个主动内容模块。在特定实施例中,每个模块可以确定它自己的可能的主动内容排列,并且仅输出排列靠前的内容。尽管本公开描述了以特定方式的特定内容模块,但本公开设想以任何合适方式的任何合适的内容模块。
在特定实施例中,一个或多个主动建议中的每个主动建议可以包括建议调查、建议查询或者建议任务中的一个或多个。在特定实施例中,如果主动建议包括一个或多个建议调查,则助理系统140可以通过创建请求用户反馈的对话动作来生成通用用户满意度调查。作为示例而不通过限制,建议调查可能是“您今天的体验好吗?”,用户可以回答“是”或“否”。作为另一示例而不通过限制,建议调查可以是“从1到5对您的体验进行评价”,用户可以从1到5中选择。作为又一示例而不通过限制,建议调查可能是“请帮助我学习:我是否正确解析了您的请求?”。助理系统140可以利用建议调查来采集用于用户满意度测量的显式用户反馈。尽管本公开描述了以特定方式的特定调查,但本公开设想以任何合适方式的任何合适的调查。
在特定实施例中,生成一个或多个主动建议可以包括访问包括多个主动建议的预先确定的建议列表。预先确定的建议列表可以基于与第一用户相关联的任务历史数据520、与第一用户相关联的用户记忆515或知识图谱510中的一个或多个来生成。作为示例而不通过限制,如果主动建议包括一个或多个经建议的问题,则预先确定的建议列表可以包括列入黑名单的问题场景/意图。列入黑名单的问题场景/意图可以确保用户不会接收到他们之前已经回答过的建议问题,在给定的时间段内不会被多次提示任何建议问题(例如每天最多一个建议问题),并且不会被多次提示任何具体的建议问题。助理系统140可以创建询问用户是否想要执行具体技能的对话动作。作为示例而不通过限制,对话动作类型可以是“提示”,例如“您想要设置新闹钟吗?”。如果用户说“是”,则助理系统140可以执行推荐的技能。如果用户说“否”,则助理系统140可以不执行任何动作。作为另一示例而不通过限制,如果主动建议包括一个或多个建议任务,则预先确定的建议列表可以包括列入黑名单的任务场景/意图。列入黑名单的任务场景/意图可以用作与列入黑名单的问题场景/意图类似的目的。助理系统140可以创建通知用户另一助理技能的对话动作。作为示例而不通过限制,对话动作类型可以是“建议”,例如“我也可以为您设置闹钟。试着说这样的话,嘿助理把闹钟设置在明天早上7点。”在这种情况下,可能不需要用户反馈/响应。尽管本公开描述了以特定方式基于特定列表生成特定建议,但本公开设想以任何合适方式基于任何合适列表生成任何合适的建议。
如果用户有资格接受建议调查、建议问题、建议任务或任何类型的主动内容,则助理系统140可以仅选取一个来提供给用户。在特定实施例中,动作选择器341可以对来自所有主动内容模块的选项进行排列以呈现最高主动建议。换言之,动作选择器341可以执行跨域排列。主动内容模块中的每个主动内容模块都可以可选地产生对话行动,动作选择器341可以选择这些动作中的一个动作来实际执行。在特定实施例中,对话动作可以随机地或基于更复杂的规则/模型而被选择。作为示例而不通过限制,一个规则可以是基于用户任务历史520和/或用户记忆515,应该优先考虑最近最少使用哪个主动内容模块用于主动建议,其目的在于提高多样性。动作选择器341可以访问用户任务历史520和/或用户记忆515,确定主动对话动作被提供有时间戳,标识其动作被执行的主动内容模块的名称,并且访问模块特定信息。尽管本公开描述了由特定系统以特定方式排列特定建议,但本公开设想由任何合适系统以任何合适方式排列任何合适的建议。
在特定实施例中,一个或多个输入可以包括完成第一任务的一个或多个指示。对应地,一个或多个主动建议中的每个主动建议可以包括后续调查、后续问题或后续任务中的一个或多个。在该场景中,助理系统140可以验证第一任务在有资格获得主动建议的任务的白名单中。在特定实施例中,助理系统140可以在每个回合中基于用户反馈生成主动建议链。助理系统140可以响应于呈现的主动内容从客户端系统130接收来自第一用户的用户输入。助理系统140然后可以响应于用户输入执行第二任务。助理系统140还可以基于第一任务和第二任务的执行生成一个或多个更新的主动建议。在特定实施例中,助理系统140可以使用上下文移行,即,将来自用户的初始请求的意图和/或槽位携带到主动建议,以用于生成链式主动建议。作为示例而不通过限制,在第一任务被完成后,助理系统140可以生成对应于第二任务的第一主动建议,并且将其主动呈现给用户。如果用户确认第一主动建议(例如通过说“是”),则助理系统140可以完成第二任务。助理系统140然后可以考虑第一任务和第二任务,以生成对应于第三任务的第二主动建议并且将其主动呈现给用户。助理系统140可以继续这种主动建议的链式序列,直到用户反馈指示用户不再对主动建议感兴趣为止。尽管本公开描述了由特定系统以特定方式生成特定链式建议,但本公开设想由任何合适系统以任何合适方式生成任何合适的链式建议。
在特定实施例中,一个或多个输入可以包括一个或多个多模信号。每个多模信号可以基于日期、时间、位置、视觉信号、声音信号、实体更新或用户上下文中的一个或多个。助理系统140可以类似地在多模上下文中生成主动建议链。在特定实施例中,助理系统140可以接收一个或多个更新的多模信号。助理系统140然后可以基于更新的多模信号生成一个或多个更新的主动建议。作为示例而不通过限制,随着新的多模信号进入,UCE 315可以更新与用户相关联的用户上下文。更新的用户上下文可以被记录在多模对话状态中。助理系统140然后可以响应于更新的用户上下文提供新的主动建议。尽管本公开描述了由特定系统以特定方式生成特定链式建议,但本公开设想由任何合适系统以任何合适方式生成任何合适的链式建议。
在特定实施例中,所选的主动建议可以被返回到对话管理器335。对话管理器335可以使用NLG模块356来基于主动建议生成响应,例如建议调查、建议问题或建议任务。在特定实施例中,NLG对话行动可以针对目标场所启用以允许对话行动堆叠。用于主动建议的NLG模板可能已被本地化。在特定实施例中,所选的主动建议可以被同时存储在用户任务历史520和/或用户记忆515中以供将来使用。尽管本公开描述了由特定系统以特定方式生成特定响应,但本公开设想由任何合适系统以任何合适方式生成任何合适的响应。
图6A图示了响应于检查时间的用户请求的示例主动建议。如图6A所图示的,用户600可以经由他的客户端系统130(例如智能电话)询问助理系统140“嘿助理现在几点了?602”。助理系统140可以执行检查时间的任务,并且回复“现在是上午11:30。604”。助理系统140还可以生成主动建议“您想看看您的日历吗?606”。图6B图示了响应于检查时间的用户请求的另一示例主动建议。如图6B所图示的,用户600可以询问助理系统140相同的问题,即,“嘿助理现在几点了?602”。助理系统140可以检查时间,并且回复“现在是上午11:30。604”。助理系统140还可以检查用户600的日历,并且生成主动建议,即,“您中午去看牙医需要15分钟。606”。
图7A图示了响应于用户请求以拍照的示例主动建议。如图7A所图示的,用户700可以经由他的客户端系统130(例如平板计算机)向助理系统140说出请求,即,“嘿助理给这只狗拍照。702”。助理系统140可以执行任务并且回复“完成。704”。助理系统140还可以生成主动建议,即,“您想发布到网上吗?706”。图7B图示了响应于拍照的用户请求的另一示例主动建议。如图7B所图示的,用户700可以请求助理系统140做同样的事情,即,拍照。助理系统140可以执行任务并且回复“完成。704”。助理系统140还可以生成主动建议,即,“您可以使用智能相机工具编辑它。708”。
图8图示了响应于视觉信号的示例主动建议。如图8所图示的,用户800可以穿戴AR/VR眼镜作为客户端系统130。用户可以看到时钟802,其示出当天是2020年12月20日。由AR/VR眼镜捕获的视觉信号可以触发主动建议。因此,助理系统140可以生成主动建议,即,“快到圣诞节了。您想在网上买些圣诞礼物吗?804”。
图9图示了响应于音频信号的示例主动建议。如图9所图示的,用户900可能坐在客厅中,附近有智能坞站(即,客户端系统130)。用户可能会收听一些音乐。由智能坞站捕获的音频信号可以触发主动建议。因此,助理系统140可以首先基于接收到的音频信号执行音乐取回,并且确定它是什么歌曲以及它属于哪个艺人。助理系统140可以生成响应902为“这是艺人A的新广告牌。艺人B和C具有类似的歌曲。您想要收听吗?”响应902可以包括用户收听到的音乐的信息以及建议用户收听一些类似歌曲的主动建议。
图10图示了主动建议链的示例。如图10所图示的,用户900可能坐在客厅中,附近有智能坞站(即,客户端系统130)。用户900可以询问助理系统140“嘿助理,附近有任何不错的希腊餐厅吗?904”。助理系统140可以回复“Gyro Bistro是一个不错的餐厅。906”。助理系统140可以生成第一主动建议,即,“您想要预订还是送货上门?908”。用户900可以回复“送货上门。910”。基于用户反馈,助理系统140还可以生成第二主动建议,即,“如果您经由他们的应用点餐,配送应用现在有促销,。912”。用户900可能会说“哦真的吗?那么让我们经由配送应用点餐。914”。在接收到用户的900确认时,助理系统140可以生成第三主动建议“您想点希腊羔羊肉沙拉吗?这是他们的招牌菜和畅销品。916”。用户900可以确认说“当然。918”。助理系统140可以附加地生成第四主动建议,即,“您还想要什么?920”。用户900可以通过说“就是这样。922”来指示他不愿意收听任何更多建议。助理系统140可以执行点餐任务,并且以“现在点餐。924”通知用户状态”。
图11图示了用于提供主动建议的示例方法1100。该方法可以开始于步骤1110,其中助理系统140可以接收与主动触发器相关联的一个或多个输入,主动触发器与第一用户相关联,其中一个或多个输入包括完成第一任务的指示或多模信号中的一个或多个,其基于日期、时间、位置、视觉信号、声音信号、实体更新或用户上下文中的一个或多个。在步骤1120中,助理系统140可以基于主动策略、与第一用户相关联的用户上下文数据、与第一用户相关联的任务历史数据或者与第一用户相关联的用户记忆中的一个或多个确定第一用户是否有资格接收主动建议。在步骤1130中,助理系统140可以基于一个或多个输入和与第一用户相关联的用户上下文数据生成一个或多个主动建议,其中一个或多个主动建议中的每个主动建议包括建议调查、建议查询、建议任务、后续调查、后续问题或后续任务中的一个或多个,其中生成包括访问包括多个主动建议的预先确定的建议列表,该预先确定的建议列表基于与第一用户相关联的任务历史数据、与第一用户相关联的用户记忆、知识图谱或后续意图中的一个或多个生成。在步骤1140中,助理系统140可以基于一个或多个输入确定与第一用户相关联的初始意图。在步骤1150中,基于机器学习模型,助理系统140可以基于初始意图确定与第一用户相关联的后续意图,其中机器学习模型基于与多个意图对相关联的数据进行训练,并且其中与多个意图对相关联的数据包括与初始意图和后续意图之间的意图对相关联的数据。在步骤1160中,助理系统140可以基于与第一用户相关联的任务历史数据、与第一用户相关联的用户上下文数据、与第一用户相关联的用户记忆或知识图谱中的一个或多个来选择一个或多个主动建议。在步骤1170中,助理系统140可以确定主动内容的递送调度,其中递送调度基于与第一用户相关联的用户上下文数据、与第一用户相关联的用户记忆或者知识图谱中的一个或多个确定。在步骤1180中,助理系统140可以基于递送调度向与第一用户相关联的客户端系统130发送用于向第一用户呈现主动内容的指令,其中主动内容包括所选的主动建议。在适当的情况下,特定实施例可以重复图11的方法的一个或多个步骤。尽管本公开将图11的方法的特定步骤描述并图示为以特定顺序发生,但是本公开设想以任何合适顺序发生的图11的方法的任何合适步骤。而且,虽然本公开描述和图示了用于提供主动建议的示例方法,包括图11的方法的特定步骤,本公开设想用于提供主动建议的任何合适的方法,包括任何合适的步骤,在适当的情况下,其可以包括图11的方法的所有步骤、一些步骤或不包括任何步骤。此外,虽然本公开描述和图示了执行图11的方法的特定步骤的特定组件、设备或系统,但本公开设想执行图11的方法的任何合适步骤的任何合适组件、设备或系统的任何合适组合。
社交图谱
图12图示了示例社交图谱1200。在特定实施例中,社交网络系统160可以在一个或多个数据存储库中存储一个或多个社交图谱1200。在特定实施例中,社交图谱1200可以包括多个节点—其可以包括多个用户节点1202或多个概念节点1204—以及连接节点的多个边缘1206。每个节点都可以与唯一的实体(即,用户或概念)相关联,每个实体都可以具有唯一标识符(ID),诸如唯一的编号或用户名。出于说教目的,图12所图示的示例社交图谱1200以二维视觉映射表示示出。在特定实施例中,社交网络系统160、客户端系统130、助理系统140或第三方系统170可以访问社交图谱1200和用于合适应用的相关社交图谱信息。社交图谱1200的节点和边缘可以被存储为数据对象,例如存储在数据存储库(诸如社交图谱数据库)中。这种数据存储库可以包括社交图谱1200的节点或边缘的一个或多个可搜索或可查询索引。
在特定实施例中,用户节点1202可以对应于社交网络系统160或助理系统140的用户。作为示例而不通过限制,用户可以是个人(人类用户)、实体(例如企业、业务或第三方应用)或群组(例如个人或实体),其与社交网络系统160或助理系统140交互或通信。在特定实施例中,当用户向社交网络系统160注册账户时,社交网络系统160可以创建对应于用户的用户节点1202,并且将用户节点1202存储在一个或多个数据存储库中。在适当的情况下,本文描述的用户和用户节点1202可以指注册用户和与注册用户相关联的用户节点1202。另外或作为替代,在适当的情况下,本文描述的用户和用户节点1202可以指尚未使用社交网络系统160注册的用户。在特定实施例中,用户节点1202可以与由用户提供的信息或由各种系统采集的信息相关联,包括社交网络系统160。作为示例而不通过限制,用户可以提供他或她的姓名、简档图片、联系人信息、出生日期、性别、婚姻状况、家庭状况、就业、教育背景、偏好、兴趣或其他人口统计信息。在特定实施例中,用户节点1202可以与对应于与用户相关联的信息的一个或多个数据对象相关联。在特定实施例中,用户节点1202可以对应于一个或多个web界面。
在特定实施例中,概念节点1204可以对应于概念。作为示例而不通过限制,概念可以对应于地点(诸如例如电影院、餐厅、地标或城市);网站(诸如,例如与社交网络系统160相关联的网站或与web应用服务器相关联的第三方网站);实体(诸如,例如个人、商业、群组、运动队或名人);可以位于社交网络系统160内或外部服务器上的资源(诸如,例如音频文件、视频文件、数字照片、文本文件、结构化文档或应用),诸如web应用服务器;不动产或知识产权(诸如例如雕塑、绘画、电影、游戏、歌曲、想法、照片或书面作品);游戏;活动;想法或理论;另一合适的概念;或两个或多个这种概念。概念节点1204可以与由用户提供的概念的信息或由各种系统采集的信息相关联,包括社交网络系统160和助理系统140。作为示例而不通过限制,概念的信息可以包括姓名或头衔;一个或多个图像(例如书籍封面的图像);位置(例如地址或地理位置);网站(可能与URL相关联);联系人信息(例如电话号码或电子邮件地址);其他合适的概念信息;或这种信息的任何合适组合。在特定实施例中,概念节点1204可以与对应于与概念节点1204相关联的信息的一个或多个数据对象相关联。在特定实施例中,概念节点1204可以对应于一个或多个web界面。
在特定实施例中,社交图谱1200中的节点可以表示web界面(其可以被称为“简档界面”)或由其表示。简档界面可以由社交网络系统160或助理系统140托管或可访问。简档界面还可以被托管在与第三方系统170相关联的第三方网站上。作为示例而不通过限制,对应于特定外部web界面的简档界面可以是特定的外部web界面,并且简档界面可以对应于特定概念节点1204。简档界面可以由其他用户的所有或所选子集查看。作为示例而不通过限制,用户节点1202可以具有对应的用户简档界面,其中对应的用户可以添加内容、做出声明或以其他方式表达他或她自己。作为另一示例且不通过限制,概念节点1204可以具有对应的概念-简档界面,其中一个或多个用户可以添加内容、做出声明或表达他们自己,特别是关于对应于概念节点1204的概念。
在特定实施例中,概念节点1204可以表示由第三方系统170托管的第三方web界面或资源。第三方web界面或资源可以包括除其他元素之外的内容、可选图标或其他图标或者表示动作或活动的其他可交互对象。作为示例而不通过限制,第三方web界面可以包括可选图标,诸如“喜欢”、“登记”、“吃”、“推荐”或另一合适的动作或活动。查看第三方web界面的用户可以通过选择图标中的一个图标(例如“登记”)来执行动作,使得客户端系统130向社交网络系统160发送指示用户动作的消息。响应于该消息,社交网络系统160可以在对应于用户的用户节点1202和对应于第三方web界面或资源的概念节点1204之间创建边缘(例如登记型边缘),并且将边缘1206存储在一个或多个数据存储库中。
在特定实施例中,社交图谱1200中的一对节点可以通过一个或多个边缘1206彼此连接。连接一对节点的边缘1206可以表示这对节点之间的关系。在特定实施例中,边缘1206可以包括或表示对应于一对节点之间的关系的一个或多个数据对象或属性。作为示例而不通过限制,第一用户可以指示第二用户是第一用户的“朋友”。响应于该指示,社交网络系统160可以向第二用户发送“朋友请求”。如果第二用户确认“朋友请求”,则社交网络系统160可以在社交图谱1200中创建将第一用户的用户节点1202连接至第二用户的用户节点1202的边缘1206,并且将边缘1206作为社交图谱信息存储在一个或多个数据存储库164中。在图12的示例中,社交图谱1200包括指示用户“A”和用户“B”的用户节点1202之间的朋友关系的边缘1206和指示用户“C”和用户“B”的用户节点1202之间的朋友关系的边缘。尽管本公开描述或图示了具有连接特定用户节点1202的特定属性的特定边缘1206,但是本公开设想具有连接用户节点1202的任何合适属性的任何合适边缘1206。作为示例而不通过限制,边缘1206可以表示友谊、家庭关系、业务或雇佣关系、粉丝关系(包括例如喜欢等)、关注者关系、访客关系(包括例如访问、查看、登记、共享等)、订户关系,上级/下级关系、互惠关系、非互惠关系、另一合适类型的关系或者两个或多个这种关系。而且,虽然本公开一般将节点描述为被连接,但是本公开也将用户或概念描述为被连接。在本文中,在适当的情况下,对被连接的用户或概念的引用可以指代与社交图谱1200中通过一个或多个边缘1206连接的那些用户或概念相对应的节点。由两个节点表示的两个对象之间的分离程度分别是连接社交图谱1200中的两个节点的最短路径中的边缘计数。作为示例而不通过限制,在社交图谱1200中,用户“C”的用户节点1202经由多个路径被连接至用户“A”的用户节点1202,例如第一路径直接穿过用户“B”的用户节点1202,第二路径穿过公司“阿尔梅”的概念节点1204和用户“D”的用户节点1202,并且第三路径穿过用户节点1202和表示学校“州立福特”、用户“G”、公司“阿尔梅”和用户“D”的概念节点1204。用户“C”和用户“A”的分离程度为2,因为连接它们的对应节点的最短路径(即,第一路径)包括两个边缘1206。
在特定实施例中,用户节点1202和概念节点1204之间的边缘1206可以表示由与用户节点1202相关联的用户针对与概念节点1204相关联的概念执行的特定动作或活动。作为示例而不通过限制,如图12所图示的,用户可以“喜欢”、“参加”、“播放”、“收听”、“烹饪”、“任职于”或“阅读”概念,每个概念可以对应于边缘类型或子类型。对应于概念节点1204的概念-简档界面可以包括例如可选的“登记”图标(诸如例如可点击的“登记”图标)或可选的“添加到收藏夹”图标。类似地,在用户点击这些图标之后,社交网络系统160可以响应于对应于相应动作的用户动作来创建“收藏夹”边缘或“登记”边缘。作为另一示例而不通过限制,用户(用户“C”)可以使用特定应用(第三方在线音乐应用)收听特定歌曲(“想象”)。在这种情况下,社交网络系统160可以在对应于用户的用户节点1202和对应于歌曲和应用的概念节点1204之间创建“收听”边缘1206和“使用”边缘(如图12所图示的),以指示用户收听了歌曲并且使用了应用。而且,社交网络系统160可以在对应于歌曲和应用的概念节点1204之间创建“播放”边缘1206(如图12所图示的),以指示特定歌曲由特定应用播放。在这种情况下,“播放”边缘1206对应于由外部应用(第三方在线音乐应用)对外部音频文件(歌曲“想象”)执行的动作。尽管本公开描述了具有连接用户节点1202和概念节点1204的特定属性的特定边缘1206,但是本公开设想具有连接用户节点1202和概念节点1204的任何合适属性的任何合适的边缘1206。而且,尽管本公开描述了用户节点1202和表示单个关系的概念节点1204之间的边缘,本公开设想用户节点1202和表示一个或多个关系的概念节点1204之间的边缘。作为示例而不通过限制,边缘1206可以表示用户喜欢的和已经在特定概念上使用过的。备选地,另一边缘1206可以表示用户节点1202和概念节点1204之间(如图12所图示的,用户“E”的用户节点1202和“在线音乐应用”的概念节点1204之间)的每种类型的关系(或单个关系的倍数)。
在特定实施例中,社交网络系统160可以在社交图谱1200中的用户节点1202和概念节点1204之间创建边缘1206。作为示例而不通过限制,查看概念-简档界面的用户(诸如,例如通过使用由用户的客户端系统130托管的web浏览器或专用应用)可以通过点击或选择“喜欢”图标来指示他或她喜欢由概念节点1204表示的概念”,这可以使用户的客户端系统130向社交网络系统160发送消息,指示用户喜欢与概念-简档界面相关联的概念。响应于该消息,社交网络系统160可以在与用户相关联的用户节点1202和概念节点1204之间创建边缘1206,如用户和概念节点1204之间的“喜欢”边缘1206所图示的。在特定实施例中,社交网络系统160可以在一个或多个数据存储库中存储边缘1206。在特定实施例中,边缘1206可以由社交网络系统160响应于特定用户动作而自动形成。作为示例而不通过限制,如果第一用户上传图片、看书、看电影或听歌,则边缘1206可以在对应于第一用户的用户节点1202和对应于那些概念的概念节点1204之间形成。尽管本公开描述了以特定方式形成特定边缘1206,但本公开设想以任何合适的方式形成任何合适的边缘1206。
向量空间和嵌入
图13图示了向量空间1300的示例视图。在特定实施例中,对象或n元语法可以在d维向量空间中表示,其中d表示任何合适数量的维度。尽管向量空间1300被图示为三维空间,但这仅用于说明性目的,因为向量空间1300可以具有任何合适的维度。在特定实施例中,n元语法可以在向量空间1300中表示为称为术语嵌入的向量。每个向量可以包括对应于向量空间1300中的特定点(即,向量的终点)的坐标。作为示例而不通过限制,向量1310、1320和1330可以被表示为向量空间1300中的点,如图13所图示的。n元语法可以被映射到相应的向量表示。作为示例而不通过限制,通过应用由词典定义的函数n元语法t1和t2和可以被分别映射到向量空间1300中的向量和使得并且作为另一示例而不通过限制,被训练以将文本映射到向量表示的词典可以被利用,或者这种词典可以经由训练本身生成。作为另一示例而不通过限制,词语嵌入模型可以被用于将n元语法映射到向量空间1300中的向量表示。在特定实施例中,n元语法可以通过使用机器学习模型(例如神经网络)被映射到向量空间1300中的向量表示。机器学习模型可能已经使用一系列训练数据(例如分别包含n元语法的对象语料库)进行了训练。
在特定实施例中,对象可以在向量空间1300中表示为称为特征向量或对象嵌入的向量。作为示例而不通过限制,通过应用函数使得并且对象e1和e2可以被分别映射到向量空间1300中的向量和使得并且在特定实施例中,对象可以基于对象的一个或多个特性、属性或特征、对象与其他对象的关系或与对象相关联的任何其他合适的信息映射到向量。作为示例而不通过限制,函数可以通过特征提取将对象映射到向量,特征提取可以从测量数据的初始集合开始并且构建导出值(例如特征)。作为示例而不通过限制,通过使用算法来检测或隔离对象的各种期望部分或形状,包括视频或图像的对象可以被映射到向量。用于计算向量的特征可以基于从边缘检测、角点检测、斑点检测、脊检测、尺度不变特征变换、边缘方向、变化强度、自相关、运动检测、光学流、阈值化、斑点提取、模板匹配、霍夫变换(例如线、圆、椭圆、任意形状)获得的信息或任何其他合适的信息。作为另一示例而不通过限制,包括音频数据的对象可以基于诸如频谱斜率、音调系数、音频频谱质心、音频频谱包络、梅尔频率倒谱或任何其他合适的信息等特征被映射到向量。在特定实施例中,当对象具有太大而无法有效处理或包括冗余数据的数据时,函数可以使用变换的缩减特征集(例如特征选择)将对象映射到向量。在特定实施例中,函数可以基于与对象e相关联的一个或多个n元语法将对象e映射到向量尽管本公开描述了以特定方式在向量空间中表示n元语法或对象,但本公开设想以任何合适的方式在向量空间中表示n元语法或对象。
在特定实施例中,社交网络系统160可以计算向量空间1300中的向量的相似性度量。相似性度量可以是余弦相似性、闵可夫斯基距离(Minkowski distance)、马氏距离(Mahalanobis distance)、杰卡德相似性系数(Jaccard similarity coefficient)或任何合适的相似性度量。作为示例而不通过限制,和的相似性度量可以是余弦相似性作为另一示例而不通过限制,和的相似性度量可以是欧几里得距离两个向量的相似性度量可以表示分别对应于两个向量的两个对象或n元语法彼此之间的相似程度,如通过向量空间1300中的两个向量之间的距离来测量的。作为示例而不通过限制,基于相应向量之间的距离,与对应于向量1310和向量1330的对象相比,向量1310和向量1320可以对应于彼此更类似的对象。尽管本公开描述了以特定方式计算向量之间的相似性度量,但是本公开设想以任何合适的方式计算向量之间的相似性度量。
关于向量空间、嵌入、特征向量和相似性度量的更多信息可以在于2015年11月23日提交的美国专利申请号14/949436、于2016年10月5日提交的美国专利申请号15/286315和于2016年11月30日提交的美国专利申请号15/365789中找到,其中的每一个都通过引用并入。
人工神经网络
图14图示了示例人工神经网络(“ANN”)1400。在特定实施例中,ANN可以指包括一个或多个节点的计算模型。示例ANN 1400可以包括输入层1410、隐藏层1420、1430、1440和输出层1450。ANN 1400的每层可以包括一个或多个节点,诸如节点1405或节点1415。在特定实施例中,ANN的每个节点都可以被连接至ANN的另一节点。作为示例而不通过限制,输入层1410的每个节点可以被连接至隐藏层1420的多个节点中的一者。在特定实施例中,一个或多个节点可以是偏置节点(例如,在未被连接至任何节点并且不接收来自前一层中的任何节点的输入的层中的节点)。在特定实施例中,每层中的每个节点可以被连接至前一层或后续层的一个或多个节点。虽然图14描绘了具有特定数量的层、特定数量的节点和节点之间的特定连接的特定ANN,本公开设想具有任何合适数量的层、任何合适数量的节点以及节点之间的任何合适连接的任何合适ANN。作为示例而不通过限制,尽管图14描绘了输入层1410的每个节点和隐藏层1420的每个节点之间的连接,输入层1410的一个或多个节点可以不被连接至隐藏层1420的一个或多个节点。
在特定实施例中,ANN可以是前馈ANN(例如,没有循环或回路的ANN,其中节点之间的通信在一个方向上流动,从输入层开始并且继续到连续层)。作为示例而不通过限制,隐藏层1420的每个节点的输入可以包括输入层1410的一个或多个节点的输出。作为另一示例而不通过限制,输出层1450的每个节点的输入可以包括隐藏层1440的一个或多个节点的输出。在特定实施例中,ANN可以是深度神经网络(例如包括至少两个隐藏层的神经网络)。在特定实施例中,ANN可以是深度残差网络(deep residual network)。深度残差网络可以是前馈ANN,包括被组织为残差块的隐藏层。在第一残差块之后的每个残差块的输入可以是前一残差块的输出和前一残差块的输入的函数。作为示例而不通过限制,残差块N的输入可以是F(x)+x,其中F(x)可以是残差块N-1的输出,x可以是残差块N-1的输入。尽管本公开描述了特定ANN,但本公开设想任何合适的ANN。
在特定实施例中,激活函数可以对应于ANN的每个节点。节点的激活函数可以为给定的输入定义节点的输出。在特定实施例中,节点的输入可以包括输入集合。作为示例而不通过限制,激活函数可以是恒等函数、二元阶跃函数、逻辑函数或任何其他合适的函数。作为另一示例而不通过限制,节点k的激活函数可以是sigmoid函数双曲正切函数整流函数Fk(sk)=max(0,sk)或任何其他合适的函数Fk(sk),其中sk可以是节点k的有效输入。在特定实施例中,对应于节点的激活函数的输入可以被加权。每个节点可以使用基于加权输入的对应激活函数来生成输出。在特定实施例中,节点之间的每个连接可以与权重相关联。作为示例而不通过限制,节点1405和节点1415之间的连接1425可以具有0.4的加权系数,这可以指示0.4乘以节点1405的输出被用作节点1415的输入。作为另一示例而不通过限制,节点k的输出yk可以是yk=Fk(sk),其中Fk可以是对应于节点k的激活函数,sk=∑j(wjkxj)可以是节点k的有效输入,xj可以是连接至节点k的节点j的输出,并且wjk可以是节点j和节点k之间的加权系数。在特定实施例中,输入层的节点的输入可以基于表示对象的向量。尽管本公开描述了节点的特定输入和输出,但是本公开设想节点的任何合适的输入和输出。而且,虽然本公开可以描述节点之间的特定连接和权重,但是本公开设想节点之间的任何合适的连接和权重。
在特定实施例中,ANN可以使用训练数据来训练。作为示例而不通过限制,训练数据可以包括ANN 1400的输入和预期输出。作为另一示例但不通过限制,训练数据可以包括向量,各表示训练对象和每个训练对象的预期标签。在特定实施例中,训练ANN可以包括通过优化目标函数来修改与ANN节点之间的连接相关联的权重。作为示例而不通过限制,训练方法可以被使用(例如共轭梯度法、梯度下降法、随机梯度下降),以反向传播作为表示训练对象的每个向量之间的距离而测量的平方和误差(例如使用最小化平方和误差的成本函数)。在特定实施例中,ANN可以使用正则化(dropout)技术来训练。作为示例而不通过限制,一个或多个节点可以在训练时暂时省略(例如不接收输入并且不生成输出)。针对每个训练对象,ANN的一个或多个节点可能有一些被省略的概率。为特定训练对象省略的节点可能与为其他训练对象省略的节点不同(例如节点可以在逐个对象的基础上暂时省略)。尽管本公开描述了以特定方式训练ANN,本公开设想以任何合适的方式训练ANN。
隐私
在特定实施例中,计算系统的一个或多个对象(例如内容或其他类型的对象)可以与一个或多个隐私设置相关联。一个或多个对象可以被存储在任何合适的计算系统或应用上或以其他方式与其相关联,诸如,例如社交网络系统160、客户端系统130、助理系统140、第三方系统170、社交网络应用、助理应用、消息传递应用、照片共享应用或任何其他合适的计算系统或应用。尽管本文讨论的示例是在在线社交网络的上下文中,但这些隐私设置可以被应用于任何其他合适的计算系统。对象的隐私设置(或“访问设置”)可以以任何合适的方式存储,诸如例如与对象相关联、在授权服务器上的索引中、以另一合适的方式或其任何合适的组合。对象的隐私设置可以指定该对象(或与该对象相关联的特定信息)在在线社交网络内可以如何访问、存储或以其他方式使用(例如查看、共享、修改、复制、执行、显露或标识)。当对象的隐私设置允许特定用户或其他实体访问该对象时,该对象可以被描述为相对于该用户或其他实体“可见”。作为示例而不通过限制,在线社交网络的用户可以为用户简档页面指定隐私设置,以标识可以访问用户简档页面上的工作经验信息的用户集合,从而排除其他用户访问该信息。
在特定实施例中,对象的隐私设置可以指定不应被允许访问与对象相关联的某些信息的用户或其他实体的“阻止列表”。在特定实施例中,阻止列表可以包括第三方实体。阻止列表可以指定对象不可见的一个或多个用户或实体。作为示例而不通过限制,用户可以指定可能无法访问与该用户相关联的相册的用户集合,从而排除那些用户访问相册(同时也可能允许不在指定用户集合内的某些用户访问相册)。在特定实施例中,隐私设置可以与特定的社交图谱元素相关联。诸如节点或边缘等社交图谱元素的隐私设置可以指定社交图谱元素、与社交图谱元素相关联的信息或与社交图谱元素相关联的对象可以如何使用在线社交网络访问。作为示例而不通过限制,对应于特定照片的特定概念节点1204可以具有隐私设置,该隐私设置指定该照片只能够由在照片中标注的用户和在照片中标注的用户的朋友访问。在特定实施例中,隐私设置可以允许用户选择加入或选择退出让他们的内容、信息或动作由社交网络系统160或助理系统140存储/记录或与其他系统(例如第三方系统170)共享。尽管本公开描述了以特定方式使用特定隐私设置,但本公开设想以任何合适方式使用任何合适的隐私设置。
在特定实施例中,隐私设置可以基于社交图谱1200的一个或多个节点或边缘。隐私设置可以针对社交图谱1200的一个或多个边缘1206或边缘类型指定,或者相对于社交图谱1200的一个或多个节点1202、1204或节点类型指定。应用于连接两个节点的特定边缘1206的隐私设置可以控制对应于节点的两个实体之间的关系是否对于在线社交网络的其他用户可见。类似地,应用于特定节点的隐私设置可以控制与该节点相对应的用户或概念是否对在线社交网络的其他用户可见。作为示例而不通过限制,第一用户可以将对象共享到社交网络系统160。对象可以与通过边缘1206连接至第一用户的用户节点1202的概念节点1204相关联。第一用户可以指定适用于连接至对象的概念节点1204的特定边缘1206的隐私设置,或者可以指定适用于连接至概念节点1204的所有边缘1206的隐私设置。作为另一示例而不通过限制,第一用户可以共享特定对象类型的对象的集合(例如图像的集合)。相对于与具有特定隐私设置的该特定对象类型的第一用户相关联的所有对象,第一用户可以指定隐私设置(例如指定由第一用户发布的所有图像仅对第一用户的朋友和/或图像中标注的用户可见)。
在特定实施例中,社交网络系统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相关联的其他过程或应用使用。
系统和方法
图15图示了示例计算机系统1500。在特定实施例中,一个或多个计算机系统1500执行本文描述或图示的一种或多种方法的一个或多个步骤。在特定实施例中,一个或多个计算机系统1500提供本文描述或图示的功能。在特定实施例中,在一个或多个计算机系统1500上运行的软件执行本文描述或图示的一种或多种的一个或多个步骤,或者提供本文描述或图示的功能。特定实施例包括一个或多个计算机系统1500的一个或多个部分。在本文中,在适当的情况下,引用计算机系统可以涵盖计算设备,反之亦然。而且,在适当的情况下,引用计算机系统可以涵盖一个或多个计算机系统。
本公开设想了任何合适数量的计算机系统1500。本公开设想了采用任何合适物理形式的计算机系统1500。作为示例而不通过限制,计算机系统1500可以是嵌入式计算机系统、片上系统(SOC)、单板计算机系统(SBC)(诸如,例如模块计算机(COM)或模块系统(SOM))、台式计算机系统、膝上型或笔记本计算机系统、交互式信息亭、大型机、计算机系统网格、移动电话、个人数字助理(PDA)、服务器、平板计算机系统或这些中的两个或多个的组合。在适当的情况下,计算机系统1500可以包括一个或多个计算机系统1500;是单一的或分布式的;跨越多个位置;跨越多个机器;跨越多个数据中心;或驻留在云中,其可以包括一个或多个网络中的一个或多个云组件。在适当的情况下,一个或多个计算机系统1500可以在没有实质空间或时间限制的情况下执行本文描述或图示的一种或多种方法的一个或多个步骤。作为示例而不通过限制,一个或多个计算机系统1500可以实时或以批模式执行本文描述或图示的一种或多种方法的一个或多个步骤。在适当的情况下,一个或多个计算机系统1500可以在不同时间或在不同位置执行本文描述或图示的一种或多种方法的一个或多个步骤。
在特定实施例中,计算机系统1500包括处理器1502、存储器1504、存储装置1506、输入/输出(I/O)接口1508、通信接口1510和总线1512。虽然本公开描述并图示了具有特定布置的特定数量的特定组件的特定计算机系统,但是本公开设想具有任何合适布置的任何合适数量的任何合适组件的任何合适的计算机系统。
在特定实施例中,处理器1502包括用于执行指令的硬件,诸如组成计算机程序的指令。作为示例而不通过限制,为了执行指令,处理器1502可以从内部寄存器、内部缓存、存储器1504或存储装置1506取回(或获取)指令;解码并执行它们;然后将一个或多个结果写入内部寄存器、内部缓存、存储器1504或存储装置1506。在特定实施例中,处理器1502可以包括用于数据、指令或地址的一个或多个内部缓存。本公开设想处理器1502在适当的情况下包括任何合适数量的任何合适的内部缓存。作为示例而不通过限制,处理器1502可以包括一个或多个指令缓存、一个或多个数据缓存以及一个或多个转译后备缓冲器(TLB)。指令缓存中的指令可以是存储器1504或存储装置1506中的指令副本,并且指令缓存可以加速处理器1502对那些指令的取回。数据缓存中的数据可以是存储器1504或存储装置1506中的数据副本,用于在处理器1502处执行以对其进行操作的指令;在处理器1502处执行的先前指令的结果,用于在处理器1502处执行的后续指令访问或写入存储器1504或存储装置1506;或其他合适的数据。数据缓存可以加速处理器1502的读取或写入操作。TLB可以加速处理器1502的虚拟地址转化。在特定实施例中,处理器1502可以包括用于数据、指令或地址的一个或多个内部寄存器。本公开设想处理器1502在适当的情况下包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器1502可以包括一个或多个算术逻辑单元(ALU);是多核处理器;或者包括一个或多个处理器1502。虽然本公开描述并图示了特定处理器,但是本公开设想任何合适的处理器。
在特定实施例中,存储器1504包括用于存储供处理器1502执行的指令或供处理器1502操作的数据的主存储器。作为示例而不通过限制,计算机系统1500可以将指令从存储装置1506或另一个源(诸如,例如另一计算机系统1500)加载到存储器1504。处理器1502然后可以将指令从存储器1504加载到内部寄存器或内部缓存。为了执行指令,处理器1502可以从内部寄存器或内部缓存取回指令,并且对它们进行解码。在指令的执行期间或之后,处理器1502可以将一个或多个结果(可以是中间或最终结果)写入内部寄存器或内部缓存。处理器1502然后可以将这些结果中的一个或多个写入存储器1504。在特定实施例中,处理器1502仅执行一个或多个内部寄存器或内部缓存或存储器1504中的指令(与存储装置1506或其他相反),并且仅对一个或多个内部寄存器或内部缓存或存储器1504中的数据进行操作(与存储装置1506或其他相反)。一个或多个存储器总线(其可以分别包括地址总线和数据总线)可以将处理器1502耦合至存储器1504。如下所述,总线1512可以包括一个或多个存储器总线。在特定实施例中,一个或多个存储器管理单元(MMU)驻留在处理器1502和存储器1504之间,并且促进对处理器1502所请求的存储器1504的访问。在特定实施例中,存储器1504包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。而且,在适当的情况下,该RAM可以是单端口或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器1504可以包括一个或多个存储器1504。尽管本公开描述并图示了特定存储器,但本公开设想任何合适的存储器。
在特定实施例中,存储装置1506包括用于数据或指令的海量存储装置。作为示例而不通过限制,存储装置1506可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器或这些中的两个或多个的组合。在适当的情况下,存储装置1506可以包括可移除或不可移除(或固定)介质。在适当的情况下,存储装置1506可以在计算机系统1500的内部或外部。在特定实施例中,存储装置1506是非易失性固态存储器。在特定实施例中,存储装置1506包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩膜可编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可改写ROM(EAROM)或闪存或这些中的两个或多个的组合。本公开设想了采用任何合适物理形式的海量存储装置1506。在适当的情况下,存储装置1506可以包括促进处理器1502和存储装置1506之间的通信的一个或多个存储控制单元。在适当的情况下,存储装置1506可以包括一个或多个存储装置1506。虽然本公开描述并图示了特定存储装置,但是本公开设想任何合适的存储装置。
在特定实施例中,I/O接口1508包括硬件、软件或两者,为计算机系统1500和一个或多个I/O设备之间的通信提供一个或多个接口。在适当的情况下,计算机系统1500可以包括这些I/O设备中的一个或多个。这些I/O设备中的一个或多个可以使能在人与计算机系统1500之间的通信。作为示例而不通过限制,I/O设备可以包括键盘、小键盘、麦克风、监测器、鼠标、打印机、扫描仪、扬声器、静态相机、手写笔、平板计算机、触摸屏、轨迹球、摄像机、另一合适的I/O设备或这些中的两个或多个的组合。I/O设备可以包括一个或多个传感器。本公开设想了任何合适的I/O设备和用于它们的任何合适的I/O接口1508。在适当的情况下,I/O接口1508可以包括使处理器1502能够驱动这些I/O设备中的一个或多个的一个或多个设备或软件驱动器。在适当的情况下,I/O接口1508可以包括一个或多个I/O接口1508。尽管本公开描述并图示了特定的I/O接口,但本公开设想任何合适的I/O接口。
在特定实施例中,通信接口1510包括提供一个或多个接口的硬件、软件或两者,用于在计算机系统1500和一个或多个其他计算机系统1500或一个或多个网络之间通信(诸如例如基于分组的通信)。作为示例而不通过限制,通信接口1510可以包括网络接口控制器(NIC)或网络适配器,用于与以太网或其他基于有线的网络通信,或者包括无线NIC(WNIC)或无线适配器,用于与无线网络(诸如WI-FI网络)通信。本公开为它设想了任何合适的网络和任何合适的通信接口1510。作为示例而不通过限制,计算机系统1500可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或者互联网的一个或多个部分或这些中的两个或多个的组合通信。这些网络中的一个或多个的一个或多个部分可以是有线的或无线的。作为示例,计算机系统1500可以与无线PAN(WPAN)(诸如例如蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(诸如例如全球移动通信系统(GSM)网络)或者其他合适的无线网络或这些中的两个或多个的组合通信。在适当的情况下,计算机系统1500可以包括用于这些网络中的任何一个的任何合适的通信接口1510。在适当的情况下,通信接口1510可以包括一个或多个通信接口1510。尽管本公开描述并图示了特定的通信接口,但本公开设想任何合适的通信接口。
在特定实施例中,总线1512包括将计算机系统1500的组件彼此耦合的硬件、软件或两者。作为示例而不通过限制,总线1512可以包括加速图形端口(AGP)或其他图形总线、增强型工业标准架构(EISA)总线、前端总线(FSB)、超传输(HT)互连、工业标准架构(ISA)总线、超传输(INFINIBAND)互连、低引脚计数(LPC)总线、存储器总线、微通道架构(MCA)总线、外围组件互连(PCI)总线、高速PCI(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线或另一合适的总线或这些中的两个或多个的组合。在适当的情况下,总线1512可以包括一个或多个总线1512。尽管本公开描述并图示了特定的总线,但本公开设想任何合适的总线或互连。
在本文中,一个或多个计算机可读非瞬态存储介质可以包括一个或多个基于半导体的或其他集成电路(IC)(诸如,例如现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字卡或驱动器、任何其他合适的计算机可读非瞬态存储介质或者这些中的两个或多个的任何合适组合(在适当的情况下)。在适当的情况下,计算机可读非瞬态存储介质可以是易失性的、非易失性的或易失性和非易失性的组合。
其他
在本文中,“或者”是包括性的而非排他性的,除非另有明确指示或通过上下文另有指示。因此,在本文中,除非另有明确指示或通过上下文另有指示,否则“A或B”是指“A、B或两者”。而且,“和”既是联合的又是各自的,除非另有明确指示或通过上下文另有指示。因此,在本文中,除非另有明确指示或通过上下文另有指示,否则“A和B”是指“A和B,联合地或者各自地”。
本公开的范围涵盖对本领域的普通技术人员将领会的本文描述或图示的示例实施例的所有改变、替换、变化、更改和修改。本公开的范围不被限于本文描述或图示的示例实施例。而且,虽然本公开将本文中的相应实施例描述和图示为包括特定组件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域的普通技术人员将领会的本文任何地方描述或图示的组件、元件、特征、功能、操作或步骤中的任何一个的任何组合或排列。此外,在所附权利要求中引用适用于、被设置为、能够、被配置为、被启用、可操作或操作以执行特定功能的装置或系统或者装置或系统的组件涵盖该装置、系统、组件,无论它或该特定功能是否被激活、打开或解锁,只要该装置、系统或组件如此适用、布置、能够、配置、启用、可操作或操作即可。附加地,虽然本公开将特定实施例描述或图示为提供特定优点,但是特定实施例可以不提供这些优点、提供一些或所有这些优点。
Claims (20)
1.一种方法,包括由一个或多个计算系统:
接收与主动触发器相关联的一个或多个输入,所述主动触发器与第一用户相关联;
基于一个或多个主动策略,确定所述第一用户是否有资格接收主动建议;
基于所述一个或多个输入和与所述第一用户相关联的用户上下文数据,生成一个或多个主动建议;
基于与所述第一用户相关联的任务历史数据,选择所述主动建议中的一个或多个;以及
向与所述第一用户相关联的客户端系统发送用于向所述第一用户呈现主动内容的指令,其中所述主动内容包括所选择的主动建议。
2.根据权利要求1所述的方法,还包括:
确定所述主动内容的递送调度,其中发送用于向所述第一用户呈现所述主动内容的所述指令是基于所述递送调度的。
3.根据权利要求2所述的方法,其中所述递送调度基于以下一项或多项而被确定:与所述第一用户相关联的所述用户上下文数据、与所述第一用户相关联的用户记忆或者知识图谱。
4.根据权利要求1所述的方法,其中所述一个或多个主动建议中的每个主动建议包括建议调查、建议查询或者建议任务中的一个或多个。
5.根据权利要求1所述的方法,其中所述一个或多个输入包括第一任务的完成的一个或多个指示,并且其中所述一个或多个主动建议中的每个主动建议包括后续调查、后续问题或后续任务中的一个或多个。
6.根据权利要求5所述的方法,还包括:
响应于呈现的所述主动内容,从所述客户端系统接收来自所述第一用户的用户输入;
响应于所述用户输入,执行第二任务;以及
基于所述第二任务的所述执行和所述第一任务,生成一个或多个更新的主动建议。
7.根据权利要求1所述的方法,其中所述一个或多个输入包括一个或多个多模信号,并且其中每个多模信号基于以下一项或多项:日期、时间、位置、视觉信号、声音信号、实体更新或用户上下文。
8.根据权利要求7所述的方法,还包括:
接收一个或多个更新的多模信号;以及
基于所述更新的多模信号,生成一个或多个更新的主动建议。
9.根据权利要求1所述的方法,其中生成所述一个或多个主动建议包括:访问包括多个主动建议的预先确定的建议列表。
10.根据权利要求9所述的方法,其中所述预先确定的建议列表基于以下一项或多项而被生成:与所述第一用户相关联的所述任务历史数据、与所述第一用户相关联的用户记忆或者知识图谱。
11.根据权利要求1所述的方法,其中确定所述第一用户是否有资格接收主动建议还基于以下一项或多项:与所述第一用户相关联的所述用户上下文数据、与所述第一用户相关联的所述任务历史数据或者与所述第一用户相关联的用户记忆。
12.根据权利要求1所述的方法,其中选择所述主动建议中的一个或多个还基于以下一项或多项:与所述第一用户相关联的所述用户上下文数据、与所述第一用户相关联的用户记忆或者知识图谱。
13.根据权利要求1所述的方法,还包括:
基于所述一个或多个输入,确定与所述第一用户相关联的初始意图;以及
基于所述初始意图,确定与所述第一用户相关联的后续意图,其中生成所述一个或多个主动建议还基于所述后续意图。
14.根据权利要求13所述的方法,其中确定所述后续意图基于机器学习模型,其中所述机器学习模型是基于与多个意图对相关联的数据而被训练的,并且其中与所述多个意图对相关联的所述数据包括与所述初始意图和所述后续意图之间的意图对相关联的数据。
15.一种实施软件的一个或多个计算机可读非瞬态存储介质,所述软件在被执行时可操作以:
接收与主动触发器相关联的一个或多个输入,所述主动触发器与第一用户相关联;
基于一个或多个主动策略,确定所述第一用户是否有资格接收主动建议;
基于所述一个或多个输入和与所述第一用户相关联的用户上下文数据,生成一个或多个主动建议;
基于与所述第一用户相关联的任务历史数据,选择所述主动建议中的一个或多个;以及
向与所述第一用户相关联的客户端系统发送用于向所述第一用户呈现主动内容的指令,其中所述主动内容包括所选择的所述主动建议。
16.根据权利要求15所述的介质,其中所述软件在被执行时还可操作以:
确定所述主动内容的递送调度,其中发送用于向所述第一用户呈现所述主动内容的所述指令是基于所述递送调度的。
17.根据权利要求16所述的介质,其中所述递送调度基于以下一项或多项而被确定:与所述第一用户相关联的所述用户上下文数据、与所述第一用户相关联的用户记忆或者知识图谱中。
18.一种系统,包括:一个或多个处理器;和耦合至所述处理器的非瞬态存储器,包括指令,所述指令由所述处理器可执行,所述处理器在执行所述指令时可操作以:
接收与主动触发器相关联的一个或多个输入,所述主动触发器与第一用户相关联;
基于一个或多个主动策略,确定所述第一用户是否有资格接收主动建议;
基于所述一个或多个输入和与所述第一用户相关联的用户上下文数据,生成一个或多个主动建议;
基于与所述第一用户相关联的任务历史数据,选择所述主动建议中的一个或多个;以及
向与所述第一用户相关联的客户端系统发送用于向所述第一用户呈现主动内容的指令,其中所述主动内容包括所述所选择的主动建议。
19.根据权利要求18所述的系统,其中所述处理器在执行所述指令时还可操作以:
确定所述主动内容的递送调度,其中发送用于向所述第一用户呈现所述主动内容的所述指令是基于所述递送调度的。
20.根据权利要求19所述的系统,其中所述递送调度基于以下一项或多项而被确定:与所述第一用户相关联的所述用户上下文数据、与所述第一用户相关联的用户记忆或者知识图谱。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962923342P | 2019-10-18 | 2019-10-18 | |
US62/923,342 | 2019-10-18 | ||
US202063044270P | 2020-06-25 | 2020-06-25 | |
US63/044,270 | 2020-06-25 | ||
US17/006,260 US20210117214A1 (en) | 2019-10-18 | 2020-08-28 | Generating Proactive Content for Assistant Systems |
US17/006,260 | 2020-08-28 | ||
PCT/US2020/056188 WO2021077043A1 (en) | 2019-10-18 | 2020-10-16 | Generating proactive content for assistant systems |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114930363A true CN114930363A (zh) | 2022-08-19 |
Family
ID=75490913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080055180.7A Pending CN114930363A (zh) | 2019-10-18 | 2020-10-16 | 为助理系统生成主动内容 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20210117214A1 (zh) |
EP (1) | EP4046097A1 (zh) |
JP (1) | JP2022551788A (zh) |
KR (1) | KR20220083789A (zh) |
CN (1) | CN114930363A (zh) |
WO (1) | WO2021077043A1 (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8977255B2 (en) | 2007-04-03 | 2015-03-10 | Apple Inc. | Method and system for operating a multi-function portable electronic device using voice-activation |
DE112014000709B4 (de) | 2013-02-07 | 2021-12-30 | Apple Inc. | Verfahren und vorrichtung zum betrieb eines sprachtriggers für einen digitalen assistenten |
US9715875B2 (en) | 2014-05-30 | 2017-07-25 | Apple Inc. | Reducing the need for manual start/end-pointing and trigger phrases |
US10170123B2 (en) | 2014-05-30 | 2019-01-01 | Apple Inc. | Intelligent assistant for home automation |
DK179496B1 (en) | 2017-05-12 | 2019-01-15 | Apple Inc. | USER-SPECIFIC Acoustic Models |
US20180336275A1 (en) | 2017-05-16 | 2018-11-22 | Apple Inc. | Intelligent automated assistant for media exploration |
US11715042B1 (en) | 2018-04-20 | 2023-08-01 | Meta Platforms Technologies, Llc | Interpretability of deep reinforcement learning models in assistant systems |
US11676220B2 (en) | 2018-04-20 | 2023-06-13 | Meta Platforms, Inc. | Processing multimodal user input for assistant systems |
US11886473B2 (en) | 2018-04-20 | 2024-01-30 | Meta Platforms, Inc. | Intent identification for agent matching by assistant systems |
US11010436B1 (en) | 2018-04-20 | 2021-05-18 | Facebook, Inc. | Engaging users by personalized composing-content recommendation |
US11307880B2 (en) | 2018-04-20 | 2022-04-19 | Meta Platforms, Inc. | Assisting users with personalized and contextual communication content |
DK180639B1 (en) | 2018-06-01 | 2021-11-04 | Apple Inc | DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT |
US11170777B2 (en) * | 2019-05-06 | 2021-11-09 | Google Llc | Proactive caching of assistant action content at a client device to enable on-device resolution of spoken or typed utterances |
US11328729B1 (en) * | 2020-02-24 | 2022-05-10 | Suki AI, Inc. | Systems, methods, and storage media for providing presence of modifications in user dictation |
US11245648B1 (en) * | 2020-07-31 | 2022-02-08 | International Business Machines Corporation | Cognitive management of context switching for multiple-round dialogues |
US11783827B2 (en) * | 2020-11-06 | 2023-10-10 | Apple Inc. | Determining suggested subsequent user actions during digital assistant interaction |
US20220147547A1 (en) * | 2020-11-12 | 2022-05-12 | International Business Machines Corporation | Analogy based recognition |
US20220156299A1 (en) * | 2020-11-13 | 2022-05-19 | International Business Machines Corporation | Discovering objects in an ontology database |
CN112765477B (zh) * | 2021-03-05 | 2022-03-25 | 北京百度网讯科技有限公司 | 信息处理、信息推荐的方法和装置、电子设备和存储介质 |
CN113297359B (zh) * | 2021-04-23 | 2023-11-28 | 阿里巴巴新加坡控股有限公司 | 交互信息的方法以及装置 |
CN113222031B (zh) * | 2021-05-19 | 2022-04-12 | 浙江大学 | 基于联邦个性化学习的光刻热区检测方法 |
US11593819B2 (en) * | 2021-06-09 | 2023-02-28 | Maplebear Inc. | Training a model to predict likelihoods of users performing an action after being presented with a content item |
WO2022266209A2 (en) * | 2021-06-16 | 2022-12-22 | Apple Inc. | Conversational and environmental transcriptions |
KR20240012449A (ko) * | 2021-07-13 | 2024-01-29 | 엘지전자 주식회사 | 증강현실과 혼합현실에 기반한 경로 안내 장치 및 경로안내 시스템 |
US20230027628A1 (en) * | 2021-07-26 | 2023-01-26 | Microsoft Technology Licensing, Llc | User context-based enterprise search with multi-modal interaction |
CN113591459B (zh) * | 2021-08-10 | 2023-09-15 | 平安银行股份有限公司 | 地址标准化处理方法、装置、电子设备及可读存储介质 |
US12020690B1 (en) * | 2021-09-29 | 2024-06-25 | Amazon Technologies, Inc. | Adaptive targeting for proactive voice notifications |
US12045568B1 (en) | 2021-11-12 | 2024-07-23 | Meta Platforms, Inc. | Span pointer networks for non-autoregressive task-oriented semantic parsing for assistant systems |
US20230350928A1 (en) * | 2022-04-28 | 2023-11-02 | Knowbl LLC | Systems and methods for implementing a virtual agent performing context and query transformations using unsupervised machine learning models |
KR102518520B1 (ko) * | 2022-07-19 | 2023-04-05 | 주식회사 엠브이아이 | 시각장애인의 디지털 정보격차를 해소하기 위한 클라우드 기반의 경영 관리 시스템 |
US11868736B1 (en) * | 2022-11-09 | 2024-01-09 | Moonbeam, Inc. | Approaches to deriving and surfacing insights into conversations in virtual environments and systems for accomplishing the same |
US11983329B1 (en) | 2022-12-05 | 2024-05-14 | Meta Platforms, Inc. | Detecting head gestures using inertial measurement unit signals |
US12112001B1 (en) | 2023-03-14 | 2024-10-08 | Meta Platforms, Inc. | Preventing false activations based on don/doff detection for assistant systems |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9865260B1 (en) * | 2017-05-03 | 2018-01-09 | Google Llc | Proactive incorporation of unsolicited content into human-to-computer dialogs |
-
2020
- 2020-08-28 US US17/006,260 patent/US20210117214A1/en not_active Abandoned
- 2020-10-16 JP JP2021577907A patent/JP2022551788A/ja active Pending
- 2020-10-16 KR KR1020227016523A patent/KR20220083789A/ko unknown
- 2020-10-16 EP EP20804395.0A patent/EP4046097A1/en not_active Withdrawn
- 2020-10-16 CN CN202080055180.7A patent/CN114930363A/zh active Pending
- 2020-10-16 WO PCT/US2020/056188 patent/WO2021077043A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
JP2022551788A (ja) | 2022-12-14 |
EP4046097A1 (en) | 2022-08-24 |
KR20220083789A (ko) | 2022-06-20 |
WO2021077043A1 (en) | 2021-04-22 |
US20210117214A1 (en) | 2021-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12019685B1 (en) | Context carryover across tasks for assistant systems | |
US20210117214A1 (en) | Generating Proactive Content for Assistant Systems | |
US11159767B1 (en) | Proactive in-call content recommendations for assistant systems | |
US11658835B2 (en) | Using a single request for multi-person calling in assistant systems | |
US11567788B1 (en) | Generating proactive reminders for assistant systems | |
US11809480B1 (en) | Generating dynamic knowledge graph of media contents for assistant systems | |
US20220279051A1 (en) | Generating Proactive Reminders for Assistant Systems |
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 |