CN112528147B - 内容推荐方法和装置、训练方法、计算设备和存储介质 - Google Patents
内容推荐方法和装置、训练方法、计算设备和存储介质 Download PDFInfo
- Publication number
- CN112528147B CN112528147B CN202011455524.1A CN202011455524A CN112528147B CN 112528147 B CN112528147 B CN 112528147B CN 202011455524 A CN202011455524 A CN 202011455524A CN 112528147 B CN112528147 B CN 112528147B
- Authority
- CN
- China
- Prior art keywords
- interest
- user
- information
- content item
- content
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000012549 training Methods 0.000 title claims abstract description 45
- 238000013528 artificial neural network Methods 0.000 claims abstract description 45
- 230000004044 response Effects 0.000 claims abstract description 11
- 239000013598 vector Substances 0.000 claims description 54
- 238000004364 calculation method Methods 0.000 claims description 15
- 230000015654 memory Effects 0.000 claims description 10
- 230000003993 interaction Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 8
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 238000013135 deep learning Methods 0.000 abstract description 3
- 230000006399 behavior Effects 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 13
- 230000007774 longterm Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000004891 communication Methods 0.000 description 10
- 238000012360 testing method Methods 0.000 description 9
- 230000003068 static effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000011176 pooling Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012163 sequencing technique Methods 0.000 description 3
- 230000003936 working memory Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000001914 filtration Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 230000004043 responsiveness Effects 0.000 description 2
- 241000282326 Felis catus Species 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002996 emotional effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003924 mental process Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种内容推荐方法和装置、训练方法、计算设备和存储介质,涉及人工智能技术领域,具体涉及深度学习、神经网络与大数据。内容推荐方法包括:基于用户信息和候选内容项的内容信息,通过神经网络,生成用户对候选内容项的感兴趣数值;并且响应于候选内容项的感兴趣数值满足预定条件,控制终端输出候选内容项,其中,用户信息包括用户的历史兴趣信息,历史兴趣信息包括用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且候选内容项的内容信息包括候选内容项的第一兴趣特征的值。
Description
技术领域
本公开涉及人工智能技术领域,具体涉及深度学习、神经网络与大数据,尤其涉及一种内容推荐方法和装置、训练方法、计算设备和存储介质。
背景技术
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,既有硬件层面的技术也有软件层面的技术。人工智能硬件技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理等技术:人工智能软件技术主要包括计算机视觉技术、语音识别技术、自然语言处理技术以及机器学习/深度学习、大数据处理技术、知识图谱技术等几大方向。
在各个领域都存在向用户推荐内容、尤其是基于用户的细化的个性化推荐的问题。期望通过合适的算法向用户推送用户感兴趣的内容项,从而提高用户与内容的交互并且提高点击通过率等。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
根据本公开的方面,提供了一种内容推荐方法,包括:基于用户信息和候选内容项的内容信息,通过神经网络,生成用户对所述候选内容项的感兴趣数值;并且响应于所述候选内容项的所述感兴趣数值满足预定条件,控制终端输出所述候选内容,其中,所述用户信息包括所述用户的历史兴趣信息,所述历史兴趣信息包括所述用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且所述候选内容项的所述内容信息包括所述候选内容项的所述第一兴趣特征的值。
根据本公开的又一方面,提供了一种内容推荐装置,包括兴趣计算单元,所述兴趣计算单元被配置成推荐基于用户信息和候选内容项的内容信息,通过神经网络,生成用户对所述候选内容项的感兴趣数值;以及内容输出单元,所述内容输出单元被配置成响应于所述候选内容项的所述感兴趣数值满足预定条件,控制终端输出所述候选内容项,其中,所述用户信息包括所述用户的历史兴趣信息,所述历史兴趣信息包括所述用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且所述候选内容项的所述内容信息包括所述候选内容项的所述第一兴趣特征的值。
根据本公开的又一方面,提供了一种计算设备,包括处理器;以及存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据本公开的实施例的内容推荐方法或根据本公开的实施例的训练方法。
根据本公开的又一方面,提供了一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,指示所述电子设备执行根据本公开的实施例的内容推荐方法或根据本公开的实施例的训练方法。
根据本公开的再一方面,提供了一种计算机程序产品,包括计算机指令,所述计算机指令在被处理器执行时实现根据本公开的实施例的内容推荐方法或根据本公开的实施例的训练方法。
通过上述方案,通过使用用户感兴趣特征的历史序列,能够更准确地向用户推荐内容。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开的实施例的可以在其中实施本文描述的各种方法的示例性系统的示意图;
图2示出了根据本公开的实施例的内容推荐方法的流程图;
图3示出了根据本公开的实施例的示例内容推荐神经网络;
图4示出了根据本公开的另一实施例的示例内容推荐神经网络;
图5示出了根据本公开的实施例的神经网络训练方法;
图6示出了根据本公开的实施例的离线训练方法的流程图;
图7(a)-图7(b)示出了根据本公开的实施例的在线预测方法的流程图;
图8示出了根据本公开的实施例的内容推荐装置的结构框图;
图9示出了能够用于实现本公开的实施例的示例性服务器和客户端的结构框图。
具体实施方式
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
下面将结合附图详细描述本公开的实施例。
图1示出了根据本公开的实施例可以将本文描述的各种方法和装置在其中实施的示例性系统100的示意图。参考图1,该系统100包括一个或多个客户端设备101、102、103、104、105和106、服务器120以及将一个或多个客户端设备耦接到服务器120的一个或多个通信网络110。客户端设备101、102、103、104、105和106可以被配置为执行一个或多个应用程序。
在本公开的实施例中,服务器120可以运行使得能够实现如本公开的实施例所述的内容推荐方法的一个或多个服务或软件应用。
在某些实施例中,服务器120还可以提供可以包括非虚拟环境和虚拟环境的其他服务或软件应用。在某些实施例中,这些服务可以作为基于web的服务或云服务提供,例如在软件即服务(SaaS)模型下提供给客户端设备101、102、103、104、105和/或106的用户。
在图1所示的配置中,服务器120可以包括实现由服务器120执行的功能的一个或多个组件。这些组件可以包括可由一个或多个处理器执行的软件组件、硬件组件或其组合。操作客户端设备101、102、103、104、105和/或106的用户可以依次利用一个或多个客户端应用程序来与服务器120进行交互以利用这些组件提供的服务。应当理解,各种不同的系统配置是可能的,其可以与系统100不同。因此,图1是用于实施本文所描述的各种方法的系统的一个示例,并且不旨在进行限制。
用户可以使用客户端设备101、102、103、104、105和/或106来与例如如本公开的实施例中所述的方法推荐的内容进行交互。例如,用户可以使用客户端设备来请获取、接收、观看、收听内容、与内容交互,或者对内容的感兴趣/不感兴趣程度进行打分等。客户端设备可以提供使客户端设备的用户能够与客户端设备进行交互的接口。客户端设备还可以经由该接口向用户输出信息。尽管图1仅描绘了六种客户端设备,但是本领域技术人员将能够理解,本公开可以支持任何数量的客户端设备。
客户端设备101、102、103、104、105和/或106可以包括各种类型的计算机设备,例如便携式手持设备、通用计算机(诸如个人计算机和膝上型计算机)、工作站计算机、可穿戴设备、游戏系统、瘦客户端、各种消息收发设备、传感器或其他感测设备等。这些计算机设备可以运行各种类型和版本的软件应用程序和操作系统,例如Microsoft Windows、AppleiOS、类UNIX操作系统、Linux或类Linux操作系统(例如Google Chrome OS);或包括各种移动操作系统,例如Microsoft Windows Mobile OS、iOS、Windows Phone、Android。便携式手持设备可以包括蜂窝电话、智能电话、平板电脑、个人数字助理(PDA)等。可穿戴设备可以包括头戴式显示器和其他设备。游戏系统可以包括各种手持式游戏设备、支持互联网的游戏设备等。客户端设备能够执行各种不同的应用程序,例如各种与Internet相关的应用程序、通信应用程序(例如电子邮件应用程序)、短消息服务(SMS)应用程序,并且可以使用各种通信协议。
网络110可以是本领域技术人员熟知的任何类型的网络,其可以使用多种可用协议中的任何一种(包括但不限于TCP/IP、SNA、IPX等)来支持数据通信。仅作为示例,一个或多个网络110可以是局域网(LAN)、基于以太网的网络、令牌环、广域网(WAN)、因特网、虚拟网络、虚拟专用网络(VPN)、内部网、外部网、公共交换电话网(PSTN)、红外网络、无线网络(例如蓝牙、WIFI)和/或这些和/或其他网络的任意组合。
服务器120可以包括一个或多个通用计算机、专用服务器计算机(例如PC(个人计算机)服务器、UNIX服务器、中端服务器)、刀片式服务器、大型计算机、服务器群集或任何其他适当的布置和/或组合。服务器120可以包括运行虚拟操作系统的一个或多个虚拟机,或者涉及虚拟化的其他计算架构(例如可以被虚拟化以维护服务器的虚拟存储设备的逻辑存储设备的一个或多个灵活池)。在各种实施例中,服务器120可以运行提供下文所描述的功能的一个或多个服务或软件应用。
服务器120中的计算单元可以运行包括上述任何操作系统以及任何商业上可用的服务器操作系统的一个或多个操作系统。服务器120还可以运行各种附加服务器应用程序和/或中间层应用程序中的任何一个,包括HTTP服务器、FTP服务器、CGI服务器、JAVA服务器、数据库服务器等。
在一些实施方式中,服务器120可以包括一个或多个应用程序,以分析和合并从客户端设备101、102、103、104、105和106的用户接收的数据馈送和/或事件更新。服务器120还可以包括一个或多个应用程序,以经由客户端设备101、102、103、104、105和106的一个或多个显示设备来显示数据馈送和/或实时事件。
系统100还可以包括一个或多个数据库130。在某些实施例中,这些数据库可以用于存储数据和其他信息。例如,数据库130中的一个或多个可用于存储诸如音频文件和视频文件的信息。数据存储库130可以驻留在各种位置。例如,由服务器120使用的数据存储库可以在服务器120本地,或者可以远离服务器120且可以经由基于网络或专用的连接与服务器120通信。数据存储库130可以是不同的类型。在某些实施例中,由服务器120使用的数据存储库可以是数据库,例如关系数据库。这些数据库中的一个或多个可以响应于命令而存储、更新和检索到数据库以及来自数据库的数据。
在某些实施例中,数据库130中的一个或多个还可以由应用程序使用来存储应用程序数据。由应用程序使用的数据库可以是不同类型的数据库,例如键值存储库,对象存储库或由文件系统支持的常规存储库。
图1的系统100可以以各种方式配置和操作,以使得能够应用根据本公开所描述的各种方法和装置。
下面参考图2描述根据本公开的实施例的内容推荐方法200。
在步骤S201处,基于用户信息和候选内容项的内容信息,通过神经网络,生成用户对候选内容项的感兴趣数值。用户信息指的是当前要向其推荐内容的用户的用户信息。例如,用户可以是内容推荐平台或其他可以使用本公开的方法的信息推送平台等的用户。候选内容项可以是来自内容库的可能被推送给用户的内容项。内容库可以以多种方法生成和选择,例如来自推荐平台的所有当前上线内容项或者是经过推荐系统的召回模块初步筛选和召回的内容项等。本步骤S201可以基于接收到用户请求而触发,或者,可以为了实时性要求和减少在线计算等,可以为平台中的活跃用户预先生成(例如,生成中间结果),并且将感兴趣数值(或其中间结果)先保存在缓存中,并且在接收到用户请求或满足其他输出内容项的条件例如主动向用户输出内容项的时候,从缓存中读取并且进行下一步计算。
在步骤S202处,响应于候选内容项的感兴趣数值满足预定条件,控制终端输出候选内容项。其中,用户信息包括用户的历史兴趣信息,历史兴趣信息包括用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且候选内容项的内容信息包括候选内容项的第一兴趣特征的值。
根据本公开的实施例,提供了一种能够使用内容项的兴趣特征以及用户历史上感兴趣的内容项的兴趣特征序列作为神经网络的输入来预测用户对候选内容项的感兴趣程度的内容推荐方法。此处使用的内容项也可以被称作信息、知识、数据项等,可以包括新闻、文章、课程、书籍、商品、广告、视频、音频、图像等各种内容项,并且可以理解的是,本公开不限于此,本公开所述的方法可以适用于所有用户可以阅读、观看、收听、消费、选择或者以其他方式与之交互的内容项。根据本公开的实施例,通过使用感兴趣特征和历史序列,能够更准确地向用户推荐内容。
通过采用第一兴趣特征,能够克服例如相关技术中仅适用用户标识与内容项标识作为学习对象时具有的至少以下缺陷:冷启动问题,例如在内容库中加入新的内容项时预测性能差;模型过拟合;不适合内容项经常需要上线/下线的场景。根据一些实施例,第一兴趣特征可以是内容项的主题或话题。例如,对于科技文章内容项,主题(即,第一兴趣特征的值)可以是“人工智能”;对于视频或图像内容项,主题可以是“猫”或“动物”;对于新闻内容项,主题可以是“社会”或者“本地热点”;对于商品内容项,主题可以是“厨房”或者“户外”,等等。主题或话题最能够反应内容项的兴趣点,因此基于这样的兴趣特征,能够准确判断用户对内容项的兴趣程度,有利于内容的推荐效果。可以理解的是,本公开不限于此,第一兴趣特征可以是诸如标题、标签、来源、频道、话题度等任何能够反映内容项对于用户的兴趣分类的特征。
兴趣特征的数量可以不限于一个。根据一些实施例,用户的历史兴趣信息还可以包括用户的历史感兴趣内容项中的每个内容项的一个或多个其他兴趣特征的值,并且候选内容项的内容信息包括候选内容项的一个或多个其他兴趣特征的值,一个或多个其他兴趣特征不同于第一兴趣特征。由于结合神经网络处理多信息和信息抽取的强大能力,利用多个兴趣特征来计算可以使得计算结果更加完善准确。一个或多个其他兴趣特征包括以下各项中的一个或多个:内容项的标题、标签和来源。内容项的标题可以醒目地影响用户是否对推荐内容感兴趣,因此在内容推荐方面也是十分重要的特征。内容项的标签可以从更细粒度反映内容项的特征。例如,对于文本类内容项,标签可以包括关键词、高频词、专有名词或其他反应文章的细粒度特征的词,并且作为示例,可以是文章中出现的地名、人名、公司名称等;对于音频(例如,乐曲)或者视频(例如,影视作品)内容项,可以是作者、表演者、年份、曲风、制作公司等。标签也可以包括文章的热度、情感倾向、受众群体(例如,“儿童”)等。可以理解的是,本公开不限于此。例如,内容项的来源包括内容项的发布者、制作者、所在频道、是否是官方作品等等。通过使用标题、标签和来源作为特征,能够更有效地计算用户对候选内容项的感兴趣可能性。
可以以多种方式表示或者评估用户对内容项的兴趣程度。例如,可以通过用户对内容项的交互行为来指示用户对内容项的兴趣。例如,可以从日志收集系统获取日志(例如通过在app中埋点来收集的日志),并且从中抽取用户行为。根据一些实施例,用户的历史感兴趣内容项包括用户对其做出过正向交互行为的内容项。由此,能够采用用户的历史正向交互行为,直接地判断用户与内容项之间的兴趣关联。正向交互行为可以包括例如点击,选择、打开、分享、停留超过一定时间等,并且本公开不限于此。根据本公开的实施例,预定条件可以是兴趣得分满足阈值,可以是在多个候选内容项中按照兴趣得分降序排名的前一定数量的候选内容项,并且本公开不限于此。
根据一些实施例,用户信息还包括用户的属性信息。用户的属性信息可以例如包含用户自定义的兴趣偏好和其他用户静态信息。还可以将用户的属性信息也输入神经网络进行训练,由此使得训练获得的模型更准确,推荐方法更有效。
例如,用户信息还可以包括以下各项中的一项或几项:
(1)user_id:用户的唯一标识。
(2)selected_topics:用户的自定义感兴趣主题(用于冷启动)。
(3)long_topics:用户的长期感兴趣主题。
(4)long_tags:用户的长期感兴趣标签。
(5)short_topics:用户的短期感兴趣主题。
(6)short_tags:用户的短期感兴趣标签。
其中topics(主题或话题)和tags(标签)都是用于刻画用户兴趣点的特征。如已经参照前文所描述的,感兴趣主题的刻画粒度较粗,而感兴趣标签的刻画粒度比较细。
此外,用户信息还可以包括反应用户所在类别或者群体的兴趣特征。例如,用户信息可以包括用户所属地区location和用户所在地区的长期感兴趣主题location_long_topics。作为又一示例,针对企业内部的信息推荐系统,用户信息可以包括用户所属的部门department和用户部门的长期感兴趣主题department_long_topics。容易理解这些仅是示例,并且本公开不限于此。用户信息可以反映偏静态的用户特征以刻画用户的基本属性以及长期偏好,也可以反映动态的用户特征例如短期的用户偏好等。
本公开还可以应用于内容排序场景。例如,当用户请求获取信息时,可以向用户输出有序内容项列表。作为一个示例,用户可能打开购物软件并且获取多个商品的呈现。或者,用户刷新新闻应用或者网页以期望获得更新的新闻列表。在这种情况下,按照用户的感兴趣程度对内容项进行呈现可能是期望的。根据一些实施例,候选内容项包括多个内容项,并且其中,响应于候选内容项的感兴趣数值满足预定条件控制终端输出候选内容项包括:按照感兴趣数值的降序,控制终端输出多个内容项中满足预定条件的内容项。由此,可以对多个内容进行排序呈现。本公开可以实现基于兴趣的内容项推荐或者知识推荐场景,例如,本公开的方法可以应用于馈送流(feed)知识推荐领域,为知识推荐系统中提供排序解决方案。馈送流(feed)知识推荐场景可以为用户提供知识推荐,包含科技、新闻、技术等文章。推荐系统旨在挖掘用户画像、建立精准的用户兴趣,为用户提供精细化、丰富的知识或内容。推荐系统的核心是为不同的用户提供个性化推荐,即实现“千人千面”,并且提升点击通过率(CTR)。
根据一些实施例,神经网络可以包括第一子网络部分。第一子网络部分用于基于用户的历史兴趣信息生成用户历史兴趣特征值的序列的低维向量。将往往是文字特征的稀疏的兴趣信息转换成稠密的低维向量,使得能够基于复杂的兴趣特征信息来训练神经网络,从而获得更准确的推荐结果。
根据一些实施例,神经网络还包括位于第一子网络部分之后的第二子网络部分,第二子网络部分用于通过一个或多个隐藏层,基于用户信息的向量表示和内容信息的向量表示,生成用户对候选内容项的感兴趣数值。在第一子网络部分后的第二子网络部分,有多个隐藏层(例如全连接层),可以对多维特征进行交叉组合,提高模型的表达能力。
根据一些实施例,生成用户对候选内容项的感兴趣数值的步骤包括:在接收到对用户的推荐请求后,从缓存中读取针对该用户的用户历史兴趣特征值的序列的低维向量,低维向量是由第一子网络部分预先计算的;基于用户信息、候选内容项的内容信息以及用户历史兴趣特征值的序列的低维向量,使用第二子网络部分,生成用户对候选内容项的感兴趣数值。
通过这样的结构,可以预先运行第一子网络,对历史兴趣特征值进行低维运算,然后将计算结果(中间结果)进行输出和缓存。这是因为对历史兴趣特征值的嵌入运算往往是耗时的,因此对其进行缓存可以极大地提高实时响应性。
下面结合图3来描述实现本公开的实施例的内容推荐方法的示例神经网络300。神经网络300可以包括嵌入层301a和301b,用于将以稀疏的类别型特征格式(例如,离散的文字)存在的用户历史特征331和内容项信息332转换成稠密的embedding向量;transformer层302,用于对历史兴趣特征值序列进行transformer编码器编码;池化层303,用于对经Transformer编码器编码后的隐层输出进行池化例如最大池化,得到兴趣特征值序列的最终embedding表示;拼接层304,用于将不同的embedding特征向量在最后一维进行拼接,形成新的包含全部特征的特征向量;隐藏层305,用于对多维特征进行交叉组合,提高模型的表达能力;以及激活层306,用于对目标进行优化。需要指出的是,这里的嵌入层301a和301b的分开仅是示例,例如,内容项信息331和用户历史特征332可以共用同一个嵌入层。
根据一些实施例,第一子网络部分310可以包括transformer层302。基于用户的历史兴趣信息生成用户历史兴趣特征值的序列的低维向量可以包括:使用transformer层对用户历史兴趣特征值的序列进行多头注意力编码。Transformer是在NLP领域使用的一种Multi-head Attention(多头自注意力机制)模型。本公开将其应用于知识推荐领域,能够从复杂的兴趣特征提取有效信息,有利于神经网络的学习,从而获得更准确的推荐结果。第二子网络部分320可以在第一子网络部分310之后,并且包括一个或多个隐藏层305。一个或多个隐藏层305可以构成多层的感知机(MLP),例如可以是3层的全连接网络。这样的网络具有很强的隐式交叉能力。
相关技术中,知识馈送推荐排序模型可以采用LR、Deep&Wide等。然而,LR作为排序模型,虽然能够融合多种类型的不同特征,但是模型不具备特征组合的能力,模型表达能力一般,泛化能力比较差。另外,作为一种深度学习模型,Deep&Wide具备特征组合的能力,但是是无法对用户的历史行为进行建模。相反地,采用本公开的实施例所述的方法,通过引入Transformer架构的深度学习模型,可以很好地对特征进行组合,能够优化用户历史序列建模,以及对用户历史序列进行建模,让模型更好的理解用户,提供更好的个性化推荐。
根据一些实施例,第二子网络部分320可以在其输入端包括拼接层304。拼接层304用于将用户信息的向量表示和内容信息的向量表示进行拼接。将用户信息和内容信息拼接在一起,形成新的包含全部特征的特征向量,由此能够利用这些特征的组合进行神经网络的运算,准确生成结果。
下面结合图4来描述实现本公开的另一实施例的内容推荐方法的示例神经网络400。作为示例,采用三个兴趣特征——第一兴趣特征可以是话题,第二兴趣特征可以是标签,并且第三兴趣特征可以是标题。因此,用户具有三个对应的历史兴趣特征值序列。本领域人员将理解的是,本公开不限于此,本公开可以适用于更少(例如,只有一个)或更多的兴趣特征的场景,并且神经网络的结构可以容易地随之调整。
神经网络400包括三个对应的transformer层402a、402b、402c和三个对应的池化层403a、403b、403c,其分别对应于三个兴趣特征的历史序列。神经网络400还包括嵌入层401、拼接层404、隐藏层405和激活层406,并且其功能在此不再赘述。
嵌入层401可以用于对多个用户历史特征序列431a、431b和431c、内容项信息432和用户信息433进行嵌入层处理。作为一个示例,内容项信息432可以包括以下中的一项或多项:item_id:内容项的唯一标识;resource:内容项的来源;author_name:内容项的作者;update_time:内容项的更新时间;publish_time:内容项的发表时间;title:内容项的标题;summary:内容项的摘要;topics:内容项所属的感兴趣主题;tags:内容项所属的感兴趣标签;action_time:内容项与用户的交互时间;image_quality:内容项里包含的图片质量打分。作为一个示例,用户信息433可以包括用户的唯一标识、用户所属的类别、用户所属的类别的长期感兴趣主题、用户的自定义感兴趣主题、用户的长期感兴趣主题、用户的长期感兴趣标签、用户的短期感兴趣主题和用户的短期感兴趣标签中的一项或多项,如已经参照前文所述的。
用户历史特征序列431a、431b和431c(或者331)可以通过以下方式进行建模。可以从从内容项的多个维度而不单纯是内容项ID出发,对用户的历史兴趣序列进行建模。虽然内容项的大部分信息可以利用ID的Embedding向量进行表示,但是用户ID在训练数据中是十分稀疏的,同时由于推荐系统新文章的加入,导致模型容易过拟合,泛化能力不强。所以需要更加泛化的特征来理解用户兴趣的实时变化。例如,用户历史特征序列431a、431b和431c可以分别对应于、用户点击内容项对应的主题序列history_topics、用户点击内容项对应的标签序列history_tags和用户点击内容项对应的标题序列history_titles。
下面参考图5描述根据本公开的实施例的示例训练方法500。例如,图2的方法中描述的神经网络可以通过这里的训练方法500进行训练。
在步骤S501处,获取多个用户信息与内容项信息的关联对作为样本集合,其中用户与感兴趣内容项的关联对被标记为正样本,并且其中用户与不感兴趣内容项的关联对被标记为负样本。
在步骤S502处,使用样本集合来训练神经网络,其中,用户信息包括用户的历史兴趣信息,历史兴趣信息包括用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且内容信息包括内容项的第一兴趣特征的值。
根据本公开的实施例的训练方法将用户与感兴趣内容项作为正样本,用户与不感兴趣内容项作为负样本,训练信息包括内容项的特征和用户的历史兴趣特征。由此,使用兴趣特征和历史序列,能够使得训练好的模型更准确地反映用户兴趣度。在一些实施例中,通过根据本公开的实施例的训练方法训练的神经网络包括transformer层,transformer层用于对用户历史兴趣特征值的序列进行多头注意力编码。在一些实施例中,根据本公开的实施例的训练方法,第一兴趣特征是内容项的主题或话题。这样的网络可以例如是在池化层前增加了transformer层的神经网络。可以例如通过二元交叉熵来计算损失函数。
模型的训练非常依赖于数据集的构造。下面将对数据集构造和样本选取进行说明。
在模型训练过程中,可以通过对结构化的日志数据进行预处理,并且从中提取用户信息、内容项信息,统计用户的历史行为数据,提取模型训练所需要的特征,对用户的行为序列进行建模。日志数据可以来源于日志收集系统,例如通过在app中埋点来收集日志的日志系统或者文件系统等。作为一个示例,可以从Hadoop分布式系统架构(HDFS)获取结构化的原始数据(日志),其可以采用json的形式。
下面给出一条日志数据的示例。
每条日志特定于一次能够被采集到的行为。在下面的示例中,“action”标记出了该日志对应的行为中用户与内容项的交互,例如action=show对应推送(用户看到了内容项)但是未点击,action=click代表用户对内容项进行了点击行为等。
在获取结构化的原始数据(日志)后,需要在一定时间周期内(例如,以天为单位)对原始数据进行去重和过滤,并且主要包括:第一步,按user_id和item_id为关键字对数据进行融合。对于某一组user_id和item_id而言,训练数据中可能既有action=show的数据,也有action=click的数据,作为一个融合逻辑示例,可以只要有一条click数据,即认为当前user_id、item_id对应的label=click(正样本),反之则认为label=show(负样本)。之后,还可以进行过滤操作,例如过滤低频用户。低频用户可以指每天(每周、每月)推送数或者下发数不到5次,15次等的用户。
之后,可以对原始数据进行特征抽取及离散化编码。数据主要包括主要包含用户特征、文章特征和用户历史序列特征。在这里,采用用户行为序列作为用户历史兴趣序列的示例,但是可以理解,本公开不限于此,例如可以选择其他表征用户对内容项感兴趣的特征序列,例如用户对内容项的打分等。
用户信息或者被称为用户特征可以是偏静态的特征,用来刻画用户的基本属性以及长期偏好特征。用户信息可以主要包含用户的唯一标识、用户所属的类别、用户所属的类别的长期感兴趣主题、用户的自定义感兴趣主题、用户的长期感兴趣主题、用户的长期感兴趣标签、用户的短期感兴趣主题和用户的短期感兴趣标签中的一项或多项,如已经参照前文所述的。在该日志示例中,用户信息包括:
(1)user_id:用户的唯一标识。
(2)department:用户所属的部门。
(3)department_long_topics:用户部门的长期感兴趣主题。
(4)selected_topics:用户的自定义感兴趣主题(用于冷启动)。
(5)long_topics:用户的长期感兴趣主题。
(6)long_tags:用户的长期感兴趣标签。
(7)short_topics:用户的短期感兴趣主题。
(8)short_tags:用户的短期感兴趣标签。
内容项的信息或内容项特征可以包括内容项的唯一标识、内容项的来源、内容项的作者、内容项的更新时间、内容项的发表时间、内容项的标题、内容项的摘要、内容项所属的感兴趣主题、内容项所属的感兴趣标签、内容项与用户的交互时间、内容项的质量打分等。例如,在内容项是文章的本示例中,文章特征可以包含:
(1)item_id:文章的唯一标识。
(2)resource:文章的来源。
(3)author_name:文章的作者。
(4)update_time:文章的更新时间。
(5)publish_time:文章的发表时间。
(6)title:文章的标题。
(7)summary:文章的摘要。
(8)topics:文章所属的感兴趣主题。
(8)tags:文章所属的感兴趣标签。
(9)action_time:文章与用户的交互(click/show)时间。
(10)image_quality:文章里包含的图片质量打分。
随后将描述对用户历史序列建模的过程。不仅利用内容项ID来对用户的行为序列进行建模,本公开从内容项的多个维度出发,对用户的行为序列进行建模。虽然内容项的大部分信息可以利用ID的Embedding向量进行表示,但是用户ID在训练数据中是十分稀疏的,同时由于推荐系统新文章的加入,导致模型容易过拟合,泛化能力不强。所以需要更加泛化的特征来理解用户兴趣的实时变化。根据本公开的一个示例,可以包含三个用户历史序列特征:
(1)history_topics:用户点击内容项对应的主题序列。
(2)history_tags:用户点击内容项对应的tags序列。
(3)history_titles:用户点击内容项对应的titles序列。
由于本公开中提到的特征大多数特征为离散的特征,尤其是离散的文本型特征,之后需要对其进行特征离散化编码。对于数值型特征,比如action_time,image_quality等,可以对一个较大的数(例如,10000001)取模,之后得到的值作为其类别特征值。对于单值型的文本型特征,比如resource、department等,首先对其字面值进行hash操作,然后用计算得到的hash值一个较大的数(例如,10000001)取模得到其类别特征值。对于多值型的文本型特征,比如topics等,可以先对字面值进行hash操作,之后填充到固定的长度,例如20。这里的离散化编码步骤可以出现在数据进入嵌入层之前。
下面参考图6描述根据本公开的实施例的离线部分的模型组网以及训练方法600。
在接收到模型训练请求后或者定时地发起模型训练任务后,方法开始步骤S601,获取系统当前日期。之后,在步骤S602,加载增量流式训练配置文件。在步骤S603,获取上一次训练的模型文件路径和日期。
在步骤S604,从HDFS拉取训练数据和测试数据。例如,可以读取两次时间之间的新增数据,并将数据分成训练和测试。例如,可以将上一次训练日期值当前日期前一天的数据作为训练数据,并且将当前日期的数据作为测试数据。其他数据的划分方法也是适用的。
在步骤S605,使用训练数据对模型进行训练,并且保存更新后的模型。
在步骤S606,对模型进行测试。模型测试可以包括与旧版模型在模型性能评价指标AUC方面进行对比。模型测试也可以包括进行离线的人工评估,例如进行抽样用户打分测试等。
在步骤S607,加载在离线验证配置。
在步骤S608处,进行在离线测试。可以提供离线测试结果,并且用于在模型上线后的在线测试结果进行比较。
在步骤S609处,更新增量流式训练配置。随后,离线模型更新过程结束。
通过方法600,可以例如每天或者每几天启动定时训练模型任务,进行离线训练和模型更新。
下面参考图7(a)和图7(b)描述根据本公开的实施例的在线部分的模型预测和用户历史向量序列更新机制。根据本公开的实施例的方法700,能够提供实时性高的在线预测方案。
在步骤S701处,获取推荐请求。在推荐结果大于一个时,这里的推荐请求也可以被称为排序请求,并且本公开不限于此。推荐请求可以由用户接口获取,用户接口模块的一个示例是rank在线请求模块。
在这里,输入可以是需要获取内容推荐的单个用户及其信息,以及多个内容项。例如,这里的内容项可以是已经经过召回步骤选取的多个内容项。例如,从含有10000个内容项的内容库中,经过召回步骤已经选出500个内容项,以供从其选择或推荐。
在步骤S702处,获取用户的历史兴趣向量。参考图7(b)给出了获取用户历史兴趣向量的一个示例。
在步骤S7021处,加载最新训练的模型。
在步骤S7022处,用最新模型计算用户历史兴趣序列的向量表示。
在步骤S7023处,缓存历史序列向量表示。
在步骤S7024处,在接收到排序请求时,从缓存中读取历史兴趣向量。
由于线上对模型预测的实时性要求比较高,所以可以将离线运行(例如,定期运行)而计算获得的用户历史序列经Transformer编码后输出的隐层向量缓存起来。如果每次请求时加载完整模型并且从头计算该步骤会导致响应慢。在这里进行离线运算的模型可以对应于前文中描述的神经网络的第一子部分(例如,对于多个历史兴趣特征的情况下,可以是多个第一子部分)。
在步骤S703处,进行静态特征抽取。静态特征可以是上文所述的用户静态特征(除了用户历史兴趣信息之外的用户信息)和内容项特征。在本步骤中,可以对这些静态特征进行嵌入层处理。
在步骤S704处,进行在线的实时预测处理。在线过程只需要将静态特征与已经离线计算好的历史兴趣序列向量进行维度拼接(concatenate),然后再进行预测。由此,可以极大地提高模型的实时响应性。
在步骤S705处,返回推荐结果。推荐结果可以是一个或多个内容项。推荐结果可以是用于向该用户推送的有序内容项列表(例如,由50个内容项组成)。列表中的内容项可以按照计算出的用户感兴趣程度(或者,作为间接反映用户感兴趣的一个示例,可以是CTR)进行降序排列。由此,可以将用户最感兴趣的内容放在最前面,增加推荐的有效性。
为了实现个性化推荐,对推荐模型或者排序模型的要求越来越高。根据本公开中描述的一些实施例,能够通过获取结构化(用户的交互行为日志)为基础,通过对结构化数据进行预处理,提取用户特征、内容项(文章)特征,以及对用户历史序列进行建模。仅利用内容项ID即直接对内容项ID进行Embedding进行建模容易引起模型的过拟合,并且对于新上架的内容项或历史信息较少的内容项,难以准确预测用户对其的兴趣。采用本公开的方法,能够提高模型泛化能力,有效地推荐用户感兴趣的内容,并且能够提高推荐内容的CTR。
此外,还可以搭建包含Transformer结构的排序模型,然后对排序模型进行训练和学习,最后生成泛化能力强的排序模型。同时,保存用户的行为序列embedding向量,提供模型的在线预测方案,给用户实时提供个性化的知识推荐。利用Transformer架构的多头自注意力机制,能够更高效地捕捉用户动态变化的兴趣,因而相对于例如只对用户历史序列中的内容项进行最大池化或者均值池化的算法而言,能够考虑不同内容项对用户的兴趣的影响程度是不一样的,进而提供更准确的推荐结果。
根据本公开的实施例的推荐方法或排序算法可以应用于馈送推荐系统以提高CTR。此外,可以理解的是,本公开给出的所有场景或者内容项的描述仅为示例,本公开提供的方案具有较强的扩展性,并且可以扩展到其他类似的内容推荐场景。
下面参照图8描述根据本公开的实施例的内容推荐装置800。内容推荐装置800可以包括兴趣计算单元801和内容输出单元802。兴趣计算单元801可以被配置成推荐基于用户的用户信息和候选内容项的内容信息,通过神经网络,生成用户对候选内容项的感兴趣数值。内容输出单元802可以被配置成响应于候选内容项的感兴趣数值满足预定条件,控制终端输出候选内容项。用户信息包括用户的历史兴趣信息,历史兴趣信息包括用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且候选内容项的内容信息包括候选内容项的第一兴趣特征的值。
兴趣计算单元801可以包括神经网络的第一子网络单元,第一子网络单元被配置成基于用户的历史兴趣信息生成用户历史兴趣特征值的序列的低维向量。第一子网络单元可以包括transformer层,transformer层被配置成对用户历史兴趣特征值的序列进行多头注意力编码以生成用户历史兴趣特征值的序列的低维向量。
兴趣计算单元801还可以包括神经网络的第二子网络单元。第二子网络单元位于第一子网络单元之后。第二子网络单元被配置成通过一个或多个隐藏层,基于用户信息的向量表示和内容信息的向量表示,生成用户对候选内容项的感兴趣数值。
兴趣计算单元801还可以包括缓存读取单元,缓存读取单元被配置成接收到对用户的推荐请求后,从缓存中读取针对用户的用户历史兴趣特征值的序列的低维向量,低维向量是由第一子网络单元预先计算的;并且第二子网络单元还可以被配置成基于用户信息、候选内容项的内容信息以及用户历史兴趣特征值的序列的低维向量,生成用户对候选内容项的感兴趣数值。第二子网络单元可以在输入端包括拼接层,拼接层用于将用户信息的向量表示和内容信息的向量表示进行拼接。
用户信息还可以包括用户的属性信息。第一兴趣特征可以是内容项的主题或话题。历史兴趣信息还可以包括用户的历史感兴趣内容项中的每个内容项的一个或多个其他兴趣特征的值,并且候选内容项的内容信息包括候选内容项的一个或多个其他兴趣特征的值,一个或多个其他兴趣特征不同于第一兴趣特征。一个或多个其他兴趣特征可以包括以下各项中的一个或多个:内容项的标题、标签和来源。候选内容项可以包括多个内容项,并且内容输出单元802还可以被配置成:按照感兴趣数值的降序,控制终端输出多个内容项中满足预定条件的内容项。用户的历史感兴趣内容项可以包括用户对其做出过正向交互行为的内容项。
神经网络可以是通过以下步骤进行训练的:获取多个用户信息与内容项信息的关联对作为样本集合,其中用户与感兴趣内容项的关联对被标记为正样本,并且其中用户与不感兴趣内容项的关联对被标记为负样本;并且使用样本集合来训练神经网络。用户信息可以包括用户的历史兴趣信息,历史兴趣信息可以包括用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且内容信息可以包括内容项的第一兴趣特征的值。
根据本公开的另一方面,还提供一种内容推荐装置,其可以包括根据本公开的实施例的训练方法训练的神经网络。
根据本公开的另一方面,还提供一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,处理器被配置为执行该计算机程序以实现根据本公开的实施例的内容推荐方法或训练方法的步骤。
根据本公开的又一方面,还提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现根据本公开的实施例的内容推荐方法或训练方法的步骤。
根据本公开的又一方面,还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现根据本公开的实施例的内容推荐方法或训练方法的步骤。
参考图9,现将描述可以作为本公开的服务器或客户端的计算机设备900的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。
计算机设备900可以包括(可能经由一个或多个接口)与总线902连接或与总线902通信的元件。例如,计算机设备900可以包括总线902、一个或多个处理器904、一个或多个输入设备906以及一个或多个输出设备908。一个或多个处理器904可以是任何类型的处理器,并且可以包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(例如特殊处理芯片)。处理器904可以对在计算机设备900内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图9中以一个处理器904为例。
输入设备906可以是能向计算机设备900输入信息的任何类型的设备。输入设备906可以接收输入的数字或字符信息,以及产生与用于内容推荐或神经网络训练的计算机设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出设备908可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。
计算机设备900还可以包括非暂时性存储设备910或者与非暂时性存储设备910连接,非暂时性存储设备可以是非暂时性的并且可以实现数据存储的任何存储设备,并且可以包括但不限于磁盘驱动器、光学存储设备、固态存储器、软盘、柔性盘、硬盘、磁带或任何其他磁介质,光盘或任何其他光学介质、ROM(只读存储器)、RAM(随机存取存储器)、高速缓冲存储器和/或任何其他存储器芯片或盒、和/或计算机可从其读取数据、指令和/或代码的任何其他介质。非暂时性存储设备910可以从接口拆卸。非暂时性存储设备910可以具有用于实现上述方法和步骤的数据/程序(包括指令)/代码/模块(例如,附图8所示的兴趣计算单元801和内容输出单元802)。
计算机设备900还可以包括通信设备912。通信设备912可以是使得能够与外部设备和/或与网络通信的任何类型的设备或系统,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信设备和/或芯片组,例如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算机设备900还可以包括工作存储器914,其可以是可以存储对处理器904的工作有用的程序(包括指令)和/或数据的任何类型的工作存储器,并且可以包括但不限于随机存取存储器和/或只读存储器设备。
软件要素(程序)可以位于工作存储器914中,包括但不限于操作系统916、一个或多个应用程序918、驱动程序和/或其他数据和代码。用于执行上述方法和步骤的指令可以包括在一个或多个应用程序918中,并且上述方法可以通过由处理器904读取和执行一个或多个应用程序918的指令来实现。软件要素(程序)的指令的可执行代码或源代码也可以从远程位置下载。
还应该理解,可以根据具体要求而进行各种变型。例如,也可以使用定制硬件,和/或可以用硬件、软件、固件、中间件、微代码,硬件描述语言或其任何组合来实现特定元件。例如,所公开的方法和设备中的一些或全部可以通过使用根据本公开的逻辑和算法,用汇编语言或硬件编程语言(诸如VERILOG,VHDL,C++)对硬件(例如,包括现场可编程门阵列(FPGA)和/或可编程逻辑阵列(PLA)的可编程逻辑电路)进行编程来实现。
还应该理解,前述方法可以通过服务器-客户端模式来实现。例如,客户端可以接收用户输入的数据并将所述数据发送到服务器。客户端也可以接收用户输入的数据,进行前述方法中的一部分处理,并将处理所得到的数据发送到服务器。服务器可以接收来自客户端的数据,并且执行前述方法或前述方法中的另一部分,并将执行结果返回给客户端。客户端可以从服务器接收到方法的执行结果,并例如可以通过输出设备呈现给用户。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机设备上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以为分布式系统的服务器,或者是结合了区块链的服务器。服务器也可以是云服务器,或者是带人工智能技术的智能云计算服务器或智能云主机。云服务器是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS,Virtual Private Server)服务中存在的管理难度大、业务扩展性弱的缺陷。
还应该理解,计算机设备900的组件可以分布在网络上。例如,可以使用一个处理器执行一些处理,而同时可以由远离该一个处理器的另一个处理器执行其他处理。计算设备900的其他组件也可以类似地分布。这样,计算机设备900可以被解释为在多个位置执行处理的分布式计算系统。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、系统和设备仅仅是示例性的实施例或示例,本公开的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (21)
1.一种内容推荐方法,包括:
基于用户信息和候选内容项的内容信息,通过神经网络,生成用户对所述候选内容项的感兴趣数值;并且
响应于所述候选内容项的所述感兴趣数值满足预定条件,控制终端输出所述候选内容项,
其中,所述用户信息包括所述用户的历史兴趣信息,所述历史兴趣信息包括所述用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且所述候选内容项的所述内容信息包括所述候选内容项的所述第一兴趣特征的值,
其中,所述神经网络包括第一子网络部分,并且所述生成用户对所述候选内容项的感兴趣数值包括由所述第一子网络部分基于所述用户的历史兴趣信息生成用户历史兴趣特征值的序列的低维向量,
其中,所述神经网络还包括位于所述第一子网络部分之后的第二子网络部分,并且所述生成用户对所述候选内容项的感兴趣数值包括由所述第二子网络部分通过一个或多个隐藏层,基于所述用户信息的向量表示和所述内容信息的向量表示,生成所述用户对所述候选内容项的感兴趣数值,
其中,生成所述用户对所述候选内容项的感兴趣数值的步骤包括基于用户信息、候选内容项的内容信息以及所述用户历史兴趣特征值的序列的低维向量,使用所述第二子网络部分,生成所述用户对所述候选内容项的感兴趣数值,
其中,所述第二子网络部分在输入端包括拼接层,并且基于所述用户信息的向量表示和所述内容信息的向量表示生成所述用户对所述候选内容项的感兴趣数值包括:通过所述拼接层,将所述用户信息的向量表示和所述内容信息的向量表示进行拼接。
2.根据权利要求1所述的方法,其中,所述第一子网络部分包括transformer层,并且基于所述用户的历史兴趣信息生成用户历史兴趣特征值的序列的低维向量包括:使用所述transformer层对用户历史兴趣特征值的序列进行多头注意力编码。
3.根据权利要求1所述的方法,其中,生成所述用户对所述候选内容项的感兴趣数值的步骤还包括:
在接收到对所述用户的推荐请求后,从缓存中读取针对所述用户的用户历史兴趣特征值的序列的所述低维向量,所述低维向量是由所述第一子网络部分预先计算的。
4.根据权利要求1-3中任一项所述的方法,其中,所述用户信息还包括所述用户的属性信息。
5.根据权利要求1-3中任一项所述的方法,其中,所述第一兴趣特征是内容项的主题或话题。
6.根据权利要求1-3中任一项所述的方法,其中,所述历史兴趣信息还包括所述用户的历史感兴趣内容项中的每个内容项的一个或多个其他兴趣特征的值,并且所述候选内容项的所述内容信息包括所述候选内容项的所述一个或多个其他兴趣特征的值,所述一个或多个其他兴趣特征不同于所述第一兴趣特征,并且所述一个或多个其他兴趣特征包括以下各项中的一个或多个:内容项的标题、标签和来源。
7.根据权利要求1-3中任一项所述的方法,其中,所述候选内容项包括多个内容项,并且其中,响应于所述候选内容项的所述感兴趣数值满足预定条件控制终端输出所述候选内容项包括:
按照感兴趣数值的降序,控制终端输出所述多个内容项中满足预定条件的内容项。
8.根据权利要求1-3中任一项所述的方法,其中,所述用户的历史感兴趣内容项包括所述用户对其做出过正向交互行为的内容项。
9.根据权利要求1-3中任一项所述的方法,其中,所述神经网络是通过以下步骤进行训练的:
获取多个用户信息与内容项信息的关联对作为样本集合,其中用户与感兴趣内容项的关联对被标记为正样本,并且其中用户与不感兴趣内容项的关联对被标记为负样本;并且
使用所述样本集合来训练所述神经网络,
其中,所述多个用户信息中的每个用户信息包括用户的历史兴趣信息,所述历史兴趣信息包括所述用户的历史感兴趣内容项中的每个内容项的所述第一兴趣特征的值,并且所述内容信息包括内容项的所述第一兴趣特征的值。
10.一种内容推荐装置,包括:
兴趣计算单元,所述兴趣计算单元包括神经网络,所述兴趣计算单元被配置成推荐基于用户信息和候选内容项的内容信息,通过所述神经网络,生成用户对所述候选内容项的感兴趣数值;以及
内容输出单元,所述内容输出单元被配置成响应于所述候选内容项的所述感兴趣数值满足预定条件,控制终端输出所述候选内容项,
其中,所述用户信息包括所述用户的历史兴趣信息,所述历史兴趣信息包括所述用户的历史感兴趣内容项中的每个内容项的第一兴趣特征的值,并且所述候选内容项的所述内容信息包括所述候选内容项的所述第一兴趣特征的值,
其中,所述兴趣计算单元包括所述神经网络的第一子网络单元,所述第一子网络单元被配置成基于所述用户的历史兴趣信息生成用户历史兴趣特征值的序列的低维向量,
其中,所述兴趣计算单元还包括所述神经网络的第二子网络单元,所述第二子网络单元位于所述第一子网络单元之后,并且所述第二子网络单元被配置成通过一个或多个隐藏层,基于所述用户信息的向量表示和所述内容信息的向量表示,生成所述用户对所述候选内容项的感兴趣数值,
其中,所述第二子网络单元还被配置成:基于用户信息、候选内容项的内容信息以及所述用户历史兴趣特征值的序列的低维向量,生成所述用户对所述候选内容项的感兴趣数值,并且
其中,所述第二子网络单元在输入端包括拼接层,所述拼接层用于将所述用户信息的向量表示和所述内容信息的向量表示进行拼接。
11.根据权利要求10所述的装置,其中,所述第一子网络单元包括transformer层,所述transformer层被配置成对用户历史兴趣特征值的序列进行多头注意力编码以生成用户历史兴趣特征值的序列的低维向量。
12.根据权利要求10所述的装置,其中,所述兴趣计算单元还包括缓存读取单元,所述缓存读取单元被配置成接收到对所述用户的推荐请求后,从缓存中读取针对所述用户的用户历史兴趣特征值的序列的所述低维向量,所述低维向量是由所述第一子网络单元预先计算的。
13.根据权利要求10-12中任一项所述的装置,其中,所述用户信息还包括所述用户的属性信息。
14.根据权利要求10-12中任一项所述的装置,其中,所述第一兴趣特征是内容项的主题或话题。
15.根据权利要求10-12中任一项所述的装置,其中,所述历史兴趣信息还包括所述用户的历史感兴趣内容项中的每个内容项的一个或多个其他兴趣特征的值,并且所述候选内容项的所述内容信息包括所述候选内容项的所述一个或多个其他兴趣特征的值,所述一个或多个其他兴趣特征不同于所述第一兴趣特征,并且所述一个或多个其他兴趣特征包括以下各项中的一个或多个:内容项的标题、标签和来源。
16.根据权利要求10-12中任一项所述的装置,其中,所述候选内容项包括多个内容项,并且其中,所述内容输出单元还被配置成:
按照感兴趣数值的降序,控制终端输出所述多个内容项中满足预定条件的内容项。
17.根据权利要求10-12中任一项所述的装置,其中,所述用户的历史感兴趣内容项包括所述用户对其做出过正向交互行为的内容项。
18.根据权利要求10-12中任一项所述的装置,其中,所述神经网络是通过以下步骤进行训练的:
获取多个用户信息与内容项信息的关联对作为样本集合,其中用户与感兴趣内容项的关联对被标记为正样本,并且其中用户与不感兴趣内容项的关联对被标记为负样本;并且
使用所述样本集合来训练所述神经网络,
其中,所述用户信息包括用户的历史兴趣信息,所述历史兴趣信息包括所述用户的历史感兴趣内容项中的每个内容项的所述第一兴趣特征的值,并且所述内容信息包括内容项的所述第一兴趣特征的值。
19.一种计算设备,包括:
处理器;以及
存储程序的存储器,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-9中任一项所述的内容推荐方法。
20.一种存储程序的计算机可读存储介质,所述程序包括指令,所述指令在由电子设备的处理器执行时,指示所述电子设备执行根据权利要求1-9中任一项所述的内容推荐方法。
21.一种计算机程序产品,包括计算机指令,所述计算机指令在被处理器执行时实现根据权利要求1-9中任一项所述的内容推荐方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011455524.1A CN112528147B (zh) | 2020-12-10 | 2020-12-10 | 内容推荐方法和装置、训练方法、计算设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011455524.1A CN112528147B (zh) | 2020-12-10 | 2020-12-10 | 内容推荐方法和装置、训练方法、计算设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112528147A CN112528147A (zh) | 2021-03-19 |
CN112528147B true CN112528147B (zh) | 2024-04-30 |
Family
ID=74999001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011455524.1A Active CN112528147B (zh) | 2020-12-10 | 2020-12-10 | 内容推荐方法和装置、训练方法、计算设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112528147B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112862007B (zh) * | 2021-03-29 | 2022-12-13 | 山东大学 | 基于用户兴趣编辑的商品序列推荐方法及系统 |
CN113158057A (zh) * | 2021-04-28 | 2021-07-23 | 平安科技(深圳)有限公司 | 佛经推荐处理、装置、计算机设备及存储介质 |
CN113378045B (zh) * | 2021-06-08 | 2024-02-09 | 深圳Tcl新技术有限公司 | 数字内容分发方法、装置及存储介质 |
CN113704509B (zh) * | 2021-07-30 | 2024-01-09 | 北京达佳互联信息技术有限公司 | 多媒体推荐方法、装置、电子设备及存储介质 |
CN114329201B (zh) * | 2021-12-27 | 2023-08-11 | 北京百度网讯科技有限公司 | 深度学习模型的训练方法、内容推荐方法和装置 |
CN114722238B (zh) * | 2022-05-13 | 2022-09-30 | 北京达佳互联信息技术有限公司 | 视频推荐方法、装置、电子设备、存储介质及程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3340073A1 (en) * | 2016-12-22 | 2018-06-27 | Thomson Licensing | Systems and methods for processing of user content interaction |
CN110287412A (zh) * | 2019-06-10 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 内容推荐方法、推荐模型生成方法、设备、和存储介质 |
CN111159564A (zh) * | 2019-12-31 | 2020-05-15 | 联想(北京)有限公司 | 信息推荐方法、装置、存储介质及计算机设备 |
CN111444428A (zh) * | 2020-03-27 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 基于人工智能的信息推荐方法、装置、电子设备及存储介质 |
CN111680217A (zh) * | 2020-05-27 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 内容推荐方法、装置、设备及存储介质 |
CN112035743A (zh) * | 2020-08-28 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 数据推荐方法、装置、计算机设备以及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8589378B2 (en) * | 2010-10-11 | 2013-11-19 | Yahoo! Inc. | Topic-oriented diversified item recommendation |
-
2020
- 2020-12-10 CN CN202011455524.1A patent/CN112528147B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3340073A1 (en) * | 2016-12-22 | 2018-06-27 | Thomson Licensing | Systems and methods for processing of user content interaction |
CN110287412A (zh) * | 2019-06-10 | 2019-09-27 | 腾讯科技(深圳)有限公司 | 内容推荐方法、推荐模型生成方法、设备、和存储介质 |
CN111159564A (zh) * | 2019-12-31 | 2020-05-15 | 联想(北京)有限公司 | 信息推荐方法、装置、存储介质及计算机设备 |
CN111444428A (zh) * | 2020-03-27 | 2020-07-24 | 腾讯科技(深圳)有限公司 | 基于人工智能的信息推荐方法、装置、电子设备及存储介质 |
CN111680217A (zh) * | 2020-05-27 | 2020-09-18 | 腾讯科技(深圳)有限公司 | 内容推荐方法、装置、设备及存储介质 |
CN112035743A (zh) * | 2020-08-28 | 2020-12-04 | 腾讯科技(深圳)有限公司 | 数据推荐方法、装置、计算机设备以及存储介质 |
Non-Patent Citations (2)
Title |
---|
WGIN: A Session-Based Recommendation Model Considering the Repeated Link Effect;Zhenyu Yang等;《IEEE Access 》;20201201;全文 * |
一种融合注意力和记忆网络的序列推荐算法;陈细玉;林穗;;信息技术与网络安全;20200510(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112528147A (zh) | 2021-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112528147B (zh) | 内容推荐方法和装置、训练方法、计算设备和存储介质 | |
CN111444428B (zh) | 基于人工智能的信息推荐方法、装置、电子设备及存储介质 | |
JP7206288B2 (ja) | 音楽推薦方法、装置、コンピューティング機器及び媒体 | |
CN110781321B (zh) | 一种多媒体内容推荐方法及装置 | |
JP2021108183A (ja) | 意図推薦方法、装置、機器及び記憶媒体 | |
US10600004B1 (en) | Machine-learning based outcome optimization | |
US10977871B2 (en) | Delivery of a time-dependent virtual reality environment in a computing system | |
US10459975B1 (en) | Method and system for creating an automatic video summary | |
CN106845644B (zh) | 一种通过相互关系学习用户及移动应用的联系的异构网络 | |
CN113811884A (zh) | 认知视频和音频的检索聚合 | |
US11397873B2 (en) | Enhanced processing for communication workflows using machine-learning techniques | |
US11201844B2 (en) | Methods and systems for managing multiple topic electronic communications | |
JP2021525433A (ja) | 検索/作成されたデジタルメディアファイルに基づく潜在的関連のあるトピックの予測 | |
CN113705299A (zh) | 一种视频识别的方法、装置及存储介质 | |
US10621137B2 (en) | Architecture for predicting network access probability of data files accessible over a computer network | |
US11126682B1 (en) | Hyperlink based multimedia processing | |
US10958958B2 (en) | Intelligent updating of media data in a computing environment | |
CN112541120B (zh) | 推荐评论生成方法、装置、设备和介质 | |
CN115885297A (zh) | 可区分用户-项目协同聚类 | |
CN113821654A (zh) | 一种多媒体数据推荐方法、装置、电子设备及存储介质 | |
CN112040339A (zh) | 一种视频数据的制作方法、装置、计算机设备和存储介质 | |
US20210264480A1 (en) | Text processing based interface accelerating | |
US11501059B2 (en) | Methods and systems for auto-filling fields of electronic documents | |
CN114817692A (zh) | 确定推荐对象的方法、装置和设备及计算机存储介质 | |
CN116628345B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |