CN117149970A - 使用语言模型对消息中接收到的图像的自动建议响应 - Google Patents

使用语言模型对消息中接收到的图像的自动建议响应 Download PDF

Info

Publication number
CN117149970A
CN117149970A CN202311086539.9A CN202311086539A CN117149970A CN 117149970 A CN117149970 A CN 117149970A CN 202311086539 A CN202311086539 A CN 202311086539A CN 117149970 A CN117149970 A CN 117149970A
Authority
CN
China
Prior art keywords
user
word
responses
message
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202311086539.9A
Other languages
English (en)
Inventor
阿芮尔·弗曼
维威克·罗摩瓦吉拉
叶宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of CN117149970A publication Critical patent/CN117149970A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/274Converting codes to words; Guess-ahead of partial word inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/126Character encoding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/216Parsing using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/55Rule-based translation
    • G06F40/56Natural language generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • G06N3/0442Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/35Categorising the entire scene, e.g. birthday party or wedding scene

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Machine Translation (AREA)

Abstract

实施方式涉及对接收的消息中包含的图像的自动响应建议。在一些实施方式中,一种计算机实施的方法包括检测由第一用户在第一消息内发布的图像,并且以编程方式分析图像以确定代表图像的特征向量。该方法基于特征向量以编程方式生成对第一消息的一个或多个建议响应,每个建议响应是对第一消息的会话回复。生成建议响应包括使用对先前图像的先前响应训练的模型来确定与特征向量的词序列相关联的概率,并基于相关概率选择词序列中的一个或多个。建议响应是根据所选择的词序列确定的。该方法使建议响应在消息应用中呈现为对第二用户的一个或多个建议。

Description

使用语言模型对消息中接收到的图像的自动建议响应
本申请为下述申请的分案申请,
原申请的国际申请号:PCT/US2017/057044
原申请的国际申请日:2017年10月17日,
原申请的国家申请号:201780066316.2,
原申请的发明名称:使用语言模型对消息中接收到的图像的自动建议响应相关申请的交叉引用
本申请要求2017年1月25日提交的题为“使用语言模型对消息中接收到的图像的自动建议响应”的美国专利申请No.15/415,506的优先权,其全部内容通过引用合并于此。
背景技术
数字移动设备的普及和便利以及因特网通信的广泛使用已使得用户设备之间的通信变得无处不在。例如,用户通常使用他们的设备将电子消息作为文本消息、聊天消息、电子邮件等发送给其他用户。用户可以将消息中的图像发送给其他用户,以向接收用户提供可视内容。
本文提供的背景描述是为了总体上呈现本公开的背景。目前所述发明人的工作,直到在本背景技术部分中描述的程度,以及在提交时可能不具有现有技术资格的描述的各方面,既不明确也不暗示地被认为是针对本公开的现有技术。
发明内容
该实施方式涉及对包括在接收的消息中的图像的自动响应建议。在一些实施方式中,一种计算机实施的方法包括检测由第一用户在第一消息内发布的图像,并且以编程方式分析所述图像以确定表示所述图像的特征向量。该方法基于所述特征向量,以编程方式生成对所述第一消息的一个或多个建议响应,所述一个或多个建议响应中的每个都是对所述第一消息的会话回复。以编程方式生成所述一个或多个建议响应包括使用以对先前图像的先前响应而训练的模型来确定与所述特征向量的词序列相关联的概率,并基于所述与所述词序列相关的概率选择所述词序列的一个或多个词序列。所述一个或多个建议响应是基于一个或多个所选择的词序列确定的。该方法使得所述一个或多个建议响应在所述消息应用中呈现为对第二用户的一个或多个建议。
描述了各种实施方式和该方法的示例。例如,在一些实施方式中,提供所述一个或多个建议响应包括传输命令以在所述消息应用中呈现所述一个或多个建议响应。在一些实施方式中,所述概率包括所存储的词汇表中的每个词成为所述一个或多个词序列之一中的下一个词的概率,其中选择所述一个或多个词序列包括选择与确定的概率的一个或多个最高概率相关联的所述一个或多个词序列中的一些词序列。在一些实施方式中,该模型是条件语言模型,并且确定与所述词序列相关联的概率包括将所述特征向量输入到所述条件语言模型。在一些示例中,所述条件语言模型使用长短期记忆(LSTM)网络。一些实施方式使用集束搜索技术选择所述一个或多个词序列。在一些实施方式中,所述一个或多个词序列中的每一个被模型用作词嵌入编码所述词序列和所述特征向量中包括的词。
在另外的示例中,所述一个或多个词序列是根据从所述先前响应确定的词汇表中的多个词来确定的,其中,确定与所述词序列相关联的概率包括对于每个词序列迭代地确定所述词汇表中的每个词成为所述词序列中的下一个词的概率。在一个示例中,所述先前响应是从对所述先前图像的较大响应集合中选择的,其中所述先前响应比所述较大响应集合的其他先前响应更特定于所述先前图像的特定内容。
在实施方式的附加示例中,该模型是条件语言模型,并且选择所述一个或多个词序列包括迭代地将所述特征向量和先前词序列馈送到所述条件语言模型,以基于所述特征向量和所述先前词序列确定新词序列集合和与所述新词序列相关联的所述概率,其中一个或多个所述新词序列相对于所述先前词序列至少有一个附加词;基于与所述新词序列相关联的所述概率选择新词序列的集合的子集,并选择所选子集的一个词序列作为用于下一次迭代的先前词序列。
在附加示例实施方式中,该方法还包括,一旦所述第二用户选择所述建议响应,发布所述建议响应作为对所述第一消息的消息响应。在一些实施方式中,该方法还包括检查所述一个或多个词序列中的每一个是否存在于词序列的白名单中,其中所选择的一个或多个词序列存在于所述白名单上。一些实施方式选择至少一个词序列,其基于与所述第二用户提供的先前消息响应的相似性而被加权。在一些实施方式中,提供所述条件语言模型作为特定于第一语言的第一条件语言模型,并且该方法包括提供特定于第二语言的第二条件语言模型,确定接收到所述第一消息的消息会话的语言是所述第一语言;和选择所述第一条件语言模型,用于以编程方式生成一个或多个建议响应。
在一些实施方式中,一种系统包括存储器和至少一个处理器,所述至少一个处理器被配置为访问所述存储器并被配置为执行操作,包括,检测由第一用户在第一消息内发布的图像,并且以编程方式分析所述图像以确定表示所述图像的特征向量。操作包括基于所述特征向量,以编程方式生成对所述第一消息的一个或多个建议响应,所述一个或多个建议响应的每个都是对所述第一消息的会话回复并且具有词序列中排列的一个或多个词。以编程方式生成所述一个或多个建议响应包括,对于所述一个或多个建议响应中的每一个,基于所述特征向量并基于所述词序列中的一个或多个先前词,迭代地确定所述词序列中排列的所述一个或多个词的每个词。这些操作包括使所述一个或多个建议响应在所述消息应用中呈现为对第二用户的一个或多个建议。
描述了各种实施方式和系统的示例。例如,在一些实施方式中,编程生成所述一个或多个建议响应的操作包括基于包括对先前图像的先前响应的数据来确定与所述一个或多个词序列相关联的概率。在一些实施方式中,以编程方式生成所述一个或多个建议响应的操作包括,基于与所述一个或多个词序列相关联的所述概率来选择所述一个或多个建议响应。在一些实施方式中,确定所述词序列的所述概率的操作包括,使用条件语言模型,所述条件语言模型使用包括对先前图像的先前响应的数据训练,其中所述条件语言模型由作为输入接收的所述特征向量决定,并使用长短期记忆(LSTM)网络。
在一些实施方式中,非暂时性计算机可读介质上存储有软件指令,当由处理器执行时,所述软件指令使处理器通过执行操作来自动提供建议内容。操作包括接收图像并以编程方式分析所述图像以确定代表所述图像的特征向量。操作包括以编程方式生成对所述图像的一个或多个建议响应,所述一个或多个建议响应的每个都是对所述图像的会话回复并且具有词序列中排列的一个或多个词。以编程方式生成所述一个或多个建议响应包括,对于所述一个或多个建议响应中的每一个,基于所述特征向量和所述词序列中的一个或多个先前词,迭代地确定所述词序列中排列的所述一个或多个词的每个词。这些操作包括输出所述一个或多个建议响应以作为对用户的一个或多个建议呈现在应用中。
计算机可读介质的各种实施方式包括,例如,所述建议响应在消息应用中呈现,并且在一些实施方式中,以编程方式生成所述一个或多个建议响应的操作包括使用条件语言模型确定与所述一个或多个建议响应相关联的概率,所述条件语言模型基于包括对先前图像的先前响应的数据而被训练,并且由作为输入接收的的所述特征向量决定,其中所述条件语言模型使用长短期记忆(LSTM)网络;和基于与所述一个或多个建议响应相关联的所述概率选择所述一个或多个建议响应。
附图说明
图1是可用于本文描述的一个或多个实施方式的示例系统和网络环境的框图;
图2是示出根据一些实施方式的用于向包括图像的消息提供建议响应的示例方法的流程图;
图3是示出根据一些实施方式的基于表示图像的特征向量生成一个或多个建议响应的示例方法的流程图;
图4是示出根据一些实施方式的可以实施一个或多个所描述的建议响应特征的示例模块的框图;
图5是示出根据一些实施方式的可以实施条件语言模型的一个或多个特征的架构的示例的框图;
图6-11是示出根据一些实施方式的确定的对图像的建议响应的示例的图示说明;和
图12是可用于本文描述的一个或多个实施方式的示例设备的框图。
具体实施方式
这里描述的一个或多个实施方式涉及对包括在接收的消息中的图像的自动响应建议。在一些实施方式中,消息应用中的自动建议内容包括检测第一用户在消息内发布的图像,并且以编程方式分析图像以确定代表图像的特征向量。特征向量用于生成对消息的一个或多个建议响应,其中建议响应是对第一消息的会话式回复。例如,在一些实施方式中,训练条件语言模型以基于包括先前对先前图像的响应的训练数据来确定与特征向量的词序列相关联的概率。基于概率选择一个或多个词序列,并且建议响应基于所选择的词序列。建议响应被输出,例如,作为对第二用户的一个或多个建议呈现在消息应用中。
描述了各种特征。例如,建议响应可以各自具有以词序列排列的一个或多个词,并且,对于每个建议响应,可以基于特征向量并基于词序列中的一个或多个先前的词来迭代地确定词序列的每个词。可以基于作为词序列中的下一个词的词的概率来选择建议响应;例如,建议响应可以是被确定为在词汇表的词之间的序列中具有组成词的最高概率的词序列。例如,可以基于训练数据从词汇表中的一组词中确定一个或多个词序列,例如,从包括先前的消息图像和先前对那些图像的响应的一组训练消息数据获得的一组词。在一些示例中,可以过滤训练数据,使得训练数据中的先前响应比已经过滤掉的其他先前响应更特定于先前图像的特定内容。
在各种示例中,条件语言模型可以使用长短期记忆(long-short term memory,LSTM)网络。可以使用集束搜索技术来选择序列。在一些示例中,系统可以检查一个或多个词序列中的每一个是否存在于词序列的白名单中,使得存在于白名单上的词序列有资格成为建议响应。在一些实施方式中,在输出建议响应之后,如果第二用户选择建议响应,则将所选择的建议响应作为对第一消息和图像的消息响应发送到第一用户。在一些实施方式中,基于与第二用户响应于接收类似于当前接收的图像的先前图像提供的先前消息响应的相似性,对一个或多个词序列进行加权以作为建议响应进行选择。在一些实施方式中,可以提供多个条件语言模型,每个语言模型与不同的语言相关联。可以选择特定的条件语言模型,用于基于检测到的接收的第一消息的消息会话的语言来确定对于图像的建议响应。在一些实施方式中,可以确定一个或多个消息响应是对机器人的命令或请求,例如,与获得的图像有关的信息。
本文描述的一个或多个特征能够响应于消息中接收的图像而自动提供建议响应,其中建议响应是适当且相关的,作为对接收到的图像的内容的消息响应。例如,这里描述的特征可以提供建议响应,其可以包括对图像中的特定内容的适当反应,就像用户正在创建消息响应一样。这为用户提供了更灵活的选项来确定他们在消息会话中的响应,并且可以为无法充分响应消息的用户提供选项。
例如,在消息会话期间的各个时间,用户可能无法提供足够的注意和/或关注以利用相关响应来响应接收的消息,和/或可能无法向用户设备提供详细的用户输入来创建这样的相关响应。在一些示例中,用户可能正在进行活动或处于用户无法或比较难以提供适当响应的环境中。本文描述的一个或多个特征有利地响应于图像而为用户提供自动消息建议。例如,基于在用户设备之间的消息会话中接收的图像自动建议一个或多个自动消息响应,并且用户可以简单地从用于在会话中发布的建议中选择期望的响应。消息建议与所接收的图像相关并且允许用户简单且快速地响应所接收的图像,同时减少用户输入并减少在设备上撰写响应的时间,从而减少显示大量可能的响应所需的设备资源的消耗和/或减少启用和处理来自用户的添加的输入以撰写响应、搜索、编辑或完成建议响应,和/或以其他方式参与通过电子设备保持的会话所需的设备资源的消耗。因此,一个或多个所描述的实施方式的技术效果是在设备实施的会话中创建和传输响应是以较少的计算时间和用于获得结果花费的资源来实施的。例如,与不提供一个或多个所描述的技术或特征的系统相比,所描述的技术和特征的技术效果是减少用于显示、创建和发送消息响应的系统处理资源的消耗。
现有技术可以例如基于识别图像中的一个或多个对象或特征确定对图像的建议响应,例如,响应于识别出图像包括苹果,可以提供对应于这样的识别的建议响应。然而,许多这样的技术可能无法提供建议,例如,对于没有识别出对象的图像。此外,这些技术中的一些可能提供不准确的建议,例如,如果对象识别是错误的或不完整的。另外,当在图像中识别出多个对象(例如,苹果和刀)时,这些技术中的一些可能生成列出对象的简单响应,例如“苹果和刀”,或者用户不太会选择的响应。
本文描述的技术克服了这些和其他缺陷。例如,这些技术可以提供更多种类和/或更高质量的建议响应。例如,本文描述的技术将直接从所获得图像的像素确定的图像特征向量馈送到训练的神经网络以生成响应。这种神经网络可以为任何类型的图像提供响应,而不需要特别识别图像中的对象。此外,基于图像像素训练的模型的使用可以允许比依赖于识别对象和使用与那些对象相关联的预定义标签的技术更多种类的响应。例如,在一些实施方式中,选择建议响应中的词的词汇表可以包括来自多种语言的词、可能不是词典中的词的人类表达(例如,“aww”,“!!!”等)、其他类型的符号(例如,表情符号,贴纸等)、不同的图像、或组合。另外,本文描述的技术可以提供更可能被用户选择的响应建议,因为这些响应建议可以比基于识别的图像特征构建的响应建议更自然。因此,相比于不提供一个或多个所描述的技术或特征的系统,例如,使用现有的内容识别技术,其中需要额外的计算资源来显示更多的潜在相关的建议响应和/或接收来自用户的指定、选择、编辑或创建用户要发送的响应所需的输入的系统,所描述的技术和特征的另一技术效果是减少用于创建和发送消息响应的系统处理资源的消耗。
所描述的技术提供了额外的优点。例如,在某些实施方式中使用响应白名单允许从建议中移除特定类型的响应,允许响应建议更可能被用户选择。此外,在一些实施方式中,这里描述的技术利用集束搜索,其可以有利地基于图像特征向量评估大量可能的词序列,同时减少使用计算资源的使用。在一些实施方式中,所描述的技术可以基于图像特征向量确定该图像不具有提供建议的资格,并且可以不进行用以生成响应的计算步骤,从而节省计算资源。在用户允许这种数据的使用的一些实施方式中,语言模型可以例如基于附加的训练数据和用户选择周期性地重新训练,因此可以基于这种再训练提供改进的建议。
本文讨论的某些实施方式可以收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户的位置和在该位置的时间、用户的生物信息、用户的活动和人口统计信息)的情况下,向用户提供一个或多个机会来控制是否收集信息、是否存储个人信息、是否使用个人信息以及如何收集关于用户的信息,如何存储和使用信息。也就是说,这里讨论的系统和方法特别是在从相关用户接收到显式授权时才收集、存储和/或使用用户个人信息。例如,向用户提供对程序或特征是否收集关于该特定用户或与该程序或特征相关的其他用户的用户信息的控制。个人信息要被收集的每个用户被呈现一个或多个选项以允许控制与该用户相关的信息收集,以提供关于是否收集信息以及关于信息的哪些部分要被收集的许可或授权。例如,可以通过通信网络向用户提供一个或多个这样的控制选项。另外,某些数据可以在存储或使用之前以一种或多种方式处理,以便移除个人可识别信息。作为一个示例,可以处理用户的身份,以便不能确定个人可识别信息。作为另一示例,用户的地理位置可以被扩大到更大的区域,使得不能确定用户的特定位置。
这里提到的“图像”是具有带有一个或多个像素值(例如,颜色值、亮度值等)的像素的数字图像。图像可以是静止图像或单个图像,或者可以是包括在一系列图像中的图像,例如视频帧的视频序列中的帧,或者不同类型的序列中的图像或图像的动画。例如,这里描述的实施方式可以与单个图像、图像的视频序列或动画图像(例如,电影图或其他动画)一起使用。
图1示出了用于提供消息服务的示例环境100的框图,在一些实施例中,该消息服务能够并且提供自动辅助代理,例如机器人。示例性环境100包括消息服务器101,一个或多个客户端设备115a、115n,服务器135,响应建议生成器150,和网络140。用户125a-125n可以与相应的客户端设备115a、115n相关联。服务器135可以是第三方服务器,例如,第三方服务器由与提供消息服务的一方不同的一方控制。在各种实施方式中,服务器135可以实施机器人服务,如下面进一步详细描述的。在一个实施方式中,环境100可以不包括图1中所示的一个或多个服务器或设备,或者可以包括图1中未示出的其他服务器或设备。在图1和其余附图中,参考数字后面的字母,例如“115a”表示对具有该特定参考数字的元素的引用。文本中没有后续字母的参考数字,例如“115”,表示对带有该参考数字的元件的实施方式的一般引用。
在图示的实施方式中,消息服务器101、客户端设备115、服务器135和响应生成器150经由网络140通信地耦合。在各种实施方式中,网络140可以是传统类型,有线或无线,并且可以具有许多不同的配置,包括星形配置、令牌环配置或其他配置。此外,网络140可以包括局域网(LAN)、广域网(WAN)(例如,因特网)和/或多个设备可以通过其进行通信的其他互连数据路径。在一些实施方式中,网络140可以是对等网络。网络140还可以耦合到或包括电信网络的部分,用于以各种不同的通信协议发送数据。在一些实施方式中,网络140包括用于发送和接收数据的通信网络、/>或蜂窝通信网络,包括通过短消息服务(SMS)、多媒体消息服务(MMS)、超文本传输协议(HTTP)、直接数据连接、电子邮件等。尽管图1示出了耦合到客户端设备115、消息服务器101和服务器135的一个网络140,但实际上,一个或多个网络140可以耦合到这些实体。
消息服务器101可以包括处理器、内存和网络通信能力。在一些实施方式中,消息服务器101是硬件服务器。在一些实施方式中,消息服务器101可以植入虚拟化环境中,例如,消息服务器101可以是在可以包括一个或多个其他虚拟机的硬件服务器上执行的虚拟机。消息服务器101通过信号线102通信地耦合到网络140。信号线102可以是有线连接,例如以太网、同轴电缆、光纤电缆等,或无线连接,例如Wi-Fi、蓝牙或其他无线技术。在一些实施方式中,消息服务器101通过网络140向客户端设备115a-115n、服务器135、响应生成器150和机器人113中的一个或多个发送数据,并且从客户端设备115a-115n、服务器135、响应生成器150和机器人113中的一个或多个接收数据。在一些实施方式中,消息服务器101可以包括消息应用103a,消息应用103a提供客户端功能以使用户(例如,任何用户125)能够与其他用户和/或机器人交换消息。消息应用103a可以是服务器应用、客户端-服务器应用的服务器模块或分布式应用(例如,在一个或多个客户端设备115上具有相应的客户端消息应用103b)。
消息服务器101还可以包括数据库199,数据库199可以存储经由消息服务器101交换的消息、一个或多个机器人的数据和/或配置、由内容分类器130提供的信息以及与一个或多个用户125相关联的用户数据,所有这些都依赖于得到相应用户对存储这些数据的明确许可。在一些实施例中,消息服务器101可以包括一个或多个辅助代理,例如机器人107a和111。在其他实施例中,辅助代理可以在客户端设备115a-n上实施,而不是在消息服务器101上实施。
消息应用103a可以是可由处理器操作的代码和例程,以使得能够在用户125和一个或多个机器人105、107a、107b、109a、109b、111和113之间交换消息。在一些实施方式中,消息应用103a可以使用包括现场可编程门阵列(FPGA)或专用集成电路(ASIC)的硬件来实施。在一些实施方式中,消息应用103a可以使用硬件和软件的组合来实施。
在各种实施方式中,当与客户端设备115相关联的各个用户提供对消息的存储的同意时,数据库199可以存储在一个或多个客户端设备115之间交换的消息,在一些实施方式中,当与客户端设备115相关联的相应的用户提供对消息的存储的同意时,数据库199可以存储在一个或多个客户端设备115和在不同设备上实施的一个或多个机器人之间交换的消息,不同设备例如是另一个客户端设备、消息服务器101以及服务器135等。在一个或多个用户不提供同意的实施方式中,不存储由这些用户接收和发送的消息。
在一些实施方式中,消息可以被加密,例如,使得仅消息的发送者和接收者可以查看加密的消息。在一些实施方式中,消息被存储。在一些实施方式中,数据库199可以进一步存储例如机器人107a、机器人111等的一个或多个机器人的数据和/或配置。在一些实施方式中,当用户125提供存储用户数据(例如,社交网络数据、联系信息、图像等)的同意时,数据库199还可以存储与提供这种同意的相应用户125相关联的用户数据。
在一些实施方式中,消息应用103a/103b可以提供使用户125能够创建新机器人的用户界面。在这些实施方式中,消息应用103a/103b可以包括使用户创建的机器人能够被包括在消息应用103a/103b的用户之间的会话中的功能。
响应生成器150可以包括处理器,内存和网络通信能力。在一些实施方式中,响应生成器150是硬件服务器。响应生成器150通过信号线152通信地耦合到网络140。信号线152可以是有线连接,例如以太网、同轴电缆、光纤电缆等,或无线连接,例如Wi-Fi、蓝牙或其他无线技术。在一些实施方式中,响应生成器150经由网络140向消息服务器101和客户端设备115a-115n中的一个或多个发送数据,并且从消息服务器101和客户端设备115a-115n中的一个或多个接收数据。尽管响应生成器150被示为一个服务器,多个响应生成器150也是可能的。在一些实施方式中,响应生成器150可以被包括在环境100的一个或多个其他组件中,例如,消息服务器101、客户端设备115a、服务器135、内容服务器154等。
响应生成器150确定并提供一个或多个建议响应以回复特定图像。例如,可以将建议响应提供给消息服务器101和/或一个或多个客户端设备115的消息应用。响应生成器可以使用机器学习,例如,使用利用机器学习的条件语言模型来确定建议响应。例如,可以使用图像的训练数据(例如,消息训练数据)以及对消息应用语境的图像的正确、实际和/或期望的响应来训练响应生成器,并且随后响应生成器可以确定对它接收到的新图像的响应。例如,在不使用用户信息的情况下,可以使用合成数据,例如,由计算机自动生成的数据,来训练条件语言模型。在一些实施方式中,条件语言模型可以基于样本数据来训练,样本数据例如是样本消息数据,对于样本数据,已经从提供消息数据的用户明确地获得了利用用户数据进行训练的许可。例如,样本数据可以包括接收到的消息和发送给接收到的消息的响应。基于样本数据,模型可以预测对接收到的消息的响应,然后可以将该响应作为建议响应提供。在一些实施方式中,响应生成器150可以使用长短期记忆(LSTM)网络来确定作为词序列的响应,在词序列中,迭代地确定响应的词,例如,一次一个词。
一些实施方式还可以将检测到的图像特征用于一个或多个特征,例如,建议响应的排名。例如,图像特征可以包括人(不确定人的身份)、动物、物体(例如,物品、车辆等)、特定纪念碑、景观特征(例如,树叶、山脉、湖泊、天空、云、日出或日落、建筑物、桥等)、天气等,可以使用各种图像识别和检测技术(例如,基于训练图像的机器学习,与参考图像中的参考特征的比较等)来检测图像特征。
响应生成器150可以由管理消息服务器101的同一方管理,或者可以由第三方管理。在一些实施方式中,响应生成器150托管机器人。机器人可以是执行特定功能以提供建议的计算机程序,例如,预定机器人进行预定,自动回复机器人生成回复消息文本,安排机器人自动安排日历约会等。响应生成器150可以向消息应用103提供或引荐一个或多个机器人作为建议响应。例如,机器人的代码可以被合并到消息应用103中,或者消息应用103可以将请求发送到在响应生成器150处实施的机器人。在一些实施方式中,消息应用103通过向响应生成器150提供机器人命令并基于机器人命令接收建议来充当用户125和响应生成器150之间的中介。
在一些实施方式中,内容服务器154可以在环境100中提供,例如,作为硬件服务器,并且可以包括处理器、内存和网络通信能力。内容服务器154可以经由一个或多个网络连接156耦合到网络140。在一些实施方式中,内容分类器可以向消息应用103提供信息。例如,内容服务器154可以维护电子百科全书、知识图、一个或多个数据库、社交网络应用(例如,社交图、朋友社交网络、商业社交网络等)、用于地点或位置的网站(例如,餐馆、汽车经销商等)、地图应用(例如,提供方向的网站)等。例如,内容服务器154可以从消息应用103接收信息请求,进行搜索,以及提供请求中的信息。在一些实施方式中,内容服务器154可以包括图像中特定类型的内容的分类器,并且可以确定是否在图像的内容(例如,像素)中检测到任何特定类别。在一个示例中,消息应用103可以从内容服务器154访问的地图应用请求行车方向或预计到达时间。
在一些实施方式中,如果用户同意使用这样的数据,则内容服务器154可以向消息应用103提供用户的个人资料信息或个人资料图像,消息应用103可以使用用户的个人资料信息或个人资料图像来识别图像中带有相应社交网络个人资料的人。在另一个示例中,如果已经为所提供的用户数据获取了用户同意,则内容服务器154可以向消息应用103提供与消息应用103使用的消息中所识别的实体有关的信息。例如,内容服务器154可以包括或访问提供关于在图像中识别的地标的信息的电子百科全书、提供用于选购在消息中识别的实体的信息的电子购物网站、在用户同意的情况下提供来自在消息中识别的用户的行程的电子日历应用、提供关于可以访问的消息中的实体的附近位置的信息的地图应用、服务于提供消息中提到的菜肴的餐馆的网站等。在一些实施方式中,内容服务器154可以与响应生成器150通信以获取信息。内容服务器154可以向响应生成器150提供所请求的信息。
在一些实施方式中,响应生成器150和/或内容服务器154可以从消息应用103接收信息,例如,以更新由这些模块使用或维护的数据库。例如,在内容服务器154维护关于餐馆的网站的情况下,消息应用103可以向内容服务器154提供关于餐馆的更新信息,例如用户在该餐馆的最喜欢的菜肴。
客户端设备115可以是包括内存和硬件处理器的计算设备,例如,相机、膝上型计算机、平板计算机、移动电话、可穿戴设备、移动电子邮件设备、便携式游戏机、便携式音乐播放器、读取器设备、头戴式显示器或能够无线访问网络140的其他电子设备。
在图示的实施方式中,客户端设备115a经由信号线108耦合到网络140,并且客户端设备115n经由信号线110耦合到网络140。信号线108和110可以是有线连接,例如,以太网,或者无线连接,例如Wi-Fi、蓝牙或其他无线技术。用户端设备115a、115n分别由用户125a、125n访问。图1中的客户端设备115a、115n作为示例使用。虽然图1示出了两个客户端设备115a和115n,但是本公开适用于具有一个或多个客户端设备115的系统架构。
在一些实施方式中,客户端设备115可以是由用户125穿戴的可穿戴设备。例如,客户端设备115可以被包括为带扣(clip)(例如,手环)的一部分、珠宝的一部分、或一副眼镜的一部分。在另一个示例中,客户端设备115可以是智能手表。在各种实施方式中,用户125可以在设备的显示器上查看来自消息应用103a/103b的消息,可以经由设备的扬声器或其他输出设备来访问消息等。例如,用户125可以在智能手表或智能手环的显示屏上查看信息。在另一示例中,用户125可以经由耦合到客户端设备115或作为客户端设备115的一部分的耳机(未示出)、客户端设备115的扬声器、客户端设备115的触觉反馈元件等来访问消息。
在一些实施方式中,消息应用103b存储在客户端设备115a上。在一些实施方式中,消息应用103b(例如,瘦客户端应用、客户端模块等)可以是存储在客户端设备115a上的客户端应用,其具有对应的存储在消息服务器101上的消息应用103a(例如,服务器应用、服务器模块等)。例如,消息应用103b可以将用户125a在客户端设备115a上创建的消息传送给存储在消息服务器101上的消息应用103a。
在一些实施方式中,消息应用103a可以是存储在消息服务器101上的独立应用。用户125a可以使用客户端设备115a上的浏览器或其他软件,经由网页来访问消息应用103a。在一些实施方式中,在客户端设备115a上实施的消息应用103b可以包括与消息服务器101上包括的模块相同或相似的模块。在一些实施方式中,消息应用103b可以作为独立的客户端应用来实施,例如,在一个或多个客户端设备115包括能够与其他客户端设备115交换消息的功能的对等或其他配置中。在这些实施方式中,消息服务器101可以包括有限的或不包括消息功能(例如,客户验证、备份等)。在一些实施方式中,消息服务器101可以实施一个或多个机器人,例如机器人107a和机器人111。
服务器135可以包括处理器、内存和网络通信能力。在一些实施方式中,服务器135是硬件服务器。服务器135通过信号线128通信地耦合到网络140。信号线128可以是有线连接,例如以太网、同轴电缆、光纤电缆等,或无线连接,例如Wi-Fi、蓝牙或其他无线技术。在一些实施方式中,服务器135经由网络140向客户端设备115和消息服务器101中的一个或多个发送数据并从客户端设备115和消息服务器101中的一个或多个接收数据。虽然服务器135被示为一个服务器,但是各种实施方式可以包括一个或多个服务器135。服务器135可以实施一个或多个机器人作为服务器应用或服务器模块,例如机器人109a和机器人113。
在各种实施方式中,服务器135可以是管理消息服务器101的相同实体的一部分,例如,消息服务的提供者。在一些实施方式中,服务器135可以是第三方服务器,例如,该第三方服务器由与提供消息应用103a/103b的实体不同的实体控制。
在一些实施方式中,服务器135提供或托管机器人。机器人是在一个或多个计算机上实施的自动服务,用户主要通过文字与其进行交互,例如通过消息应用103a/103b。机器人在下面更详细地描述。
在一些实施方式中,消息应用103a/103b还可以经由用户界面,例如,作为按钮或其他用户界面元素,向用户125提供一个或多个建议,例如建议响应。建议响应可以例如通过减少或消除用户键入响应的需要来实施更快的交互。例如,当客户端设备缺少文本输入功能(例如,不包括键盘或麦克风的智能手表)时,建议响应可以使用户能够快速且容易地响应消息。例如,当用户(例如,通过在触摸屏上选择相应的用户界面元素)选择建议响应时,建议响应还可以使用户能够快速响应消息。可以使用预测模型来生成建议响应,预测模型例如是训练为生成响应的机器学习模型。
例如,消息应用103a/103b可以实施机器学习,例如深度学习模型,机器学习可以增强用户与消息应用103的交互。例如,响应生成器150可以利用机器学习来向消息应用103a/103b提供建议。在一些实施方式中,机器学习可以在环境100的一个或多个其他组件上实施,并且,例如,不使用响应生成器150。机器学习模型可以使用合成数据来训练,合成数据例如是在不使用用户信息的情况下由计算机自动生成的数据。在一些实施方式中,机器学习模型可以例如基于样本数据来被训练,对于该样本数据,使用用户数据来训练的许可已经从用户那明确地获得。例如,样本数据可以包括接收的消息和向接收的消息发送的响应。基于样本数据,机器学习模型可以预测对所接收的消息的响应,然后可以将其作为建议响应来提供。例如,通过提供基于所接收的消息和用户的语境而定制的响应的选择,通过减少用户对所接收的消息的响应进行组织的负担,用户交互被增强。例如,当用户提供同意时,可以基于用户先前的活动来定制建议响应,用户先前的活动例如是会话中较早的消息、不同会话中的消息等。例如,这种活动可以被用于确定对用户的适当建议响应,例如,基于用户的交互风格的有趣响应、正式响应等。在另一示例中,当用户指定一个或多个首选语言和/或地区时,消息应用103a/103b可以以用户的首选语言生成建议响应。在各种示例中,建议响应可以是文本响应、图像、多媒体等。
在一些实施方式中,机器学习,例如使用条件语言模型,可以在响应生成器150上和/或消息服务器101上,在客户端设备115上,在消息服务器101和客户端设备115两者上等实施。在一些实施方式中,可以在客户端设备115上实施简单的机器学习模型(例如,允许在客户端设备的内存、存储器和处理约束内操作模型),并且可以在消息服务器101和/或响应生成器150上实施复杂的机器学习模型。如果用户不同意使用机器学习技术,则不实施这种技术。在一些实施方式中,用户可以选择性地提供仅在客户端设备115上实施的机器学习的同意。在这些实施方式中,可以在客户端设备115上实施机器学习,使得对机器学习模型或机器学习模型使用的用户信息的更新在本地存储或使用,并且不与诸如消息服务器101、服务器135或其他客户端设备115的其他设备共享。
对于同意例如基于机器学习技术接收建议的用户,可以由消息应用103提供建议。例如,建议可以包括内容(例如,电影、书籍等)、日程(例如,用户的日历上的可用时间)、事件/地点(例如,餐馆、音乐会等)等的建议。在一些实施方式中,如果参与会话的用户同意使用会话数据,则建议可以包括基于会话内容的对传入的消息的建议响应。例如,如果已经同意基于会话内容的建议的两个用户中的第一用户发送了消息“你想吃点东西吗?意大利菜怎么样?”,则可以向第一用户建议响应,例如,“@assistant午餐、意大利菜、2人桌”。在该示例中,建议响应包括机器人(由符号@和机器人句柄assistant来识别)。如果第一用户选择该响应,则将assistant机器人被添加到会话中,并将消息发送给机器人。然后可以在会话中显示来自机器人的响应,并且两个用户中的任一个可以向机器人发送进一步的消息。在该示例中,未向assistant机器人提供对会话内容的访问,并且建议响应由消息应用103生成。
在某些实施方式中,可以基于机器人是否已经存在于会话中或者是否能够并入会话中来定制建议响应的内容。例如,如果确定旅行机器人可以合并到消息app中,则对关于飞往法国的机票费用的问题的建议响应可能是“让我们问旅行机器人!”
在不同的实施方式中,建议,例如建议响应,可以包括以下中的一个或多个:文本(例如,“极好!”)、表情符号(例如,笑脸、困脸等)、图像(例如,来自用户的照片库的照片)、基于其中用户数据插入模板的字段中(例如,“她的号码是<电话号码>”,如果用户提供对用户数据的访问,其中字段“电话号码”基于用户数据来填写)的模板生成的文本、链接(例如,统一资源定位符)、消息贴纸等。在一些实施方式中,建议响应可以例如使用颜色、字体、排版等来格式化和/或风格化。例如,包括电影推荐的建议响应可以包括关于电影的描述性文本,来自电影的图像以及买票的链接。在不同的实施方式中,建议响应可以作为不同类型的用户界面元素呈现,例如文本框、信息卡等。
在各种实施方式中,可以使用户能够控制他们是否接收建议,他们接收什么类型的建议响应,建议响应的频率等。例如,用户可以完全拒绝接收建议响应,或者可以选择特定类型的建议响应,或仅在一天中的某些时间接收建议响应。在另一示例中,用户可以选择接收个性化的建议响应。在该示例中,机器学习可以用于基于用户关于其数据的使用和机器学习技术的使用的偏好来提供建议响应。
图2是示出根据一些实施方式的用于向包括图像的消息提供建议响应的示例方法200的流程图。在一些实施方式中,方法200可以在例如服务器系统102上实施,例如,消息服务器101,如图1所示。在一些实施方式中,方法200中的一些或全部可以在诸如图1所示的一个或多个客户端设备115之类的系统上实施,和/或在服务器系统和一个或多个客户端系统两者上实施。在所描述的示例中,实施系统包括一个或多个处理器或处理电路,以及一个或多个存储设备,诸如数据库或其他可访问存储器。在一个实施方式中,一个或多个服务器和/或客户端的不同组件可以执行方法200的不同框或其他部分。
在框202中,检查是否已获得在方法200的实施方式中使用用户数据(并包括下面描述的在图3的方法300中的用户数据的使用)的用户同意(例如,用户许可)。例如,用户数据可以包括用户发送或接收的消息,例如,使用消息应用103,用户偏好,用户生物特征信息,用户特征(身份、姓名、年龄、性别、职业等),关于用户的社交网络和联系人,社交和其他类型的动作和活动,用户创建或提交的内容、评级和观点,用户的当前位置,历史用户数据,用户生成、接收和/或访问的图像、用户分享的视频等。本文描述的方法的一个或多个方框可以在某些实施方式中使用这种用户数据。
如果已经从相关用户获得在方法200中可以使用用户数据的用户同意,则在框204中,确定本文方法的框可以通过如针对那些框描述的合理使用用户数据来实施,且该方法继续到框208。如果没有获得用户同意,则在框206中确定将在不使用用户数据的情况下实施框,并且该方法继续到框208。在一些实施方式中,如果尚未获得用户同意,则不使用用户数据并利用合成数据和/或通用或公共可访问和公开可使用的数据来实施框。
这里描述的实施方式可以基于图像提供消息建议。消息建议可以在各种情况下提供。例如,可以响应于从用户设备115中的任何用户设备接收特定用户(例如,用户125a)的客户端设备115a上的图像,例如,通过消息应用103,提供消息建议。例如,消息应用103可以是即时消息应用、社交网络应用、电子邮件应用、多媒体消息应用等。在特定用户和发送和/或接收图像的一个或多个其他用户的同意下,可以自动生成消息建议并将其提供给特定用户。例如,如果消息应用是即时消息应用,则可以接收图像作为特定用户125a与一个或多个其他用户125之间的即时消息通信的一部分,例如,在具有两个参与者的消息对话(例如,聊天)中,在包括两个以上参与者的群消息对话中等等。在各种实施方式中,一个或多个用户可以是机器人。在一些实施方式中,机器人可以是以软件和/或硬件实施的自动代理。在一些实施方式中,机器人可以代表相机(例如,安全摄像机、网络摄像机、监视摄像机等)、设施(例如,智能冰箱、警报设备、工业设施等)、成像设备(例如,显微镜、医学成像设备等),或与相机(例如,安全摄像机、网络摄像机、监视摄像机等)、设施(例如,智能冰箱、警报设备、工业设施等)、成像设备(例如,显微镜、医学成像设备等)相关联,并通过消息应用103发送一个或多个图像。在包括一个或多个作为机器人的用户的实施方式中,从机器人的所有者或操作者获得使用由机器人生成的消息的同意。在一些实施方式中,同意可以被指定为机器人、相机、设备等的配置参数,并且在机器人与消息应用103交互时将其提供给消息应用103。
在一些实施方式中,可以专门向那些已经同意访问用户数据的用户提供消息建议。在一些实施方式中,可以自动地或基于用户输入提供消息建议,例如,可以向用户提供请求建议的用户界面。
在框208中,训练条件语言模型。例如,该框可以作为预处理步骤被执行,由执行方法200的其他框架的相同或不同系统来执行,并且可以在与方法200的其他框不同的时间点执行。可以向条件语言模型提供图像特征向量作为输入以及先前预测的词(例如,词序列),并且可以确定词汇表中的所有词要成为生成的响应中的下一个词的概率。在一些实施方式中,条件语言模型包括长短期记忆网络(LSTM),用于模拟表示图像的图像特征的类似聊天的响应(即,词序列)(如下所述)。用于训练条件语言模型的训练数据可以包括许多图像-响应对,其包括图像和对消息会话语境中的该图像的响应。在一些实施方式中,可以针对训练数据(例如,通过人类)合成地创建对给定图像的响应,和/或如果已获得用户的同意,可以从用户在测试或实际消息会话语境中的消息中接收特定图像的实际响应的样本获得响应。在下面更详细地描述训练数据的一些示例。
在框210中,获得图像。在各种实施方式中,图像可以是静态图像(例如,照片,表情符号或其他图像),电影图或动画图像(例如,包括运动的图像,包括动画和音频的贴纸,等),视频等。
在一些实施方式中,可以通过检测已经在消息会话语境中接收到的图像来获得图像,例如,包括在通过通信网络从另一个用户设备接收的电子消息中。在一些实施方式中,对于一个或多个建议响应,例如,图像可能已经经由应用程序接口(API)被接收作为来自应用程序的请求的一部分。
在一些另外的示例中,图像可以由一个或多个客户端设备115发送,或者由发送消息的机器人发送,并且图像可以由客户端设备115经由网络140接收。具有两个参与者的一对一(1:1)消息对话中,图像可以由特定用户的客户端设备接收。在群体消息对话中,图像可以由群体消息会话中的两个或更多个参与者的客户端设备接收。在一些实施方式中,图像可以从存储器获得,存储器例如是客户端设备115的本地存储器(例如,内存、存储驱动等)和/或通过网络140可由客户端设备访问的远程存储器(例如,远程客户端设备、服务器设备或存储设备的存储驱动)。在一些实施方式中,可以基于包括用户传输的图像的消息,在消息应用中发布图像。例如,消息服务器可以在消息应用103a内发布图像。在另一个示例中,客户端设备115可以在消息应用103b内发布图像。该方法可以继续到框212。
在框212中,在一些实施方式中,确定图像是否有资格获取生成的建议。在该示例方法中,假设发现图像有资格获取生成的建议。(如果没有找到有资格的图像,则,例如,该方法被中断或获得另一图像。)在一些示例中,针对不为其提供消息建议的内容的特定类型或分类检查图像。例如,可以将图像和/或其元数据发送到内容服务器154,内容服务器154可以确定图像内容是否包括在不为其提供消息建议的特定预定义的分类中。内容服务器154可以使用例如对象检测技术和/或检测指示不适合的图像的其他属性。该方法继续到框214。
在框214中,确定特征向量。特征向量是在框210中获得的图像的视觉像素内容的浓缩数值表示。例如,特征向量可以是具有特定数量的维度的向量,每个维度具有一个值。在一些实施方式中,可以使用128个维度。在一些实施方式中,特征向量可以由神经网络基于图像像素值(例如,颜色值)生成。
在一些实施方式中,可以从图像的特定部分确定一个或多个特征向量,例如,基于图像检测或对象识别技术检测的“局部”图像特征(例如,模式匹配、机器学习等)。例如,可以检测包括面部(没有身份)、动物、物体、景观特征(树叶、建筑物、天空、日落等)的图像特征。例如,如果确定图像的主要主体,则可以从描绘该主要主体的图像部分创建特征向量。在一些实施方式中,可以认为图像的主要主体的特征向量代表整个图像并且在方法200中使用。该方法继续到框216。
在框216中,基于表示图像的特征向量生成对图像的一个或多个建议响应。在一些实施方式中,建议响应是要被发送的消息建议,作为对消息会话(例如,涉及在用户设备之间发送的电子消息的会话)中接收到的消息(例如,图像)的一个或多个会话回复,其中接收到的消息包括图像。在一些示例中,可以使用一个或多个语言模型的推断,例如,在框208中训练的条件语言模型的推断,来确定建议响应。此外,可以使用不同的技术来基于条件语言模型的输出来确定建议响应。下面参考图3-5描述生成建议响应的一些示例实施方式,其使用集束搜索技术和LSTM网络。在一些实施方式中,可以使用采样技术来确定建议响应,例如,将具有最高概率为下一个词的确定的词添加到词序列。
在一些实施方式中,可以基于从可访问设备的一个或多个机器人调用或请求信息来生成一个或多个建议响应。条件语言模型生成的响应可以被组合和排名,以识别一个或多个排名最高的建议响应。建议响应可以是文本(例如,短语、词等)、图像、视频和/或其他类型的媒体内容。在一些示例实施方式中,建议响应可以以文本形式生成,如下面的一些示例中所详述描述的,并且该生成的文本可以与在其他类型的媒体内容(如果已经获得用户同意,例如是来自用户收集或来自可访问的图像库或照片库的图像)中检测到的概念(例如,标签)匹配,其中可以如本文所述类似地在媒体内容中识别这些概念。然后可以将这种匹配的媒体内容提供为如本文所述的消息建议。该方法继续到框218。
在框218中,将排名最高的建议响应中的一个或多个建议响应提供给用户。例如,排名最高的建议响应可以显示在用户使用的客户端设备115的显示设备上。在一些示例中,如果在接收到的消息中获得图像,则可以在消息界面中显示图像,并且可以与图像相关联地,例如,在图像的一侧上,显示排名最高的建议响应。在各种实施方式中,可以显示特定数量的排名最高的建议响应,例如,三个,十个等。在一些实施方式中,例如,经由用户输入和/或存储的用户偏好,呈现的建议响应的数量可以由用户确定。在一些实施方式中,将排名最高的建议响应中的一个或多个建议响应提供(例如,传输)给请求一个或多个建议响应的请求设备或应用,该应用例如是进行方法200的相同系统或不同系统上的应用。该方法继续到框220。
在框220中,在一些实施方式中,接收对所显示的排名最高的建议响应中的一个或多个建议响应的选择。例如,选择可以基于用户在用户设备,例如,经由输入设备,提供的用户输入,该输入设备诸如是接收用户触摸的触摸屏或触控板、接收语音命令的麦克风、按钮、鼠标或接收用户的操纵的操纵杆等。在一些示例中,用户可以在触摸屏上输入单击以选择相关联的建议响应,这样,与手动输入响应相比,减少了用户输入量。在一些实施方式中,可以自动选择(无需用户输入)一个或多个建议响应,例如,基于用户偏好、用户语境(例如,地理位置、时间或日期等,如果已经获得用户同意)或其他预定义条件。
在一些实施方式中,框220可以由客户端设备实施,例如,经由连接到客户端设备的输入设备接收选择。一些实施方式可以使用服务器设备来实施框220,例如,其接收通过通信网络直接从用户端设备或其他设备处使用的输入设备传输到服务器设备的选择,或者通过一个或多个其他设备(例如,客户端设备和/或服务器设备)传输到服务器设备的选择。该方法继续到框222。
在框222中,在一些实施方式中,发送(或以其他方式输出)在框220中选择的建议响应。例如,选择的响应可以作为一个或多个消息发送给一个或多个接收方设备。在一些示例中,可以通过网络140经由消息服务器101将消息传输到一个或多个其他客户端设备115和/或直接将消息传输到其他客户端设备115。在一些实施方式中,例如,在一对一会话中,消息被发送到用户设备,该用户设备发送在框210中获得的图像,该图像例如在用户设备接收的消息中,例如聊天消息、文本消息、电子邮件消息等。在一些实施方式中,消息被发送到一个或多个用户设备,该用户设备为发送在框210中获得的图像的用户帐户而配置。在一些实施方式中,例如,当用户选择超过一个的建议响应时,所选择的响应可以作为单独的消息发送,作为组合的消息发送等。在一些实施方式中,可以提供用户界面,以允许例如在消息合成界面中,在输出消息之前编辑所选择的建议响应。然后,在一些实施方式中,该方法可以返回到框210,例如,如果已经获得了另一个图像。
图3是示出基于表示图像的特征向量来生成一个或多个建议响应的示例方法300的流程图。例如,方法300可用于实施图2的示例方法200的框216。
在总的概述和示例中,在一些实施方式中方法300可以包括以下特征。首先,将启动令牌推入集束队列。此外,图像的特征向量被馈送到条件语言模型。在初始阶段(框304),条件语言模型产生来自词汇表的一个或多个词作为基于特征向量确定的第一词,例如,用作训练数据的来自先前响应的词,例如“pretty”“cute”和“nute”。对于初始阶段的每个词,通过添加下一个词确定一个或多个词序列来创建序列。例如,如果初始词是“pretty”,则序列可以被确定为每个以“pretty”开头,例如“pretty woman”、“pretty girl”、“prettycool”等。额外的词可以类似地在后续阶段继续被添加到词序列。不同的词序列可以具有不同的长度,例如,“pretty good deal”可以是大小为3的序列。可以对在初始阶段确定的其他词重复该过程,例如,“cute!”、“cute poster”、“neat thick”等等(框306-320)。基于一个或多个第一词,可选择来自所确定的词序列的前N个序列作为建议响应。
在框302中,将特征向量输入到条件语言模型以调节模型。例如,特征向量可以是如上面针对图2所述获得的图像的浓缩表示。条件语言模型可以包括训练的神经网络,其已经使用图像和常见响应的训练数据进行训练,例如,如针对上述图2的框208所述。训练数据响应包括形成可用词的词汇表的词,其用于形成建议响应。例如,可以使用长短期记忆(LSTM)神经网络,其中图像特征向量被输入到LSTM的第一实例。可以使用的LSTM网络的一些示例在下面参考图5描述。LSTM网络(或其他条件语言模型)可以在设备的存储器(例如,内存)中实施并且使用一个或多个硬件处理器。将表示图像的预定特征向量输入到条件语言模型的一些优点包括不需要在条件语言模型中部署特征提取器,使条件语言模型的尺寸较小以及潜在地更快的模型执行。
在框304中,将初始词推入集束队列(beam queue)中。在该示例中,使用集束搜索技术来基于条件语言模型的图像和输出来搜索和组合响应。每个响应是“词序列”,其可以是序列中提供的一个或多个词,例如,在诸如“so cute”和“I like it”的响应中找到的词序列。词可以是一个或多个字符的字符串,其中字符可以是字母、标点符号(例如,“!”或“?”),或者在某些实施方式中可以是图标、表情、符号或其他字符。
推入集束队列的初始词用于启动词序列的词生成过程。在一些实施方式中,初始词是一个特定的启动令牌,表明它是该处理的开始。例如,从条件语言模型输出的响应可以忽略启动令牌和任何结束令牌(下面描述)。在一些实施方式中,集束队列具有最大尺寸Q,表示如下所述要处理的词序列(集束)的最大值Q。例如,Q可以是10、20或其他数字。
在框306中,选择集束队列中的词序列。例如,在方法300的第一次迭代中,所选择的词序列是第一词,例如如上所述的启动令牌。在后面的迭代中,所选择的词序列可以是集束队列中尚未处理的下一个词序列(例如,尚未被处理以找到该词序列的下一个词)。在一些实施方式中,存储在集束队列中的词序列是由LSTM神经网络创建的词图像嵌入,其中每个嵌入是数字的向量,其以浓缩的形式编码迄今为止包括在词序列以及特征向量的图像内的词。例如,每个词可以由词嵌入表示,该词嵌入可以具有与特征向量相同的维度数,例如,它们被映射到相同的空间并且可以组合成词图像嵌入。
在框308中,将所选择的词序列输入到条件语言模型。例如,可以将所选择的词序列输入到提供条件语言模型的LSTM网络的一个LSTM(例如,实例化)。图5中示出了LSTM架构的示例。在一些示例中,在框308的初始迭代中,框302中输入的图像特征向量被输入到第一LSTM(例如,实例化),并且初始词(例如,启动令牌)也被输入到第一LSTM。在框308的后续迭代中,所选择的词序列是对图像特征向量进行编码的嵌入和迄今为止已包括在所选的词序列中的词,并且所选择的词序列被输入到提供词序列中的下一个词的后续LSTM(例如,实例化)。
在框310中,使用条件语言模型,从词汇表确定或生成多个词,作为词序列中的候选下一词,并且确定该多个词成为所选词序列中的下一个词的概率。例如,在框308中输入所选择的词序列的LSTM确定词和概率。词和概率由条件语言模型基于条件语言模型使用训练数据的训练来确定,其中训练数据包括先前图像和相关联的先前响应,其提供词汇表。例如,词汇表包括用于训练条件语言模型的训练数据的响应中使用的词。在一些实施方式中,词汇表可包括大量词,例如数千。在一些实施方式中,条件语言模型确定词汇表中的每个词成为给定图像特征向量的词序列中的下一个词的概率,基于来自包括对特定图像的响应的训练数据的训练,使得词汇表中的所有词都有确定的概率。
在一些实施方式中,可以针对概率确定该词汇表词集的子集,例如,词汇表中的所有名词、副词或其他类型的词,或者词汇表词的不同的所选子集。在一些实施方式中,词汇表词的子集可以是具有已知高概率(例如,高于阈值概率或频率)的词的子集,它们将用于响应接收到的电子消息,和/或用于响应在这种消息中接收到的图像,例如,基于来自先前发送的消息和响应的一般用户数据(如果已经获得来自这种消息的发送者/接收者的用户同意)。如上所述,词可以包括文本词、符号(例如,标点符号,省略号等)、表情符号等。在一些实施方式中,词可以包括图像(例如,“贴纸”)、动画等。在一些实施方式中,来自词汇表的任何词序列的可能的下一个词之一是特殊的结束令牌,例如,指定用于表示词序列的结尾的令牌。在一些实施方式中,基于将每个使用过的词汇表词分别附加到所选择的词序列的末尾,有效地创建多个不同的词序列。
在框312中,基于在框310中确定的下一词的概率来选择若干(例如,Q个)词序列,包括在框310中确定的下一词。因此,基于它们的下一词的相关概率来选择Q个词序列。所选择的Q个词序列是词序列的子集,该词序列通过将分别将在框310中确定的下一个词附加到所选择的(先前的)词序列形成。例如,选择Q个词序列,其中它们的下一词具有在框310中确定的最高概率。例如,为集束队列中的每个词序列的每个下一个词生成概率,并且选择与最高概率相关的Q个词序列。例如,每个选择的词序列是词嵌入,包括图像向量、此词序列的先前选择的词以及现在嵌入到该词序列末尾的下一词。在某些情况下,这些可以是词序列,其中下一词是结束令牌。在一些实施方式中,选择具有高于预定概率阈值的概率的Q个词序列。
在一些实施方式中,Q个词序列的选择可能受到其他因素的影响。例如,一个因素可以是由正为其生成建议响应的用户发送的一个或多个先前的消息响应。在一些示例中,如果生成的词序列中的一个或多个与用户在消息语境中提供的先前响应相同或相似(例如,具有相同序列中相同词的百分比阈值),则较高的权重可以分配给那些类似的生成的词序列。例如,较高的权重可以使得加权词序列在与加权词序列相同或相似的概率相关联的其他词序列中被选择。如果已经获得用户同意,则可以从例如消息应用数据库199的消息数据存储器获得先前的用户响应。在一些实施方式中,如果先前响应所响应的先前图像可用(例如,在消息数据存储器中),则先前响应所回复的先前图像也可以与当前图像进行比较。如果当前图像与先前图像类似(例如,在它们的特征向量中存在值的百分比相似性),则指示先前响应回复与当前图像类似的先前图像。因此,可以向生成的与先前图像对应的先前响应类似的词序列分配较高的权重以增强它们在框312中被选择的资格。
在一些实施方式中,由用户或用户设备接收或发送的先前图像可以影响词序列的选择(例如,框312)和/或词序列的生成(例如,框310)。在一个示例中,可以生成和/或加权建议响应,以参考在当前(最近接收到的)图像的语境中的先前图像。例如,如果在接收到当前图像之前的预定时间段内接收到先前图像,则可以确定这种建议响应。在一些示例中,如果确定先前图像描绘第一类型的对象(例如,诸如衬衫之类的衣物),则当前图像也描绘相同类型的对象(例如,基于图像对象识别技术、图像标签或其他元数据等),然后生成的建议响应可以包括“我更喜欢另一个”和/或“我更喜欢这个”。
在另一示例中,可以基于先前响应来生成和/或加权建议响应,该先前响应是先前响应于在彼此的阈值时间段内发送或接收的一系列或一组这样的先前图像而发送的。在一些示例中,如果当前已经接收到与先前一组图像相似或对应的一组图像(例如,在从当前时间始阈值时间段内接收到先前一组图像的情况下),则这样的建议响应可以被生成和/或加权更高。在一些情况下,一个或多个先前消息可以与先前图像相关联(例如,附加有先前图像或者在发送先前图像的阈值时间段内发送),并且这样的先前消息也可以用于响应生成和/或加权。在一些示例中,用户可以在当前时间的阈值时间段内接收到几个先前图像,这些图像在其主题中彼此相关。例如,先前图像可以描绘相同类型的对象(例如,特定类型的衣物)并且具有在图像中描绘(并且使用一个或多个对象识别技术检测的)的和/或在图像的元数据中指示的不同特征(例如,颜色、尺寸、样式等)。此外,先前的消息,如“我应该买哪一个?”可能已接收到,其与一个或多个先前图像相关联。对于这样一组先前图像和/或先前消息的先前响应可能是“第二个”,“我喜欢蓝色的”(如果其中一个描述的条目是蓝色)等等。可以基于包括这样的先前消息和图像的训练数据为当前组图像生成建议响应。例如,在生成的建议响应中,可以生成和/或更高地加权诸如“第一个”、“第二个”、“第三个”、“蓝色的”等的建议响应,作为对接收到的一组图像和/或接收到的询问要购买哪个对象的消息的响应。
在框314中,在一些实施方式中,确定所有选择的词序列是否都在白名单上。例如,白名单可以是用于训练条件语言模型的训练数据中提供的响应的子集。白名单可以存储在可访问存储器中,例如,环境100的可访问设备的内存或其他存储器中。在一些实施方式中,白名单提供允许输出的响应。可以将来自框312的每个所选词序列与白名单上的响应进行比较。不存在于白名单中的词序列不允许作为建议响应输出。在一些实施方式中,可以使用黑名单,例如,提供不允许输出的响应,使得不允许输出与黑名单上的响应匹配的所选词序列。
如果在框314中的白名单上找到所有的所选词序列,则该方法继续到框318,如下所述。如果在框314中的白名单上没有找到所选词序列中的一个或多个,则该方法继续到框316,其中白名单上不存在的词序列被包括如框310中的条件语言模型所确定的不同的下一个词的其他词序列替换。例如,可以选择具有在N个最高概率之后具有下一个最高概率的下一词的词序列来替换不在白名单上的词序列。该方法继续到框318。
在框318中,将所选词序列推入集束队列。例如,可以存储源自集束队列中的词序列的较早版本(例如,其中较早版本具有较少词)的词序列来代替集束队列中的较早版本(例如,在某些实施方式中,代替没有结束令牌的较早版本)。
在框320中,检查集束队列中的所有词序列是否已满足一个或多个终止条件。例如,一个终止条件可以是集束队列中的所有词序列以特殊结束令牌作为它们的最后一个词而结束,表示将不再有词添加到那些词序列。条件语言模型可以为词序列生成结束令牌,作为序列的生成的下一个词之一。另一个终止条件可以是对于集束队列中的词序列来说已经达到词序列中词的最大长度。还可以检查终止条件的组合,例如,组队列中的所有词序列以特殊的结束令牌结束或具有最大词长。
如果并非集束队列中的所有词序列都满足一个或多个终止条件,则该方法返回到框306以选择集束队列中的词序列。在一些实施方式中,所选择的词序列可以是未以特殊的结束令牌结束,未达到最大词长,或未达到其他终止条件的词序列。在一些实施方式中,所选择的词序列可以是刚刚生成的词序列之一(例如,添加了词)并且在最后一次迭代中存储在集束队列中。
在框320中,如果集束队列中的所有词序列都满足一个或多个终止条件,则该方法继续到框322,其中集束队列中的词序列被指定为建议响应。例如,这些词序列和这些词序列的分数(下面描述)可以被标记和/或存储为建议响应。该方法随后继续到框324。
在框324中,检查是否存在要处理的一个或多个附加词序列。例如,可能存在来自先前的迭代的在框312中选择的一个或多个词序列(并且在框314中取得资格),该迭代尚未满足终止条件,因为其他所选词序列被推入集束队列中以进行处理。如果有更多的词序列要处理,则该方法继续到框304,以将未处理的词序列推入(空的)集束队列,并重复框306-320的处理。
如果在框324中检查不再有要处理的词序列,则该方法继续到框326,其中指定的词序列被输出为生成的建议响应。例如,输出建议响应可以提供给图2的框218。在一些实施方式中,如上面针对框322所述,集束搜索产生每个词序列的分数,并且词序列基于这个分数而排名。例如,词序列的分数可以基于由条件语言模型确定的词序列中包括的一个或多个词的概率。在各种实施方式中,词序列的分数可以是添加到词序列的最后一个词的概率,或者词序列中的词的概率的组合(例如,平均值),和/或可以基于其他因素(例如,具有较少词的词序列可被分配比具有更多词的词序列更好(例如,更高)的分数,具有特定词的词序列(例如,来自预定列表)可被分配比不在列表上的词更高分数等)。
在一些实施方式中,词序列可以基于其分数以排名的顺序在框320中输出,例如,使得框218可以选择特定数量的排名最高的建议响应。
在其他实施方式中,可以使用图3的框的其他方法或变体以使用条件语言模型来确定建议响应。例如,一些实施方式可以使用不同尺寸的集束队列、一个或多个框的不同的进行顺序,用于生成和保留从条件语言模型提供的不同的词序列的不同的技术等。
图4是示出可以实施本文描述的一个或多个建议响应特征的一个示例模块400的框图。在一些实施方式中,消息模块402可以是消息应用103的组件,并且可以获得如上面针对图2所描述的图像,例如,作为从不同的用户设备接收的消息的一部分。可以将图像发送到消息建议模块404,消息建议模块404可以包括若干不同的组件。消息建议模块404的一些或所有组件可以在消息应用103、响应生成器150和/或环境100中示出的系统的其他模块或组件中实施。
例如,图像(例如,图像像素)可以从消息模块402发送到特征向量生成器406,特征向量生成器406在上面参考图2描述。如上所述,特征向量生成器406基于图像像素来确定特征向量,其中特征向量代表图像。特征向量生成器输出多个维度的特征向量,输出到响应生成器408。
在一些实施方式中,响应生成器408通过使用条件语言模型410确定图像特征向量的一个或多个建议响应。在某些实施方式中,响应生成器408(和/或条件语言模型410)可以使用白名单412以潜在地过滤掉一些建议响应,例如,那些没有出现在白名单上的建议响应。
在一些实施方式中,可以基于从设备可访问的一个或多个机器人调用或请求信息来生成一个或多个建议响应。例如,如果响应生成器408(或系统的其他组件)确定适当的建议响应将是与图像的内容相关的特定信息,则可以获得该信息的机器人可以被确定,并且对机器人的命令和/或请求可以被生成作为建议响应。
在一些实施方式中,消息排名组件414可以接收由响应生成器408生成的建议响应,并将建议响应组合并排名为排名顺序。例如,可以基于计算的分数对建议响应进行排名,其中可以为针对图像确定的每个建议响应确定分数。在一些实施方式中,可以为每个建议响应确定分数。在一些实施方式中,分数基于由如上所述的条件语言模型确定的概率。在一些实施方式中,分数可以基于建议响应与图像相关的确定的概率,其中概率可以基于例如历史消息数据中(和/或如上所述的训练数据中)的响应的发生频率。历史消息数据可以是来自先前会话的数据,其中会话中的参与者已经同意使用这些数据来实施建议响应特征。如果用户未提供此类使用的许可,则不使用历史消息数据。在一些实施方式中,响应生成器408可以提供响应的分数,消息排名组件414可以使用该分数来对响应进行排名。在一些实施方式中,响应生成器408可以提供生成的建议响应的分数和排名,如上面针对图3所描述的,例如,消息排名组件414可以被包括在响应生成器408中。
建议响应可以按排名顺序输出。在一些实施方式中,可以类似地基于一个或多个置信度分数对从机器人请求信息的建议响应进行排名,其中该一个或多个置信度分数基于类似因素(训练消息数据中的频率等)来确定,和/或在一些实施方式中,至少一个机器人相关的响应可以总是排名很高(例如,可以向用户呈现调用机器人的响应作为替代的建议响应)。在一些实施方式中,系统还可以基于多样性对建议响应进行排名。例如,如果多个最高排名的建议响应在词、字母或语义上彼此相似(例如,通过所参考的词典、词库或其他技术和/或数据确定),则可以例如通过降低至少一个类似响应的排名来调整排名,以增加建议响应的多样性。
在一些实施方式中,可以发送特定数量的排名最高的建议响应,以在用户设备上显示或以其他方式输出。可以通过用户输入来选择这些建议响应中的一个或多个,以将一个或多个消息发送到其他设备,其中一个或多个消息包括所选择的建议响应的内容。在一些实施方式中,如果所选择的建议响应是对机器人的命令或请求,则可以将机器人添加到消息会话,并在会话界面中获取并显示所请求的信息,并且用户可以向机器人发送进一步的消息。
图5是示出可以实施本文描述的一个或多个特征的LSTM架构500的一个示例的框图。LSTM架构500实施条件语言模型并且包括多个LSTM 502,LSTM 502表示在实施的处理程的不同阶段的LSTM模型框的实例或副本。
在该示例中,首先为系统提供训练。在一些实施方式中,训练数据可以包括如上所述的图像-响应对,其可以已被过滤(例如,通过逐点互信息(PMI)过滤来过滤)和/或以其他方式处理。训练LSTM模型,以在输入包括图像特征向量和词序列中的所有先前词的嵌入之后,输出词序列中的下一个词的概率。对于训练,将表示训练数据的图像的图像特征向量输入到第一LSTM 506中。此外,为了训练(而不是为了推断),在LSTM 506之后将词嵌入输入到LSTM,其中词嵌入表示包含在对应于图像的训练数据的响应中的单独词。在一些示例中,训练数据响应的词一次输入到LSTM。在一些示例中,词ID(例如,词ID 514或524)可以是表示特定词并且具有词汇表的尺寸大小的独热(one-hot)向量,其被馈送到神经网络以产生词嵌入(例如,词嵌入516或526),其是较低维度向量,例如具有图像特征向量的维度。
在示例训练过程中,第一LSTM 506输出值向量(LSTM神经网络的输出,例如,LSTM的顶层)编码信息,该信息指示词1的词分布,其中向量输入到softmax函数508。softmax函数508输出词1概率分布510,词1概率分布510指示词汇表的词成为词序列中的下一个词(词1)的概率。词汇表词来自用于训练条件学习模型的训练数据中使用的响应。第一LSTM 506还输出嵌入,该嵌入被输入到第二LSTM 512,其中嵌入包括序列的先前词和图像特征向量504的表示。在图5的示例中,样本词1ID 514被提供为词嵌入516,其被输入到第二LSTM512,例如,表示包括在对图像特征向量504所表示的图像的响应中的第一词。LSTM 512输出值向量编码信息,该信息指示输入到softmax函数518的下一个词(词2)的词分布,并且softmax函数518输出词2概率分布520,词2概率分布520指示词汇表的词成为词序列中的下一词(词2)的概率。LSTM 512还输出表示图像特征向量和序列的先前词的嵌入,其中嵌入被输入到第N个LSTM 522。第N-1个词ID 524被提供为第N个LSTM 522的词嵌入526。LSTM 522输出用于输入到softmax函数528的确定的下一个词(词N)的向量,并且softmax函数528输出词N概率分布530,其指示词汇表的词成为词序列中的下一个词(词N)的概率。
在示例训练过程中,将确定的概率反馈给LSTM并且调整权重,使得LSTM产生已经在响应中使用的词序列的高概率,例如,基于已知已包括在与训练数据的图像(由图像特征向量表示)对应的训练数据的响应中的输入的词1到词N-1嵌入516和526。
在运行期间(例如,基于输入图像确定词概率的推断处理,其示例针对图3进行描述),条件语言模型先前已被训练。由图像特征向量504表示的新图像被输入到LSTM 506。LSTM 506基于图像特征向量确定词汇表中用于下一词,词1,的词的分布,并输出分布的值向量,输入到softmax函数508,softmax函数508确定并输出概率分布510,该概率分布510指示词汇表的词可用于作为词序列中的下一个词的词1的概率。例如,使用上面参考图3描述的集束搜索技术,搜索方法可以基于这些概率选择这些词中的一个或多个。
在随后的迭代中,搜索方法(例如,图3的框308)向第二LSTM 512提供表示针对词序列选择的先前词和特征向量的嵌入。LSTM 512基于嵌入为词序列的下一个词,词2,确定来自词汇表的词的分布,并输出分布的值向量,该值向量输入到softmax函数518。softmax函数518确定并输出概率分布520,概率分布520表示词汇表的词可以用于作为词序列中的下一个词的词2的概率。搜索方法基于这些概率选择这些词中的一个或多个。在随后的迭代中,搜索方法可以将表示针对词序列选择的先前词和特征向量的嵌入输入到下一个LSTM522,以确定词序列的第N个词的词分布,并且LSTM 522类似地产生词N的概率分布530。搜索方法基于这些概率选择这些词中的一个或多个。
因此,图5的LSTM网络确定词序列中的每个下一个词的概率。实际上,LSTM网络确定与每个词序列相关联的概率,因为基于其概率确定的先前词包括在LSTM实例提供给下一个LSTM实例的词序列嵌入中。因此,从词序列确定的建议响应也与概率相关联。
如上所述,可以基于训练数据来训练条件语言模型。在接收要为其生成建议响应的图像之前,可以基于训练数据创建条件语言模型,使得在接收到图像时,可以使用现有模型生成建议消息。
在一些实施方式中,可以基于在运行期间接收的图像和基于最终由用户(或应用)选择用于在消息中发送或被选择用于其他用途的建议响应来更新条件语言模型的部分或全部。例如,所接收的图像和用户选择的响应作为在更新模型的训练中使用的新的图像-响应对提供。
在一些示例中,训练数据可以是包括图像和对那些图像的响应的消息数据。例如,消息数据可以是合成数据,例如,基于模拟的会话,其中没有人类用户是参与者。在一些实施方式中,训练数据可包括由同意为训练目的提供此类数据的用户实际交换的图像和消息。训练数据在使用前进行处理,以删除用户标识符和其他用户相关信息。例如,在一些实施方式中,可以获得图像-响应对作为训练消息数据,其识别接收的特定图像和由用户选择并回复于接收该特定图像而传输的响应的内容。例如,可能已经在会话期间在消息应用中选择了响应。
在一些实施方式中,为了从消息数据集合中确定至少一部分训练消息数据,系统可以确定来自消息数据集合中的用户的频繁历史响应以回复在消息中接收图像,并且最频繁的响应和图像可以由系统组织和存储为训练数据。
在一些实施方式中,消息数据集合中的许多最频繁的响应可能不像其他不太频繁的响应那样适合于确定建议响应。例如,最频繁的响应可以由可能不特定于特定图像的响应(例如,特定类型的图像内容)支配。在一些示例中,诸如“lol”之类的通用响应可能是对许多不同图像和/或许多不同类型的图像内容(例如,图像特征)的最频繁的响应,并且不特定于任何特定图像内容或图像内容的类型。一些实施方式可以过滤掉这种频繁的通用响应,以针对训练数据的图像获得更加内容特定的响应。例如,可以在图像和响应之间计算统计关联分数。在一些示例中,可以为每个图像-响应对确定逐点互信息(PMI),如下所示:
具有低于特定关联阈值(例如,PMI阈值)的关联分数(例如,PMI)的对可以从训练数据中移除。在一些示例中,可以使用关联阈值1。当图像和响应独立地出现在消息数据的集合中时,在过滤之后剩余的对比被过滤的对出现的频率更高,因此这些剩余的对的响应更加特定于这些剩余的对中的图像内容(例如,剩余的对具有彼此更相关联的图像和响应,而被过滤出的对具有彼此较少关联的图像和响应)。剩余的对可以用作训练数据来训练条件语言模型,以为检测到与剩余的对中包括的图像类似的新图像生成建议响应。因此,可以过滤训练数据,使得训练数据中的先前响应比其他更通用的从训练数据中过滤掉的先前响应更加特定于先前图像的特定内容。
在一些实施方式中,如果已经获得用户同意,这用户对一个或多个响应的偏好(例如,如先前响应数据中所示的)可用于对用于模型的训练的训练数据中的相同或类似响应进行加权。例如,可以为由用户频繁提供的响应(例如,由用户提供超过阈值次数)和/或已经被用户有利地接收和评级的响应(例如,具有明确的用户评级或积极的反馈回复)指示用户偏好。例如,相同或相似的响应可以在模型的训练中具有更大的偏差,例如,当模型生成如上所述的概率时,使得这些响应具有更大的概率或分数。类似的响应可以包括具有相同词根的响应(例如,没有后缀或标点符号的词),和/或具有与由参考的数据库(例如,词库、词典等)、知识图或模型所确定的相同的语义含义。
在适当的情况下,本文描述的方法、框和操作可以以与所示出或描述的顺序不同的顺序执行,和/或与其他框或操作同时(部分地或完全地)执行。可以对一部分数据执行一些框或操作,并且稍后再次执行,例如,对于另一部分数据再次执行。并非所有描述的框架和操作都需要以各种实施方式执行。在一些实施方式中,框架和操作可以在方法中以不同的顺序和/或在不同的时间执行。
在一些实施方式中,一些或所有方法可以在诸如一个或多个客户端设备的系统上实施。在一些实施方式中,这里描述的一个或多个方法可以例如在服务器系统上和/或在服务器系统和客户端系统两者上实施。在一些实施方式中,一个或多个服务器和/或客户端的不同组件可以执行不同的框、操作或方法的其他部分。
图6是显示用户界面601的示例客户端设备600的图形表示,其中消息应用用于用户之间的会话。在该示例中,第一用户和第二用户经由他们的客户端设备参与聊天,其中第二用户正在操作客户端设备600。由显示的图标602表示的第一用户,向第二用户发送消息604,如用户界面中显示的。例如,消息604可能已经通过网络从第一用户的用户设备发送到由第二用户操作的客户端设备600。第二用户以显示在用户界面中的消息606进行响应。例如,第二用户可能已经例如经由显示的键盘或其他输入显示或设备,在用户界面601中输入了消息606。作为响应,第一用户向第二用户发送包括图像608的消息,其中图像608在会话的先前消息之后(例如,下方)显示在用户界面中。在一些示例中,第一用户602是人类用户。在一些实施方式中,第一用户602可以是机器人。
在一些实施方式中,第一用户通过消息传送电话号码(例如,当消息应用103通过SMS工作,或者另一个利用电话号码的消息应用)或从联系人列表选择用户(例如,当消息应用103在丰富的通信服务(RCS)或另一聊天界面上工作时)向第二用户发送消息。
图7是图6的示例客户端设备600和用户界面601的图形表示,其中消息应用中的会话包括对接收到的图像的生成的建议响应。图7中所示的会话与图6中的会话相同。如图7所示,消息应用103例如通过使用图2中所示的方法,提供对图像608的一个或多个建议响应710,一个或多个建议响应710显示在用户界面601中。消息字段718可替代地由第二用户使用,以输入要发送给第一用户(例如,经由键盘、语音命令等)的文本消息。第二用户可以选择任何建议响应710作为对接收图像608的响应。例如,在用户界面601中显示建议响应712(具有文本“aww”)、建议响应714(具有文本“可爱!”)、以及建议响应806(具有文本“在哪里?”),作为第二用户选择对包括图像608的消息的响应的选项。例如,虽然建议响应712、714和716在图7中的接收到的图像608下面显示,但是也可以在用户界面中的任何各种位置中显示(例如,在图像608的上方、侧面或周围,在用户界面601中的单独的显示字段或窗口中等)。
在图7所示的示例中,图像608已由条件语言模型处理,以基于如本文所述的模型的训练来确定建议响应。可以基于由训练数据训练的条件语言模型来确定一个或多个建议响应710,该训练数据包括由用户提供给描绘与图像608类似的像素的图像的先前响应。因为响应是直接基于图像像素的表示的来确定的,所以建议响应可以被确定和呈现,其对于图像是适当的和相关的,并且不限于基于概念或者由图像608中的系统检测到的图像特征的确定标签。在该示例中,建议响应712,“aww”,是基于图像像素和基于先前消息数据的机器学习训练确定的。可能无法通过其中标签被确定并且从标签确定建议响应的其他技术来确定建议响应712,例如,基于对建议响应的数据相关标签。例如,这样的标签可以包括“人”、“男人”和“女人”以通过系统描述在图像608中检测到的图像特征,并且这样的标签可能不太可能产生诸如响应712和/或其他响应714或716的建议响应。
图8、9、10和11是示出对例如来自不同用户设备的消息中接收到的图像所确定的建议响应的附加示例的图形表示。在这些示例中,建议响应显示在消息应用的用户界面中,并且可以使用本文描述的一个或多个特征由消息应用生成或用于消息应用。
图8示出了用户界面800,其显示接收的图像802和基于图像802使用条件语言模型确定并且在用户界面800中呈现以供第二用户选择来回复图像802的建议响应804。在该示例中,建议响应包括建议响应806(“美丽”),建议响应808(“漂亮”)和建议响应810(“在哪里?”)。可以选择响应806、808和810中的一个或多个以通过通信网络将选择的响应发送给第一用户(例如,可以显示确认提示以请求第二用户确认所述选择的建议响应即将被发送)。可替代地,第二用户可以使用消息字段812来输入发送给第一用户的文本消息。响应806、808和810可以是基于图像像素直接确定的适当响应。例如,响应806可能尚未通过其他技术确定,在其他技术中,基于诸如“湖”、“天空”和“树”之类的标签来确定建议响应,该标签是基于检测到的图像特征和图像中描绘的概念而确定的。
图9类似地示出了用户界面900,其显示接收的图像902和基于图像902使用条件语言模型确定并且在用户界面900中呈现以供第二用户选择来回复图像902的建议响应904。在这个例子中,建议响应包括建议响应906(“看起来很有趣”)、建议响应908(“whee”)和建议响应910(“有趣!”)。第二用户可以选择响应906、908和910中的一个或多个,以通过通信网络将选择的响应发送给第一用户。可替代地,第二用户可以使用消息字段912来输入发送给第一用户的文本消息。响应906、908和910可以是基于图像像素直接确定的适当响应。例如,响应906可能尚未通过其他技术确定,在其他技术中,基于诸如“人”、“男人”、“女人”“树木”的标签来确定建议响应,该标签是基于检测到的图像特征和图像中描绘的概念而为图像确定的。
图10类似地示出了用户界面1000,其显示接收的图像1002和基于图像1002使用条件语言模型确定并且在用户界面1000中呈现以供第二用户选择来回复图像1002的建议响应1004,在这个例子中,建议响应包括建议响应1006(“那些好可爱”)、建议响应1008(“我喜欢它”)和建议响应1010(“红色有吗?”)。第二用户可以选择响应1006、1008和1010中的一个或多个,以通过通信网络将选择的响应发送给第一用户。可替代地,第二用户可以使用消息字段1012来输入发送给第一用户的文本消息。响应1006、1008和1010可以是基于图像像素直接确定的适当响应。例如,响应1006可能尚未通过其他技术确定,在其他技术中,基于诸如“衣服”和“裤子”之类的标签来确定建议响应,该标签上基于检测到的图像特征和图像中描绘的概念而为图像确定的。
图11类似地示出了用户界面1100,其显示接收的图像1102和基于图像1102使用条件语言模型确定并且在用户界面1100中呈现以供第二用户选择来回复图像1102的建议响应1104,在这个例子中,建议响应包括建议响应1106(“你看起来很棒”)、建议响应1008(“她爱你!”)和建议响应1010(“幸运的家伙”)。第二用户可以选择响应1106、1108和1110中的一个或多个,以通过通信网络将选择的响应发送给第一用户。可替代地,第二用户可以使用消息字段1112来输入发送给第一用户的文本消息。响应1106、1108和1110可以是基于图像像素直接确定的适当响应。例如,响应1106可能尚未通过其他技术确定,在其他技术中,基于诸如“人”、“女人”、“男人”和“亲吻”的标签来确定建议响应,该标签是基于检测到的图像特征和图像中描绘的概念而为图像确定的。
机器人实施方式
机器人是在一个或多个计算机上实施的自动服务,用户例如经由消息应用103a/103b,主要通过文字与机器人进行交互。机器人可以由机器人提供者实施,使得机器人可以与各种消息应用的用户交互。在一些实施方式中,消息应用103a/103b的提供者还可以提供一个或多个机器人。在一些实施方式中,由消息应用103a/103b的提供者提供的机器人可以被配置为使得机器人可以被包括在其他消息应用中,其他消息应用例如由其他提供者提供。机器人可以提供优于其他模式的若干优点。例如,机器人可以允许用户尝试新服务(例如,出租车预订服务、餐馆预订服务等),而无需在客户端设备上安装应用或访问网站。此外,与需要使用网站、软件应用、诸如交互式语音应答(IVR)服务的电话呼叫、或与服务交互的其他方式相比,用户可以通过文字与机器人交互,这需要最少的学习或不需要学习。在消息服务或应用中并入机器人还可以允许用户与其他用户协作,以在消息服务内完成各种任务,例如旅行计划、购物、排程事件、获取信息等,并消除繁琐操作,诸如在各种应用(例如,出租车预订应用、餐厅预订应用、日历应用等)或网站之间切换以完成任务。
机器人可以作为计算机程序或应用(例如,软件应用)来实施,计算机程序或应用被配置为经由消息应用103a/103b与一个或多个用户(例如,用户125a-n中的任意一个)交互,以在消息应用103中提供信息或进行特定动作。作为一个示例,信息检索机器人可以在因特网上搜索信息,并在消息app内呈现最相关的搜索结果。作为另一个示例,例如,通过在消息app内能够实施购买旅行和酒店票券,在消息app内进行酒店预订,在消息app内进行租车预定等等,旅行机器人可以具有经由消息应用103进行旅行安排的能力。作为另一个示例,出租车机器人可以具有叫出租车,例如,到用户的位置(当用户125允许访问位置信息时,由出租机器人从客户端设备115获得),而无需调用或呼叫单独的出租车预订app。作为另一示例,教练/辅导机器人可以例如通过询问可能出现在考试中的问题并提供关于用户的响应是否正确的反馈来辅导用户,以在消息app内就某些主题指导用户。作为另一示例,游戏机器人可以在消息app内以用户的对立方或同一方玩游戏。作为另一示例,商业机器人可以提供来自特定商家的服务,例如,通过从商家的目录中检索产品信息并能够通过消息app来购买。作为另一示例,接口机器人可以接合远程设备或车辆,使得消息app的用户可以与远程设备或车辆聊天,从远程设备或车辆中检索信息,和/或向远程设备或车辆提供指令。
机器人的能力可以包括理解用户的意图并在其上运行。可以通过分析和理解用户的会话及其语境来理解用户的意图。机器人还可以基于随时间演变的会话来理解变化的会话语境或变化的用户情绪和/或意图。例如,如果用户A建议见面喝咖啡,但如果用户B声明他不喜欢咖啡,则机器人可以向用户B分配对于咖啡的负面情绪分数,并且可能不建议用于见面的咖啡店。
实施可以与消息应用103a/103b的用户通信的机器人可以提供许多优点。传统上,用户可以利用软件应用或网站来进行诸如支付账单、订购食物、订票等活动。这种实施方式的问题是用户需要安装或使用多个软件应用和网站来进行多项活动。例如,用户可能必须安装不同的软件应用来支付(例如,来自公用事业公司的)公用事业账单(utility bill),购买电影票(例如,来自票务服务提供商的订票应用),预定餐馆(例如,从相应的餐馆),或者可能需要访问每个活动的相应网站。这种实施方式的另一个问题是用户可能需要学习复杂的用户界面,例如使用诸如窗口、按钮、复选框、对话框等的多个用户界面元素实施的用户界面。
因此,一个或多个所描述的实施方式的优点在于,单个应用使得用户能够进行涉及与任何数量的参与方交互的活动,而无需访问单独的网站或安装和运行软件应用,具有减少客户端设备上的内存、存储器和处理资源的消耗的技术效果。所描述的实施方式的优点在于,例如,在不必学习复杂的用户界面的情况下,会话界面使得用户更容易和更快地完成这种活动,其具有减少计算资源消耗的技术效果。所描述的实施方式的另一个优点是,实施的机器人可以使各个参与实体能够以较低的成本提供用户交互,这具有减少对为了实施用户交互而部署的计算资源的需求的技术效果,例如使用一个或多个通信服务器实施的免费电话、托管在一个或多个网络服务器上的网站、托管在电子邮件服务器上的客户支持电子邮件等。所描述的特征的另一技术效果是减少通过通信网络完成用户任务所需的系统处理和传送资源的消耗的问题。
虽然本文中的某些示例描述了机器人与一个或多个用户之间的交互,但是各种类型的交互,诸如机器人和用户125之间的一对一交互、机器人与(例如,在群消息会话中的)两个或更多个用户之间的一对多交互、多个机器人和用户之间的多对一交互、以及多个机器人和多个用户之间的多对多交互是可能的。此外,在一些实施方式中,机器人还可以被配置为经由消息应用103、经由机器人之间的直接通信或者组合,与另一机器人(例如,机器人107a/107b、109a/109b、111、113等)交互。例如,餐馆预订机器人可以与特定餐馆的机器人交互以便预订桌位。
在某些实施例中,机器人可以使用会话界面来使用自然语言与用户会话交互。在某些实施例中,机器人可以使用基于模板的格式来创建与用户交互的句子,例如,响应于对餐馆地址的请求,使用诸如“餐馆R的位置是L”的模板。在某些情况下,可以使用户能够选择机器人交互格式,例如,机器人是否使用自然语言与用户交互,机器人是否使用基于模板的交互等。
在机器人使用自然语言会话交互的情况下,机器人的交互的内容和/或风格可以基于以下中的一个或多个动态地变化:使用自然语言处理所确定的会话的内容、会话中的用户的身份、以及一个或多个会话的语境(例如,关于用户的交互的历史信息、基于社交图的会话中的用户之间的联系)、外部条件(例如,天气、交通)、用户的日程、与用户相关联的相关语境等。在这些情况下,机器人的交互的内容和风格仅仅基于参与会话的用户已经对其提供同意的这些因素而变化。
作为一个示例,如果确定会话的用户使用正式语言(例如,没有或最小限度的俚语或表情符号),则机器人也可以使用正式语言在该会话内进行交互,反之亦然。作为另一示例,如果(基于当前和/或过去的会话)确定会话中的用户是表情符号的重度用户,那么机器人也可以使用一个或多个表情符号与该用户进行交互。作为另一示例,如果确定会话中的两个用户在社交图中远程连接(例如,在他们之间具有两个或更多个中间节点,表示他们是朋友的朋友的朋友),则机器人可以在该会话中使用更正式的语言。在参与会话的用户未同意机器人利用诸如用户的社交图、日程表、位置或与用户相关联的其他语境的因素的情况下,机器人的交互的内容和风格可以是默认风格,例如不需要使用这些因素的中性风格。
此外,在一些实施方式中,一个或多个机器人可以包括与用户进行来回会话的功能。例如,如果用户请求关于电影的信息,例如通过输入“@moviebot你能推荐电影吗?”,机器人“moviebot”可能会用“你是否喜欢喜剧?”来进行响应。用户可能随后响应,例如,“不”,而机器人可以对此响应“好的。名为《太空与星星》的科幻电影获得了很好的评价。要我给你订票吗?”用户可能随后表示“好的,我可以在下午6点之后去。请核查史蒂夫是否可以一起”。一旦用户同意机器人访问有关其联系人的信息、并且朋友史蒂夫同意接收来自机器人的消息,机器人就可以向用户的朋友史蒂夫发送消息,并进行进一步的动作以预订适当时间的电影票。
在某些实施例中,可以使参与会话的用户能够调用特定机器人或执行特定任务的机器人,例如通过键入机器人名称或机器人句柄(例如,出租车、@taxbot、@movies等),通过使用语音命令(例如,“调用银行机器人”等),通过激活用户界面元素(例如,用机器人名称或句柄标记的按钮或其他元素)等。一旦调用机器人,用户125就可以通过消息应用103a/103b以类似于向其他用户125发送消息的方式向机器人发送消息。例如,为了订购出租车,用户可以键入“@taxibot给我一辆出租车”;为了预订酒店,用户可以键入“@hotelbot在我附近的中餐馆预订4人餐桌”。
在某些实施例中,机器人可以在消息会话内自动地建议信息或动作,而不被特别调用。也就是说,用户可能不需要专门调用机器人。在这些实施例中,机器人可以在时间连续的基础上或在离散的时间点依据会话的分析和理解。会话的分析可以用于理解特定的用户需求并且识别何时应该由机器人建议帮助。作为一个示例,如果(例如,基于用户向另一个用户询问问题,基于多个用户表示他们没有一些信息)确定用户需要信息,则机器人可以搜索一些信息并建议答案。作为另一示例,如果确定多个用户表示有兴趣吃中餐,则机器人可以自动建议用户附近的一组中餐馆,包括选项信息,选项信息例如是位置、评级和餐馆的网站链接。
在某些实施例中,比起自动调用机器人或等待用户明确地调用机器人,可以在消息会话中对一个或多个用户进行自动建议以调用一个或多个机器人。在这些实施例中,可以在数据连续的基础上或在离散的时间点分析会话,并且会话的分析可以用于理解特定的用户需求,并且识别何时应该在会话内建议机器人。
在机器人可以在没有被特别调用的情况下在消息会话内自动地建议信息或动作的实施例中,例如,如果参与消息会话的一个或多个用户不同意机器人对用户的会话进行分析,则禁用这样的功能。此外,还可以基于用户输入临时禁用这种功能。例如,当用户指示会话是私密的时,会话语境的分析被暂停,直到用户提供激活机器人的输入。此外,可以向会话中的参与者提供分析功能被禁用的指示,例如,利用用户界面元素来提供。
在各种实施方式中,机器人可以以各种配置来实施。例如,如图1所示,机器人105在客户端设备115a上被实施。在该示例中,机器人可以是客户端设备115a本地的软件应用中的模块。例如,如果用户在客户端设备115a上安装了打车应用,则可以将机器人功能作为模块并入打车应用中。在该示例中,用户可以例如通过发送消息“@taxibot给我打车”来调用出租车机器人。消息应用103b可以自动地使得打车应用中的机器人模块启动。以这种方式,机器人可以在客户端设备上本地实施,使得用户可以通过消息应用103与机器人加入会话。
在图1中所示的另一示例中,机器人107a被示为在客户端设备115a上实施,机器人107b被示为在消息服务器101上实施。在该示例中,机器人可以作为例如客户端-服务器计算机程序来实施,带有机器人107a(服务器模块)和机器人107b(客户端模块)中的每一个机器人所提供的部分机器人功能。例如,如果机器人是具有句柄@calendar的安排机器人,则用户115a可以通过键入“@calendar提醒我晚上洗衣服”来安排提醒,这可以由机器人107b(客户端模块)处理。继续该示例,如果用户115a告诉机器人“检查吉姆是否有空在4点见面”,则机器人107a(服务器模块)可以联系用户吉姆(或吉姆的安排机器人)来交换消息,并且向用户115a提供响应。
在另一示例中,机器人109a(服务器模块)在服务器135上实施,并且机器人109b(客户端模块)在客户端设备115上实施。在该示例中,机器人功能由在与消息服务器101不同的服务器135和客户端设备115上实施的模块提供。在一些实施方式中,机器人可以实施为例如具有跨多个客户端设备和服务器(例如,客户端设备115、服务器135、消息服务器101等)而分布的模块的分布式应用。在一些实施方式中,机器人可以作为服务器应用来实施,例如,在消息服务器101上实施的机器人111和在服务器135上实施的机器人113。
诸如仅客户端、仅服务器、客户端-服务器、分布式等的不同实施方式可以提供不同的优势。例如,仅客户端的实施方式允许例如在没有网络访问的情况下本地提供机器人功能,这在某些环境下可能是有利的,例如,当用户在网络覆盖区域之外,或在具有低的或有限的网络带宽的任意区域中时。诸如仅服务器、客户端-服务器或分布式配置的包括一个或多个服务器的实施方式可以允许某些功能,例如,可能无法在客户端设备本地提供的金融交易、票务预订等。
虽然图1示出了与消息应用103不同的机器人,但是在一些实施方式中,可以将一个或多个机器人作为消息应用103的一部分来实施。在机器人作为消息应用103的一部分来实施的实施方式中,用户许可在实施机器人之前获取。例如,在机器人作为消息应用103a/103b的一部分来实施的情况下,消息应用103a/103b可以提供能够进行某些活动的机器人,例如,翻译传入和传出消息的翻译机器人、在用户的日历上安排事件的安排机器人等。在本示例中,只有依赖于用户的特定许可才能激活翻译机器人。如果用户未提供同意,则消息应用103a/103b内的机器人不实施(例如,禁用、移除等)。如果用户提供同意,则机器人或消息应用103a/103b可以通过消息应用103a/103b有限地使用在用户之间交换的消息,以提供特定功能,例如翻译、安排等。
在一些实施方式中,与消息应用103a/103b和用户125的提供者不同的第三方可以提供用于特定目的的机器人,该机器人可以通过消息应用103a/103b与用户125通信。例如,出租车服务提供者可以提供出租车机器人,票务服务可以提供能够预订活动门票的机器人,银行机器人可以提供进行金融交易活动的能力等。
在通过消息应用103实施机器人时,仅在特定用户授权时才允许机器人与用户通信。例如,如果用户调用机器人,则机器人可以例如基于用户调用机器人的动作来回答。在另一个示例中,用户可以指示可以联系用户的特定机器人或特定类型的机器人。例如,用户可以允许旅行机器人与她通信,但不提供购物机器人的授权。在该示例中,消息应用103a/103b可以允许旅行机器人与用户交换消息,但是过滤或拒绝来自购物机器人的消息。
此外,为了提供一些功能(例如,订购出租车、进行航班预订、联系朋友等),机器人可以请求用户允许机器人访问用户数据,例如位置、支付信息、联系人列表等。在这种情况下,向用户展示允许或拒绝机器人访问的选项。如果用户拒绝访问,则机器人可以通过消息进行响应,例如“抱歉,我无法为您预订出租车。”此外,用户可以在有限的基础上提供对信息的访问,例如,用户可以允许出租车机器人仅在特定的机器人调用时访问当前位置,但其他情况下不允许。在不同的实施方式中,用户可以控制机器人可以访问的信息的类型、数量和粒度,并且具有在任何时间(例如,通过用户界面)改变这种许可的能力。在一些实施方式中,在机器人可以访问这些数据之前,可以处理用户数据,例如,从而移除个人可识别信息,将信息限制到特定数据元素等。此外,用户可以通过消息应用103a/103b和一个或多个机器人来控制用户数据的使用。例如,用户可以指定提供进行金融交易的能力的机器人在完成交易之前需要用户授权,例如,机器人可以发送消息“电影《太空与星星》的票每张12美元。我要继续预订吗?”或“这件衬衫的最优价格是125美元,包含运费。我要从尾号1234的信用卡中扣款吗?”等等。
在一些实施方式中,由上述系统(例如,针对图2-11描述的系统)生成的一个或多个建议响应可以用于调用或命令机器人的消息,例如,请求机器人获取信息。例如,系统可以确定所接收的图像是否包括将由机器人提供的信息和/或一个或多个功能辅助的内容。在一些示例中,会话中的第一用户可以向第二用户发送文本消息,说“猜猜在哪里?”然后第一用户将图像发送到第二用户的设备。系统可以确定包括词“猜猜”的短语指示建议响应可能是找出与图像内容相关的信息的请求。(其他词也可以表示这样的请求,例如“哪里”,“什么”等。)作为响应,系统可以生成建议响应,该建议响应是对可以提供相关信息的适当机器人的请求或命令。例如,建议响应可以是对地图机器人的请求,以提供图像中描绘的位置的名称(例如,机器人可以使用万维网搜索、地图和地图集、接收到的图像的地理位置元数据来确定这样的信息的位置等)。在一些实施方式中,可以使用训练消息数据(如果已经获得用户同意)来为在图像中检测到的特定类型的图像内容(例如,如果已经获得用户同意,使用一个或多个图像检测或识别技术)确定适当类型的机器人,和/或基于规则的语法可以根据图像内容中检测到的概念和/或图像内容的类型,确定在建议响应中调用哪些类型的机器人。
在一些实施方式中,如果为用户显示机器人相关的建议响应作为可能的响应并且用户选择了该建议,则可以将机器人添加到消息会话和消息接口,例如,用机器人名称表示。机器人可以在会话中确定并输出所请求的信息,例如,作为给消息用户界面中的第一和第二用户两者的消息。
在另一示例中,第一用户发送描绘文本的图像,该文本对第二用户来说是外语。系统可以确定适当的建议响应是请求语言机器人翻译图像中的文本并在消息会话界面中输出翻译的文本。
在另一示例中,第一用户发送描绘食物项的图像。系统可以确定适当的建议响应是请求机器人检查一个或多个可访问的(例如,在因特网上的)数据源以确定通常或具体包括在食物项中的成分和/或卡路里,并在消息会话界面中输出该信息。
本文所述的实施方式一般涉及消息应用。某些实施方式可以自动地(例如,无需用户干预地)分析一个或多个消息会话和/或用户信息的图像内容,以自动地在消息应用中向用户提供建议响应。在某些示例中,用户可以选择自动建议响应以在消息应用中进行响应,和/或可以代表用户自动发送自动建议响应作为一个或多个适当的响应。在某些其他示例中,建议可以自动地将特定的非消息传递功能合并到消息应用中。
虽然前面的描述包括响应于接收图像而提供建议响应的技术,但是可以响应于在会话中接收的任何类型的媒体内容来提供建议响应。例如,这样的内容可以包括贴纸(例如,在聊天应用中)、动画图像(例如,动态图片、GIF图像等)和视频。此外,虽然前面的描述将建议响应描述为文本响应,但是也可以建议其他类型的响应,例如,基于对接收的图像的分析。例如,其他响应可以包括建议图像,建议贴纸、建议动画图像(例如,动态图片,GIF图像等)和建议视频中的一个或多个。为了提供这些建议,建议模块304可以执行例如在所接收的项目中识别的概念(例如,文本、图像、视频、贴纸、动画图像等)与不同类型的响应中的概念的比较,并选择合适的响应,如上面参考包括文本的建议响应所述。在用户提供同意的不同实施方式中,可以基于语境选择或优先化响应的类型,例如,可以选择贴纸作为响应于传入贴纸的建议响应,可以选择视频作为响应于传入图像的建议响应等。
某些实施方式使得能够与人类用户和/或聊天机器人进行消息传递。在某些实施方式中,可以基于聊天机器人是否参与消息会话来定制自动消息建议。在一些示例中,如果在消息会话中不存在聊天机器人,则可以提供第一组自动消息建议,而如果在消息会话中存在聊天机器人,则可以提供第二组自动建议消息。第一组和第二组响应至少部分不同。例如,这些实施方式可以采用聊天机器人遵循的会话规则,并基于规则向用户建议消息。这可以减轻用户在以语言与聊天机器人进行交流时可能遇到的挑战并且以聊天机器人易于理解的格式。
一些实施方式可以包括基于与用户的位置相关的区域、市场和国家中的至少一个中的其他消息来确定一个或多个趋势响应(例如,包括由许多不同用户发送的流行消息内容的消息响应)。一个或多个确定的建议响应可以包括一个或多个趋势响应。在一些实施方式中,例如,地理位置、假日或事件等的用户语境可用于生成和确定一个或多个建议响应的呈现。
在一些实施方式中,确定一个或多个建议响应可以基于使用机器学习来为用户开发个性化模型。确定建议响应可以基于用户的偏好和/或交流中的用户的先前动作(如果已经获得用户同意使用这样的动作和数据)。例如,用户偏好可以包括指示可以包括的特定词的白名单和/或指示不能包括在消息建议中的特定词的黑名单。如果已经获得用户同意,则可以基于用户在之前的场合使用的标点符号使用、表情符号使用或其他内容中的一个或多个来生成或修改消息建议。
用于提供建议响应的模型,例如,如上所述的条件语言模型,可以由客户端设备115和/或诸如服务器101和/或响应生成器150的服务器实施。在一些实施方式中,会话可以被加密,使得只有客户端设备的会话中的参与者才能访问会话内容。在这些实施方式中,可使用由相应的客户端设备实施的模型提供建议响应,并且不使用由服务器实施的模型。也可以使用由客户端设备实施的模型,例如,当用户不同意使用由服务器实施的模型时。在一些实施方式中,客户端实施的模型可以基于或衍生自服务器实施的模型。在一些实施方式中,可以使用服务器模型并且可以不使用客户端模型,例如,当客户端设备缺乏实施客户端模型的能力时。在一些实施方式中,可以使用客户端和服务器模型的组合。
虽然本文档中描述的示例利用英语说明的概念,但是可以以任何语言提供建议,例如,为客户端设备115配置的语言、区域设置或其他地理区,基于用户偏好选择的语言等。在一些实施方式中,其中用户提供对会话的语境的分析的同意,可以检测涉及用户的各种会话(例如,在最近的消息中)中使用的语言并且可以以该语言提供消息建议。
在一些实施方式中,可以根据本文描述的一个或多个特征来存储、训练和利用多个条件语言模型。在一些示例中,每个条件语言模型都可以被训练并与特定人类使用的语言的词和响应一起使用。例如,第一条件语言模型可以专门用英语响应进行训练,第二条件语言模型可以专门用印度语响应进行训练。在一些实施方式中,可以基于为当前用户消息会话确定的语言在运行期间选择多个可用条件语言模型中的一个。例如,如果已经获得用户同意,可以(例如,从消息应用数据库199)检索用户当前会话中的先前消息(例如,在当前消息之前的预定时间量内的消息,或者在发送的最后消息的预定数量内的消息),并且系统可以检测会话的语言,例如,基于所使用的词语和从可访问存储器访问语言数据。如果检测到的语言与可用的条件语言模型的语言匹配,则选择匹配条件语言模型用于以编程方式生成对图像的一个或多个建议响应,如本文所述。
在一些实施方式中,多个条件语言模型可以用于生成对特定图像的响应。例如,可以将接收到的图像输入到第一条件语言模型和第二条件语言模型,并且在得到的建议响应集合中使用来自两个模型的响应。在一些实施方式中,单个条件语言模型可以被训练并用于提供多种语言的响应,例如,在条件语言模型的训练中使用以多种语言提供的响应。
图12是可用于实施本文描述的一个或多个特征的示例设备1200的框图。在一个示例中,设备1200可以用于实施客户端设备,例如,图1中所示的客户端设备115中的任何一个。或者,设备1200可以实施服务器设备,例如,图1中的消息服务器101,设备1200可以是如上所述的任何合适的计算机系统、服务器或其他电子或硬件设备。
本文描述的一个或多个方法可以在能够在任何类型的计算设备上运行的独立程序、万维网浏览器上运行的程序、在移动计算设备(例如,手机、智能手机、平板电脑、可穿戴设备(手表、臂章、珠宝、头饰、虚拟现实护目镜或眼镜、增强现实护目镜或眼镜等)、膝上型电脑等)上运行的移动应用(“app”)中运行。在一个示例中,可以使用客户端/服务器架构,例如,移动计算设备(作为客户端设备)将用户输入数据发送到服务器设备并且从服务器接收用于输出(例如,用于显示)的最终输出数据。在另一示例中,所有计算可以在移动计算设备上的移动app(和/或其他app)内执行。在另一示例中,计算可以在移动计算设备和一个或多个服务器设备之间分开。
在一些实施方式中,设备1200包括处理器1202、内存1204和输入/输出(I/O)接口1206。处理器1202可以是一个或多个处理器和/或处理电路,以执行程序代码和控制设备1200的基本操作。“处理器”包括处理数据、信号或其他信息的任何合适的硬件和/或软件系统、机制或组件。处理器可以包括具有通用中央处理单元(CPU)、多个处理单元、用于实施功能的专用电路的系统或其他系统。处理不必限于特定的地理位置,或具有时间限制。例如,处理器可以“实时”、“离线”,以“批处理模式”等执行其功能。部分处理可以在不同的时间和不同的位置,通过不同的(或相同的)处理系统执行。计算机可以是与内存通信的任何处理器。
内存1204通常在设备1200中提供以供处理器1202访问,并且可以是任何合适的处理器可读存储介质,例如随机存取存储器(RAM)、只读存储器(ROM)、带电可擦只读存储器(EEPROM)、闪存等,适用于存储由处理器执行的指令,并且与处理器1202分开设置和/或与处理器1202集成。内存1204可以存储由处理器1202在服务器设备1200上操作的软件,包括操作系统1208、消息应用1216和其他应用1214,例如数据显示引擎、网络托管引擎、图像显示引擎、通知引擎、社交网络引擎等。在一些实施方式中,消息应用1216可以包括指令,该指令使处理器1202能够执行本文描述的功能,例如,图2中的一些或所有方法。例如,消息应用1216可以提供如本文所述的消息建议。在一些实施方式中,消息应用1216可以包括一个或多个模块,例如特征向量生成器1216A、响应生成器1216B以及用户交互模块1216C,和/或这些模块可以在与设备1200通信的其他应用或设备中实施。例如,应用中的一个或多个可以响应于用户输入提供显示的用户界面以显示可选择的选项或控件,以及基于所选择的选项的数据。还可以包括或替代地包括其他应用或引擎1214,例如,图像编辑应用、媒体显示应用、通信应用、万维网托管引擎或应用等。这里公开的一个或多个方法可以在若干环境和平台中操作,例如,作为可以在任何类型的计算设备上运行的独立计算机程序、作为具有网页的万维网应用、作为移动应用(“app”)在移动计算设备上运行等。
内存1204中的任何软件可以替代地存储在任何其他合适的存储位置或计算机可读介质上。此外,内存1204(和/或其他连接的存储设备)可以在数据库912中存储一个或多个消息、一个或多个分类法,电子百科全书、词典、辞典、消息数据、语法、用户偏好和/或在本文描述的特征中使用的其他指令和数据。内存1204和任何其他类型的存储(磁盘、光盘、磁带或其他有形介质)可以被认为是“存储器”或“存储设备”。
I/O接口1206可以提供使设备1200与其他系统和设备连接的功能。接口设备可以作为设备1200的一部分被包括在内,或者可以与设备1200分开并进行通信。例如,网络通信设备、存储设备(例如,内存和/或数据库106)和输入/输出设备可以通过I/O接口1206进行通信。在一些实施方式中,I/O接口1206可以连接到接口设备,例如输入设备(键盘、指示设备、触摸屏、麦克风、相机、扫描仪、传感器等)和/或输出设备(显示设备、扬声器设备、打印机、电机等)。
能够连接到I/O接口1206的接口设备的一些示例可以包括显示设备1220,显示设备1220可以用于显示如本文所描述的输出应用的内容,例如图像、视频和/或用户界面。显示设备1220可以通过本地连接(例如,显示总线)和/或通过网络连接而被连接到设备1200,并且可以是任何合适的显示设备。显示设备1220可以包括任何合适的显示设备,例如LCD、LED、或等离子显示屏、CRT、电视、监视器、触摸屏、3D显示屏或其他视觉显示设备。例如,显示设备1220可以是在移动设备上提供的平面显示屏,在护目镜设备中提供的多个显示屏,或者用于计算机设备的监视屏。
I/O接口1206可以与其他输入和输出设备接合。一些示例包括一个或多个可以捕获图像帧的相机。一些实施方式可以提供用于捕获声音(例如,作为捕获的图像的一部分、语音命令等)的麦克风、用于输出声音的音频扬声器设备或其他输入和输出设备。
为了便于说明,图12为处理器1202、内存1204、I/O接口1206中的每一个示出了一个框,并示出了软件框1208、1214和1216。这些框可能表示一个或多个处理器或处理电路、操作系统、内存、I/O接口、应用和/或软件模块。在其他实施方式中,设备1200可以不具有所示的所有组件和/或可以具有包括其他类型的元件的其他元件来代替或补充本文所示的那些元件。虽然在本文中描述的一些实施方式中,一些组件被描述为执行所描述的框和操作,但是环境100的任何合适的组件或组件的组合、设备1200、类似系统或与这种系统相关联的任何合适的处理器或多个处理器也可以执行描述的框和操作。
本文描述的方法可以通过可以在计算机上执行的计算机程序指令或代码来实施。例如,代码可以通过一个或多个数字处理器(例如,微处理器或其他处理电路)来实施,并且可以存储在包括非暂时性计算机可读介质(例如,存储介质)的计算机程序产品上,非暂时性计算机可读介质例如磁、光、电磁或半导体存储介质,包括半导体或固态内存、磁带、可移动计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、闪存、刚性磁盘、光盘、一个固态内存驱动等。程序指令也可以包含在电子信号中,并作为电子信号提供,例如以来自服务器的软件即服务(SaaS)的形式(例如,分布式系统和/或云计算系统)。或者,一种或多种方法可以以硬件(逻辑门等)或硬件和软件的组合来实施。示例硬件可以是可编程处理器(例如,现场可编程门阵列(FPGA)、复杂可编程逻辑器件等)、通用处理器、图形处理器、专用集成电路(ASIC)等等。一个或多个方法可以作为在系统上运行的应用的一部分或组件来被执行,或者作为与其他应用和操作系统一起运行的应用或软件来被执行。
尽管已经针对特定实施方式描述了说明书,但是这些特定实施方式仅仅是说明性的而非限制性的。示例中说明的概念可以应用于其他示例和实施方式。
本文讨论的某些实施方式可能收集或使用关于用户的个人信息(例如,用户数据、关于用户的社交网络的信息、用户的位置和时间、用户的生物信息、用户的活动和人口统计信息)的情况下,用户被提供有一个或多个机会来控制个人信息是否被收集,个人信息是否被存储,个人信息是否被使用,以及如何收集、存储和使用关于用户的信息。也就是说,这里讨论的系统和方法专门在从相关用户接收到明确的授权时才收集、存储和/或使用用户个人信息。另外,某些数据可以在存储或使用之前以一种或多种方式处理,以便移除个人可识别信息。作为一个示例,可以处理用户的身份,以便不能确定个人可识别信息。作为另一示例,用户的地理位置可以推广到更大的区域,以便不能确定用户的特定位置。
注意,本公开中描述的功能框、操作、特征、方法、设备和系统可以被集成或分成本领域技术人员将会知道的系统、设备和功能框的不同组合。可以使用任何合适的编程语言和编程技术来实施特定实施方式的例程。可以采用不同的编程技术,例如面向对象或程序的。例程可以在单个处理设备或多个处理器上运行。尽管可以以特定顺序呈现步骤、操作或计算,但是可以在不同的特定实施方式中改变顺序。在一些实施方式中,可以同时执行本说明书中顺序示出的多个步骤或操作。

Claims (22)

1.一种在消息应用中自动建议内容的计算机实施的方法,其特征在于,所述方法包括:
检测由第一用户在第一消息内发布的图像;
以编程方式分析所述图像以确定表示所述图像的特征向量;
基于所述特征向量,以编程方式生成对所述第一消息的一个或多个建议响应,所述一个或多个建议响应中的每个建议响应是对所述第一消息的会话回复,其中以编程方式生成所述一个或多个建议响应包括:
使用以对先前图像的先前响应而训练的模型来确定与所述特征向量的词序列相关联的概率;和
基于与所述词序列相关联的所述概率,选择所述词序列中的一个或多个词序列,其中基于所选择的一个或多个词序列来确定所述一个或多个建议响应;和
使所述一个或多个建议响应在所述消息应用中呈现为对第二用户的一个或多个建议。
2.如权利要求1所述的方法,其特征在于,所述特征向量是所述图像的视觉像素内容的浓缩数字表示。
3.如权利要求1或2所述的方法,其特征在于,提供所述一个或多个建议响应包括传输命令以在所述消息应用中呈现所述一个或多个建议响应。
4.如前述权利要求中的任一项所述的方法,其特征在于,所述概率包括所存储的词汇表中的每个词成为所述一个或多个词序列之一中的下一个词的概率,其中,选择所述一个或多个词序列包括选择与确定的概率中的一个或多个最高概率相关联的所述一个或多个词序列中的一些词序列。
5.如前述权利要求中的任一项所述的方法,其特征在于,所述模型是条件语言模型,并且其中,确定与所述词序列相关联的所述概率包括将所述特征向量输入到所述条件语言模型。
6.如权利要求5所述的方法,其特征在于,所述条件语言模型使用长短期记忆(LSTM)网络。
7.如权利要求5或6所述的方法,其特征在于,所述条件语言模型包括训练的神经网络。
8.如前述权利要求中的任一项所述的方法,其特征在于,选择所述一个或多个词序列包括使用集束搜索技术。
9.如前述权利要求中任一项所述的方法,其特征在于,所述一个或多个词序列中的每一个词序列被所述模型用作词嵌入,所述词嵌入对所述词序列和所述特征向量中包括的词进行编码。
10.如前述权利要求中的任一项所述的方法,其特征在于,所述一个或多个词序列是根据从所述先前响应确定的词汇表中的多个词来确定的,其中,确定与所述词序列相关联的概率包括对于每个词序列迭代地确定所述词汇表中的每个词成为所述词序列中的下一个词的概率。
11.如前述权利要求中的任一项所述的方法,其特征在于,所述先前响应是从对所述先前图像的较大响应集合中选择的,其中所述先前响应比所述较大响应集合的其他先前响应更特定于所述先前图像的特定内容。
12.根据前述权利要求中的任一项所述的方法,其特征在于,所述模型是条件语言模型,并且其中,选择所述一个或多个词序列包括迭代地:
将所述特征向量和先前词序列馈送到所述条件语言模型,以基于所述特征向量和所述先前词序列来确定新词序列集合和与所述新词序列相关联的所述概率,其中一个或多个所述新词序列相对于所述先前词序列至少有一个附加词;和
基于与所述新词序列相关联的所述概率来选择所述新词序列集合的子集,并选择所选子集中的一个词序列作为用于下一次迭代的先前词序列。
13.如前述权利要求中的任一项所述的方法,其特征在于,还包括:
一旦所述第二用户选择所述建议响应,发布所述建议响应作为对所述第一消息的消息响应。
14.如前述权利要求中的任一项所述的方法,其特征在于,还包括:
检查所述一个或多个词序列中的每一个词序列是否存在于词序列的白名单中,
其中,所选择的一个或多个词序列存在于所述白名单上。
15.根据前述权利要求中的任一项所述的方法,其特征在于,所述选择一个或多个词序列包括选择至少一个词序列,所述至少一个词序列基于与所述第二用户提供的先前消息响应的相似性而被加权。
16.如权利要求5、6或7所述的方法,其特征在于,还包括:
提供所述条件语言模型作为特定于第一语言的第一条件语言模型;
提供特定于第二语言的第二条件语言模型;
确定接收到所述第一消息的消息会话的语言是所述第一语言;和
选择所述第一条件语言模型,用于以编程方式生成一个或多个建议响应。
17.一种在消息应用中自动建议的内容的系统,其特征在于,包括:
存储器;和
至少一个处理器,被配置为访问所述存储器并被配置为进行操作,所述操作包括:
检测由第一用户在第一消息内发布的图像;
以编程方式分析所述图像以确定表示所述图像的特征向量;
基于所述特征向量,以编程方式生成对所述第一消息的一个或多个建议响应,所述一个或多个建议响应中的每个建议响应是对所述第一消息的会话回复并且具有以词序列排列的一个或多个词,
其中,以编程方式生成所述一个或多个建议响应包括,对于所述一个或多个建议响应中的每一个建议响应,基于所述特征向量并基于所述词序列中的一个或多个先前词,迭代地确定以所述词序列排列的所述一个或多个词中的每个词;和
使所述一个或多个建议响应在所述消息应用中呈现为对第二用户的一个或多个建议。
18.如权利要求17所述的系统,其特征在于,以编程方式生成所述一个或多个建议响应的操作包括,基于包括对先前图像的先前响应的数据来确定与所述一个或多个词序列相关联的概率。
19.如权利要求18所述的系统,其特征在于,以编程方式生成所述一个或多个建议响应的操作包括,基于与所述一个或多个词序列相关联的所述概率来选择所述一个或多个建议响应。
20.如权利要求18或19所述的系统,其特征在于,确定所述词序列的所述概率的操作包括,使用条件语言模型,使用包括对先前图像的先前响应的数据来训练所述条件语言模型,其中所述条件语言模型由作为输入接收的所述特征向量决定,并使用长短期记忆(LSTM)网络。
21.一种非暂时性计算机可读介质,其特征在于,其上存储有软件指令,当由处理器执行时,所述软件指令使所述处理器通过进行包括操作来自动提供建议内容,所述操作包括:
接收图像;
以编程方式分析所述图像以确定表示所述图像的特征向量;
基于所述特征向量,以编程方式生成对所述图像的一个或多个建议响应,所述一个或多个建议响应中的每个建议响应是对所述图像的会话回复并且具有以词序列排列的一个或多个词,
其中,以编程方式生成所述一个或多个建议响应包括,对于所述一个或多个建议响应中的每一个建议响应,基于所述特征向量和所述词序列中的一个或多个先前词,迭代地确定以所述词序列排列的所述一个或多个词的每个词;和
输出所述一个或多个建议响应以作为对用户的一个或多个建议呈现在应用中。
22.如权利要求21所述的计算机可读介质,其特征在于,所述建议响应在消息应用中呈现,并且其中以编程方式生成所述一个或多个建议响应的操作包括:
使用条件语言模型确定与所述一个或多个建议响应相关联的概率,基于包括对先前图像的先前响应的数据来训练所述条件语言模型,并且由作为输入接收的所述特征向量来决定所述条件语言模型,其中所述条件语言模型使用长短期记忆(LSTM)网络;和
基于与所述一个或多个建议响应相关联的所述概率来选择所述一个或多个建议响应。
CN202311086539.9A 2017-01-25 2017-10-17 使用语言模型对消息中接收到的图像的自动建议响应 Pending CN117149970A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/415,506 US10146768B2 (en) 2017-01-25 2017-01-25 Automatic suggested responses to images received in messages using language model
US15/415,506 2017-01-25
CN201780066316.2A CN110178132B (zh) 2017-01-25 2017-10-17 在消息应用中自动建议内容的方法和系统
PCT/US2017/057044 WO2018140099A1 (en) 2017-01-25 2017-10-17 Automatic suggested responses to images received in messages using language model

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201780066316.2A Division CN110178132B (zh) 2017-01-25 2017-10-17 在消息应用中自动建议内容的方法和系统

Publications (1)

Publication Number Publication Date
CN117149970A true CN117149970A (zh) 2023-12-01

Family

ID=60268457

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202311086539.9A Pending CN117149970A (zh) 2017-01-25 2017-10-17 使用语言模型对消息中接收到的图像的自动建议响应
CN201780066316.2A Active CN110178132B (zh) 2017-01-25 2017-10-17 在消息应用中自动建议内容的方法和系统

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN201780066316.2A Active CN110178132B (zh) 2017-01-25 2017-10-17 在消息应用中自动建议内容的方法和系统

Country Status (6)

Country Link
US (1) US10146768B2 (zh)
EP (1) EP3516537A1 (zh)
JP (1) JP6625789B2 (zh)
KR (1) KR102050334B1 (zh)
CN (2) CN117149970A (zh)
WO (1) WO2018140099A1 (zh)

Families Citing this family (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
US8676904B2 (en) 2008-10-02 2014-03-18 Apple Inc. Electronic devices with voice command and contextual data processing capabilities
US10255566B2 (en) 2011-06-03 2019-04-09 Apple Inc. Generating and processing task items that represent tasks to perform
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
EP4138075A1 (en) 2013-02-07 2023-02-22 Apple Inc. Voice trigger for a digital assistant
US10652394B2 (en) 2013-03-14 2020-05-12 Apple Inc. System and method for processing voicemail
US10748529B1 (en) 2013-03-15 2020-08-18 Apple Inc. Voice activated device for use with a voice-based digital assistant
US10176167B2 (en) 2013-06-09 2019-01-08 Apple Inc. System and method for inferring user intent from speech inputs
US10791216B2 (en) 2013-08-06 2020-09-29 Apple Inc. Auto-activating smart responses based on activities from remote devices
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9715875B2 (en) 2014-05-30 2017-07-25 Apple Inc. Reducing the need for manual start/end-pointing and trigger phrases
US9966065B2 (en) 2014-05-30 2018-05-08 Apple Inc. Multi-command single utterance input method
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US9886953B2 (en) 2015-03-08 2018-02-06 Apple Inc. Virtual assistant activation
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10200824B2 (en) 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US20160378747A1 (en) 2015-06-29 2016-12-29 Apple Inc. Virtual assistant for media playback
US10740384B2 (en) 2015-09-08 2020-08-11 Apple Inc. Intelligent automated assistant for media search and playback
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10331312B2 (en) 2015-09-08 2019-06-25 Apple Inc. Intelligent automated assistant in a media environment
US10671428B2 (en) 2015-09-08 2020-06-02 Apple Inc. Distributed personal assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10956666B2 (en) 2015-11-09 2021-03-23 Apple Inc. Unconventional virtual assistant interactions
CN108781175B (zh) 2015-12-21 2021-09-21 谷歌有限责任公司 用于消息交换题绪的自动建议的方法、介质及系统
EP3395019B1 (en) 2015-12-21 2022-03-30 Google LLC Automatic suggestions and other content for messaging applications
US10223066B2 (en) 2015-12-23 2019-03-05 Apple Inc. Proactive assistance based on dialog communication between devices
US11769193B2 (en) * 2016-02-11 2023-09-26 Ebay Inc. System and method for detecting visually similar items
US10586535B2 (en) 2016-06-10 2020-03-10 Apple Inc. Intelligent digital assistant in a multi-tasking environment
DK179415B1 (en) 2016-06-11 2018-06-14 Apple Inc Intelligent device arbitration and control
DK201670540A1 (en) 2016-06-11 2018-01-08 Apple Inc Application integration with a digital assistant
US10387461B2 (en) 2016-08-16 2019-08-20 Google Llc Techniques for suggesting electronic messages based on user activity and other context
CN110268423A (zh) 2016-08-19 2019-09-20 莫维迪乌斯有限公司 用于深度学习模型的分布式训练的系统和方法
US10015124B2 (en) * 2016-09-20 2018-07-03 Google Llc Automatic response suggestions based on images received in messaging applications
WO2018057536A1 (en) 2016-09-20 2018-03-29 Google Llc Bot requesting permission for accessing data
US10547574B2 (en) 2016-09-20 2020-01-28 Google Llc Suggested responses based on message stickers
US10416846B2 (en) 2016-11-12 2019-09-17 Google Llc Determining graphical element(s) for inclusion in an electronic communication
CN108075959B (zh) * 2016-11-14 2021-03-12 腾讯科技(深圳)有限公司 一种会话消息处理方法和装置
US10608967B2 (en) * 2017-01-10 2020-03-31 International Business Machines Corporation Ensuring that all users of a group message receive a response to the group message
TWI754694B (zh) * 2017-03-21 2022-02-11 香港商阿里巴巴集團服務有限公司 通訊方法及裝置
US10581765B2 (en) * 2017-04-03 2020-03-03 Microsoft Technology Licensing, Llc Conversation bot discovery and response fusion
US10333868B2 (en) * 2017-04-14 2019-06-25 Facebook, Inc. Techniques to automate bot creation for web pages
US10491548B2 (en) * 2017-04-17 2019-11-26 Facebook, Inc. Techniques to configure bot flow
US11003839B1 (en) 2017-04-28 2021-05-11 I.Q. Joe, Llc Smart interface with facilitated input and mistake recovery
US10726832B2 (en) 2017-05-11 2020-07-28 Apple Inc. Maintaining privacy of personal information
DK180048B1 (en) 2017-05-11 2020-02-04 Apple Inc. MAINTAINING THE DATA PROTECTION OF PERSONAL INFORMATION
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
DK179745B1 (en) 2017-05-12 2019-05-01 Apple Inc. SYNCHRONIZATION AND TASK DELEGATION OF A DIGITAL ASSISTANT
DK201770411A1 (en) 2017-05-15 2018-12-20 Apple Inc. MULTI-MODAL INTERFACES
US10303715B2 (en) 2017-05-16 2019-05-28 Apple Inc. Intelligent automated assistant for media exploration
US20180336892A1 (en) 2017-05-16 2018-11-22 Apple Inc. Detecting a trigger of a digital assistant
WO2018212822A1 (en) 2017-05-16 2018-11-22 Google Inc. Suggested actions for images
US10404636B2 (en) 2017-06-15 2019-09-03 Google Llc Embedded programs and interfaces for chat conversations
US10348658B2 (en) 2017-06-15 2019-07-09 Google Llc Suggested items for use with embedded applications in chat conversations
US11121991B2 (en) * 2017-07-03 2021-09-14 Mycelebs Co., Ltd. User terminal and search server providing a search service using emoticons and operating method thereof
US10650095B2 (en) 2017-07-31 2020-05-12 Ebay Inc. Emoji understanding in online experiences
US10771529B1 (en) 2017-08-04 2020-09-08 Grammarly, Inc. Artificial intelligence communication assistance for augmenting a transmitted communication
WO2019077013A1 (en) * 2017-10-18 2019-04-25 Soapbox Labs Ltd. METHODS AND SYSTEMS FOR PROCESSING AUDIO SIGNALS CONTAINING VOICE DATA
US10599391B2 (en) * 2017-11-06 2020-03-24 Google Llc Parsing electronic conversations for presentation in an alternative interface
US10305766B1 (en) * 2017-11-07 2019-05-28 Amazon Technologies, Inc. Coexistence-insensitive presence detection
EP3486850A1 (en) * 2017-11-17 2019-05-22 Orange Method for generating an sms message and equipment for implementing the method
CN110301117B (zh) * 2017-11-24 2022-10-21 微软技术许可有限责任公司 用于在会话中提供响应的方法和装置
US10810322B2 (en) * 2017-12-05 2020-10-20 Microsoft Technology Licensing, Llc Sharing user information with and between bots
US10891526B2 (en) 2017-12-22 2021-01-12 Google Llc Functional image archiving
US11024307B2 (en) * 2018-02-08 2021-06-01 Computime Ltd. Method and apparatus to provide comprehensive smart assistant services
JP6818706B2 (ja) * 2018-02-13 2021-01-20 日本電信電話株式会社 情報提供装置、情報提供方法、およびプログラム
US10818288B2 (en) 2018-03-26 2020-10-27 Apple Inc. Natural assistant interaction
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
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
US11010179B2 (en) 2018-04-20 2021-05-18 Facebook, Inc. Aggregating semantic information for improved understanding of users
US11288299B2 (en) * 2018-04-24 2022-03-29 International Business Machines Corporation Enhanced action fulfillment using classification valency
US11610239B2 (en) * 2018-05-03 2023-03-21 Disney Enterprises, Inc. Machine learning enabled evaluation systems and methods
US11145294B2 (en) 2018-05-07 2021-10-12 Apple Inc. Intelligent automated assistant for delivering content from user experiences
US10928918B2 (en) 2018-05-07 2021-02-23 Apple Inc. Raise to speak
US10860804B2 (en) 2018-05-16 2020-12-08 Microsoft Technology Licensing, Llc Quick text classification model
US10867130B2 (en) * 2018-05-31 2020-12-15 Microsoft Technology Licensing, Llc Language classification system
DK180639B1 (en) 2018-06-01 2021-11-04 Apple Inc DISABILITY OF ATTENTION-ATTENTIVE VIRTUAL ASSISTANT
DK179822B1 (da) 2018-06-01 2019-07-12 Apple Inc. Voice interaction at a primary device to access call functionality of a companion device
US10892996B2 (en) 2018-06-01 2021-01-12 Apple Inc. Variable latency device coordination
US11658926B2 (en) * 2018-06-27 2023-05-23 Microsoft Technology Licensing, Llc Generating smart replies involving image files
US11062084B2 (en) 2018-06-27 2021-07-13 Microsoft Technology Licensing, Llc Generating diverse smart replies using synonym hierarchy
RU2712101C2 (ru) * 2018-06-27 2020-01-24 Общество с ограниченной ответственностью "Аби Продакшн" Предсказание вероятности появления строки с использованием последовательности векторов
US10721190B2 (en) * 2018-07-31 2020-07-21 Microsoft Technology Licensing, Llc Sequence to sequence to classification model for generating recommended messages
USD950587S1 (en) 2018-08-31 2022-05-03 Zoox, Inc. Display screen or portion thereof having a graphical user interface
US20200081939A1 (en) * 2018-09-11 2020-03-12 Hcl Technologies Limited System for optimizing detection of intent[s] by automated conversational bot[s] for providing human like responses
US11462215B2 (en) 2018-09-28 2022-10-04 Apple Inc. Multi-modal inputs for voice commands
US11188719B1 (en) 2018-10-22 2021-11-30 Wells Fargo Bank, N.A. Predictive text system
US10755099B2 (en) * 2018-11-13 2020-08-25 Adobe Inc. Object detection in images
WO2020157731A1 (en) 2019-02-03 2020-08-06 International Business Machines Corporation Performing multi-objective tasks via primal networks trained with dual networks
US10956474B2 (en) * 2019-03-14 2021-03-23 Microsoft Technology Licensing, Llc Determination of best set of suggested responses
US11348573B2 (en) 2019-03-18 2022-05-31 Apple Inc. Multimodality in digital assistant systems
USD913313S1 (en) 2019-04-22 2021-03-16 Facebook, Inc. Display screen with an animated graphical user interface
USD914051S1 (en) 2019-04-22 2021-03-23 Facebook, Inc. Display screen with an animated graphical user interface
USD912697S1 (en) 2019-04-22 2021-03-09 Facebook, Inc. Display screen with a graphical user interface
USD912693S1 (en) 2019-04-22 2021-03-09 Facebook, Inc. Display screen with a graphical user interface
USD914058S1 (en) 2019-04-22 2021-03-23 Facebook, Inc. Display screen with a graphical user interface
USD930695S1 (en) 2019-04-22 2021-09-14 Facebook, Inc. Display screen with a graphical user interface
USD913314S1 (en) 2019-04-22 2021-03-16 Facebook, Inc. Display screen with an animated graphical user interface
USD914049S1 (en) 2019-04-22 2021-03-23 Facebook, Inc. Display screen with an animated graphical user interface
US11554322B2 (en) * 2019-04-26 2023-01-17 Sony Interactive Entertainment LLC Game controller with touchpad input
DK201970509A1 (en) 2019-05-06 2021-01-15 Apple Inc Spoken notifications
US11307752B2 (en) 2019-05-06 2022-04-19 Apple Inc. User configurable task triggers
US10817142B1 (en) 2019-05-20 2020-10-27 Facebook, Inc. Macro-navigation within a digital story framework
US11140099B2 (en) 2019-05-21 2021-10-05 Apple Inc. Providing message response suggestions
US10757054B1 (en) 2019-05-29 2020-08-25 Facebook, Inc. Systems and methods for digital privacy controls
US11388132B1 (en) * 2019-05-29 2022-07-12 Meta Platforms, Inc. Automated social media replies
EP3977472A1 (en) 2019-05-31 2022-04-06 PAIGE.AI, Inc. Systems and methods for processing images of slides to automatically prioritize the processed images of slides for digital pathology
DK201970511A1 (en) 2019-05-31 2021-02-15 Apple Inc Voice identification in digital assistant systems
DK180129B1 (en) 2019-05-31 2020-06-02 Apple Inc. USER ACTIVITY SHORTCUT SUGGESTIONS
US11468890B2 (en) 2019-06-01 2022-10-11 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
USD914705S1 (en) 2019-06-05 2021-03-30 Facebook, Inc. Display screen with an animated graphical user interface
USD924255S1 (en) 2019-06-05 2021-07-06 Facebook, Inc. Display screen with a graphical user interface
USD914739S1 (en) 2019-06-05 2021-03-30 Facebook, Inc. Display screen with an animated graphical user interface
USD912700S1 (en) 2019-06-05 2021-03-09 Facebook, Inc. Display screen with an animated graphical user interface
USD917533S1 (en) 2019-06-06 2021-04-27 Facebook, Inc. Display screen with a graphical user interface
USD916915S1 (en) 2019-06-06 2021-04-20 Facebook, Inc. Display screen with a graphical user interface
USD918264S1 (en) 2019-06-06 2021-05-04 Facebook, Inc. Display screen with a graphical user interface
USD914757S1 (en) 2019-06-06 2021-03-30 Facebook, Inc. Display screen with an animated graphical user interface
US11238221B2 (en) * 2019-06-19 2022-02-01 Microsoft Technology Licensing, Llc Language profiling service
KR102238973B1 (ko) * 2019-07-10 2021-04-12 주식회사 인텔로이드 대화 데이터베이스를 이용한 대화문장 추천 방법 및 그것이 적용된 음성대화장치
US11176330B2 (en) * 2019-07-22 2021-11-16 Advanced New Technologies Co., Ltd. Generating recommendation information
US11429778B2 (en) * 2019-08-29 2022-08-30 Rovi Guides, Inc. Systems and methods for generating personalized content
US11620814B2 (en) * 2019-09-12 2023-04-04 Nec Corporation Contextual grounding of natural language phrases in images
US11567788B1 (en) 2019-10-18 2023-01-31 Meta Platforms, Inc. Generating proactive reminders for assistant systems
US11861674B1 (en) 2019-10-18 2024-01-02 Meta Platforms Technologies, Llc Method, one or more computer-readable non-transitory storage media, and a system for generating comprehensive information for products of interest by assistant systems
CN111385188A (zh) * 2019-11-22 2020-07-07 百度在线网络技术(北京)有限公司 对话元素的推荐方法、装置、电子设备和介质
US11295368B2 (en) * 2019-11-22 2022-04-05 Stubhub, Inc. Interactive and personalized ticket recommendation
US11361762B2 (en) * 2019-12-18 2022-06-14 Fujitsu Limited Recommending multimedia based on user utterances
US10841251B1 (en) * 2020-02-11 2020-11-17 Moveworks, Inc. Multi-domain chatbot
CN111563575B (zh) * 2020-05-06 2021-06-29 陈永聪 一种模仿人类智能的机器智能实现方法
US11043220B1 (en) 2020-05-11 2021-06-22 Apple Inc. Digital assistant hardware abstraction
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
US11209964B1 (en) * 2020-06-05 2021-12-28 SlackTechnologies, LLC System and method for reacting to messages
US11610065B2 (en) 2020-06-12 2023-03-21 Apple Inc. Providing personalized responses based on semantic context
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
US11438683B2 (en) 2020-07-21 2022-09-06 Apple Inc. User identification using headphones
US20220108079A1 (en) * 2020-10-06 2022-04-07 Sap Se Application-Specific Generated Chatbot
JP7132576B2 (ja) * 2020-10-30 2022-09-07 ソプラ株式会社 セキュリティidの会話文検索システム
US11563706B2 (en) 2020-12-29 2023-01-24 Meta Platforms, Inc. Generating context-aware rendering of media contents for assistant systems
US11809480B1 (en) 2020-12-31 2023-11-07 Meta Platforms, Inc. Generating dynamic knowledge graph of media contents for assistant systems
US11792141B2 (en) * 2021-01-12 2023-10-17 Meta Platforms Technologies, Llc Automated messaging reply-to
US11861315B2 (en) 2021-04-21 2024-01-02 Meta Platforms, Inc. Continuous learning for natural-language understanding models for assistant systems
US11743215B1 (en) 2021-06-28 2023-08-29 Meta Platforms Technologies, Llc Artificial reality messaging with destination selection
CN113878584A (zh) * 2021-10-29 2022-01-04 广东电网有限责任公司 一种变电站智能机器人及控制方法
CN114398135A (zh) * 2022-01-14 2022-04-26 北京字跳网络技术有限公司 交互方法、装置、电子设备、存储介质和程序产品
US11983329B1 (en) 2022-12-05 2024-05-14 Meta Platforms, Inc. Detecting head gestures using inertial measurement unit signals
US11962546B1 (en) 2023-03-03 2024-04-16 Microsoft Technology Licensing, Llc Leveraging inferred context to improve suggested messages
US11947902B1 (en) 2023-03-03 2024-04-02 Microsoft Technology Licensing, Llc Efficient multi-turn generative AI model suggested message generation

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7283992B2 (en) 2001-11-30 2007-10-16 Microsoft Corporation Media agent to suggest contextually related media content
US7512580B2 (en) 2005-08-04 2009-03-31 Sap Ag Confidence indicators for automated suggestions
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8082151B2 (en) 2007-09-18 2011-12-20 At&T Intellectual Property I, Lp System and method of generating responses to text-based messages
US20090119584A1 (en) 2007-11-02 2009-05-07 Steve Herbst Software Tool for Creating Outlines and Mind Maps that Generates Subtopics Automatically
US8195656B2 (en) * 2008-02-13 2012-06-05 Yahoo, Inc. Social network search
US20090282114A1 (en) 2008-05-08 2009-11-12 Junlan Feng System and method for generating suggested responses to an email
US8166019B1 (en) 2008-07-21 2012-04-24 Sprint Communications Company L.P. Providing suggested actions in response to textual communications
US8391618B1 (en) 2008-09-19 2013-03-05 Adobe Systems Incorporated Semantic image classification and search
US9782527B2 (en) 2009-05-27 2017-10-10 Tc1 Llc Monitoring of redundant conductors
US8635223B2 (en) 2009-07-28 2014-01-21 Fti Consulting, Inc. System and method for providing a classification suggestion for electronically stored information
US9929982B2 (en) 2010-04-08 2018-03-27 Microsoft Technology Licensing, Llc Designating automated agents as friends in a social network service
US20170098122A1 (en) * 2010-06-07 2017-04-06 Affectiva, Inc. Analysis of image content with associated manipulation of expression presentation
US8688698B1 (en) 2011-02-11 2014-04-01 Google Inc. Automatic text suggestion
US8589407B2 (en) * 2011-06-17 2013-11-19 Google Inc. Automated generation of suggestions for personalized reactions in a social network
US9245253B2 (en) * 2011-08-19 2016-01-26 Disney Enterprises, Inc. Soft-sending chat messages
US9727880B2 (en) * 2011-10-25 2017-08-08 Microsoft Technology Licensing, Llc Predicting user responses
CN106408252B (zh) * 2012-06-22 2019-11-29 谷歌有限责任公司 呈现针对当前位置或时间的信息
US9191786B2 (en) 2012-06-27 2015-11-17 At&T Intellectual Property I, L.P. Method and apparatus for generating a suggested message to be sent over a network
KR20140011073A (ko) 2012-07-17 2014-01-28 삼성전자주식회사 텍스트 추천 방법 및 장치
US9195645B2 (en) * 2012-07-30 2015-11-24 Microsoft Technology Licensing, Llc Generating string predictions using contexts
US20140088954A1 (en) 2012-09-27 2014-03-27 Research In Motion Limited Apparatus and method pertaining to automatically-suggested emoticons
US10691743B2 (en) 2014-08-05 2020-06-23 Sri International Multi-dimensional realization of visual content of an image collection
US9244905B2 (en) 2012-12-06 2016-01-26 Microsoft Technology Licensing, Llc Communication context based predictive-text suggestion
US20140164506A1 (en) 2012-12-10 2014-06-12 Rawllin International Inc. Multimedia message having portions of networked media content
US20140237057A1 (en) 2013-02-21 2014-08-21 Genesys Telecommunications Laboratories, Inc. System and method for processing private messages in a contact center
US8825474B1 (en) 2013-04-16 2014-09-02 Google Inc. Text suggestion output using past interaction data
US9177318B2 (en) 2013-04-22 2015-11-03 Palo Alto Research Center Incorporated Method and apparatus for customizing conversation agents based on user characteristics using a relevance score for automatic statements, and a response prediction function
US10599765B2 (en) 2013-06-27 2020-03-24 Avaya Inc. Semantic translation model training
US10162884B2 (en) 2013-07-23 2018-12-25 Conduent Business Services, Llc System and method for auto-suggesting responses based on social conversational contents in customer care services
CN104144108B (zh) * 2013-09-30 2017-07-25 腾讯科技(深圳)有限公司 一种消息响应方法、装置及系统
US8996639B1 (en) 2013-10-15 2015-03-31 Google Inc. Predictive responses to incoming communications
CN103593340B (zh) * 2013-10-28 2017-08-29 余自立 自然表达信息处理方法、处理及回应方法、设备及系统
US10565268B2 (en) 2013-12-19 2020-02-18 Adobe Inc. Interactive communication augmented with contextual information
US9661067B2 (en) 2013-12-23 2017-05-23 24/7 Customer, Inc. Systems and methods for facilitating dialogue mining
US9817813B2 (en) 2014-01-08 2017-11-14 Genesys Telecommunications Laboratories, Inc. Generalized phrases in automatic speech recognition systems
US20150207765A1 (en) 2014-01-17 2015-07-23 Nathaniel Brantingham Messaging Service with Conversation Suggestions
US10095748B2 (en) 2014-03-03 2018-10-09 Microsoft Technology Licensing, Llc Personalized information query suggestions
US9213941B2 (en) 2014-04-22 2015-12-15 Google Inc. Automatic actions based on contextual replies
WO2015183699A1 (en) * 2014-05-30 2015-12-03 Apple Inc. Predictive messaging method
WO2016003469A1 (en) 2014-07-03 2016-01-07 Nuance Communications, Inc. System and method for suggesting actions based upon incoming messages
US9569728B2 (en) 2014-11-14 2017-02-14 Bublup Technologies, Inc. Deriving semantic relationships based on empirical organization of content by users
US20160179816A1 (en) 2014-12-22 2016-06-23 Quixey, Inc. Near Real Time Auto-Suggest Search Results
KR101634086B1 (ko) * 2015-01-19 2016-07-08 주식회사 엔씨소프트 감정 분석을 통한 스티커 추천 방법 및 시스템
US9883358B2 (en) * 2015-05-08 2018-01-30 Blackberry Limited Electronic device and method of determining suggested responses to text-based communications
US10909329B2 (en) * 2015-05-21 2021-02-02 Baidu Usa Llc Multilingual image question answering
US10049322B2 (en) * 2015-05-21 2018-08-14 Google Llc Prefetching weights for use in a neural network processor
US10504509B2 (en) 2015-05-27 2019-12-10 Google Llc Providing suggested voice-based action queries
US10445425B2 (en) 2015-09-15 2019-10-15 Apple Inc. Emoji and canned responses
KR102427833B1 (ko) 2015-11-30 2022-08-02 삼성전자주식회사 사용자 단말장치 및 디스플레이 방법
US20170171117A1 (en) 2015-12-10 2017-06-15 International Business Machines Corporation Message Suggestion Using Dynamic Information
CN108781175B (zh) 2015-12-21 2021-09-21 谷歌有限责任公司 用于消息交换题绪的自动建议的方法、介质及系统
EP3395019B1 (en) 2015-12-21 2022-03-30 Google LLC Automatic suggestions and other content for messaging applications
US10831802B2 (en) 2016-04-11 2020-11-10 Facebook, Inc. Techniques to respond to user requests using natural-language machine learning based on example conversations
US9866693B2 (en) 2016-05-06 2018-01-09 Genesys Telecommunications Laboratories, Inc. System and method for monitoring progress of automated chat conversations
US20170344224A1 (en) 2016-05-27 2017-11-30 Nuance Communications, Inc. Suggesting emojis to users for insertion into text-based messages
US10515393B2 (en) * 2016-06-30 2019-12-24 Paypal, Inc. Image data detection for micro-expression analysis and targeted data services
CN111555954B (zh) 2016-07-08 2023-04-07 艾赛普公司 自动响应用户的请求

Also Published As

Publication number Publication date
US20180210874A1 (en) 2018-07-26
CN110178132A (zh) 2019-08-27
JP6625789B2 (ja) 2019-12-25
US10146768B2 (en) 2018-12-04
KR102050334B1 (ko) 2019-11-29
EP3516537A1 (en) 2019-07-31
KR20190049886A (ko) 2019-05-09
WO2018140099A1 (en) 2018-08-02
CN110178132B (zh) 2023-09-19
JP2019536135A (ja) 2019-12-12

Similar Documents

Publication Publication Date Title
CN110178132B (zh) 在消息应用中自动建议内容的方法和系统
US10862836B2 (en) Automatic response suggestions based on images received in messaging applications
US11303590B2 (en) Suggested responses based on message stickers
US11700134B2 (en) Bot permissions
CN110709869B (zh) 用于在聊天对话中与嵌入式应用一起使用的建议项目
CN109691034B (zh) 机器人交互
CN110945840B (zh) 提供与消息应用相关联的嵌入式应用的方法和系统
CN111279349B (zh) 解析电子对话用于在替代界面中呈现

Legal Events

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