CN108875090A - 一种歌曲推荐方法、装置和存储介质 - Google Patents
一种歌曲推荐方法、装置和存储介质 Download PDFInfo
- Publication number
- CN108875090A CN108875090A CN201810891335.5A CN201810891335A CN108875090A CN 108875090 A CN108875090 A CN 108875090A CN 201810891335 A CN201810891335 A CN 201810891335A CN 108875090 A CN108875090 A CN 108875090A
- Authority
- CN
- China
- Prior art keywords
- node
- song
- term vector
- user
- new user
- 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.)
- Granted
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种歌曲推荐方法、装置和存储介质;本发明实施例可以获取用户的听歌行为数据;根据用户的听歌行为数据构建图网络;根据图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量;当存在新用户的听歌行为数据时,根据新用户的听歌行为数据对图网络进行更新,得到更新后图网络,该更新后图网络包括新用户对应的新用户节点;基于训练后的词向量模型和更新后图网络获取新用户节点的词向量;根据新用户节点的词向量、歌曲节点的词向量向新用户推荐歌曲;该方案可以对大规模用户数据进行有效处理,提升处理速度,进而提高了歌曲推荐的效率和实时性。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种歌曲推荐方法、装置和存储介质。
背景技术
随着网络的迅猛发展,人们的日常生活越来越离不开网络,通过网络听歌、看视频以及看新闻等等以及成为了人们的日常生活习惯。以歌曲为例,随着新闻数据的爆炸性增长,用户越来越难以从众多歌曲中挑选自己喜欢的歌曲,因此,给用户主动推荐感兴趣的歌曲,俨然成为了一种可行且高效的方案。
目前歌曲的推荐算法主要包括:协同过滤算法、矩阵分解算法;其中,基于用户的协同过滤算法是依据相似的用户有着相似的兴趣,为用户推荐相似用户听过的歌曲。矩阵分解算法是通过将用户和歌曲映射到一个低维空间,计算两者之间的距离来为用户推荐歌曲。矩阵分解技术是对用户-歌曲的行为矩阵进行有效的还原,得到用户和歌曲的向量化表示。
然而,在面临大规模的用户数据时,采用目前的歌曲推荐算法,机器无法对庞大的数据进行有效处理,处理速度较慢,降低了歌曲推荐的效率和实时性。比如,采用矩阵分解算法时,如果面对一个数亿行、数万列的矩阵,机器往往无法对其进行奇异值分解(SVD,Singular Value Decomposition)。虽然隐语义模型(LFM,Latent factor model)可以在某种程度上对矩阵进行分解,但是其处理速度较慢,并且当新的用户数据产生时,需要对矩阵进行重新分解,不能满足实时计算的需求。
发明内容
本发明实施例提供一种歌曲推荐方法、装置和存储介质,可以提升歌曲推荐的实时性和效率。
本发明实施例提供一种歌曲推荐方法,包括:
获取用户的听歌行为数据;
根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;
根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;
当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;
基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;
根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。
相应的,本发明实施例还提供一种歌曲推荐装置,包括:
数据获取单元,用于获取用户的听歌行为数据;
网络构建单元,用于根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;
训练单元,用于根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;
更新单元,用于当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;
向量获取单元,用于基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;
推荐单元,用于根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。
此外,本发明实施例还提供一种存储介质,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本发明实施例提供的任一种歌曲推荐方法中的步骤。
本发明实施例可以获取用户的听歌行为数据;根据用户的听歌行为数据构建图网络,该图网络包括相互连接的用户节点和歌曲节点,歌曲节点对应歌曲,用户节点对应用户;根据图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量;当存在新用户的听歌行为数据时,根据新用户的听歌行为数据对图网络进行更新,得到更新后图网络,更新后图网络包括新用户对应的新用户节点;基于训练后的词向量模型和更新后图网络获取新用户节点的词向量;根据新用户节点的词向量、歌曲节点的词向量向新用户推荐歌曲;该方案可以对大规模用户数据进行有效处理,提升处理速度,进而提高了歌曲推荐的效率和实时性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本发明实施例提供的歌曲推荐系统的场景示意图;
图1b是本发明实施例提供的歌曲推荐方法的流程图;
图1c是本发明实施例提供的图网络的结构示意图;
图1d是本发明实施例提供的skip-gram模型的结构示意图;
图1e是本发明实施例提供的基于当前词预测上下词向量的示意图;
图1f是本发明实施例提供的新节点添加示意图;
图1g是本发明实施例提供的节点Ui的上下文节点序列示意图;
图2是本发明实施例提供的歌曲推荐方法的另一流程图;
图3a是本发明实施例提供的歌曲推荐装置的第一种结构示意图;
图3b是本发明实施例提供的歌曲推荐装置的第二种结构示意图;
图3c是本发明实施例提供的歌曲推荐装置的第三种结构示意图;
图3d是本发明实施例提供的歌曲推荐装置的第四种结构示意图;
图4是本发明实施例提供的网络设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供一种歌曲推荐方法、装置和存储介质。
本发明实施例提供了一种歌曲推荐系统,包括本发明实施例任一提供的歌曲推荐装置,该歌曲推荐装置具体可以集成在服务器等网络设备中。
此外,该歌曲推荐系统还可以包括其他设备,比如终端,该终端可以包括:手机、平板电脑、笔记本电脑或个人计算机(PC,Personal Computer)等。
例如,参考图1a,歌曲推荐系统,包括终端和服务器,终端与服务器通过网络连接。其中,网络中包括路由器、网关等网络实体。
其中,终端可以向服务器发送或上报用户的听歌行为数据等,比如,终端可以检测用户使用音乐客户端过程中的听歌行为数据,并上报给服务器。其中,听歌行为数据可以包括:用户喜欢的歌曲等等。
服务器可以获取用户的听歌行为数据;根据用户的听歌行为数据构建图网络,该图网络包括相互连接的用户节点和歌曲节点,歌曲节点对应歌曲,用户节点对应用户;根据图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量;当存在新用户的听歌行为数据时,根据新用户的听歌行为数据对图网络进行更新,得到更新后图网络,更新后图网络包括新用户对应的新用户节点;基于训练后的词向量模型和更新后图网络获取新用户节点的词向量;根据新用户节点的词向量、歌曲节点的词向量向新用户推荐歌曲。
比如,终端可以根据所述新用户节点的词向量、所述歌曲节点的词向量获取新用户节点与歌曲节点之间的相似度,并基于相似度向新用户推荐歌曲,譬如可以向所述新用户的终端发送相应歌曲推荐信息等等。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
本实施例将从歌曲推荐装置的角度进行描述,该歌曲推荐装置具体可以集成在网络设备,比如,服务器等设备。
如图1b所示,该歌曲推荐方法的具体流程可以如下:
101、获取用户的听歌行为数据。
其中,听歌行为数据为用户在历史时间段内的听歌行为数据,比如可指当前时刻和当前时刻之前且在阈值时间范围内的听歌行为数据。
该听歌行为数据可以包括:用户在历史时间段内的听歌行为所对应的歌曲的歌曲信息;也即包括用户的历史听歌行为(如最近历史听歌行为)对应的歌曲的歌曲信息,用于反映用户的最近听歌行为。例如,该听歌行为数据可以包括用户当前时刻正在听的歌曲、最近听过的歌曲、最近收藏的歌曲或最近下载的歌曲等歌曲的歌曲信息。
其中,歌曲信息可以包括歌曲属性、播放时长、听歌操作信息等等;歌曲属性可以包括歌曲名称、歌手信息、所属专辑信息或者所属歌曲流派信息等,歌曲流派可以包括抒情、摇滚、流行、轻音乐等流派。播放时长是指用户收听歌曲的时长。听歌操作信息用于指示针对歌曲的听歌操作,该听歌操作可以为收藏操作、下载操作、切歌操作或删除操作等。
本发明实施例中,可以获取多个用户的听歌行为数据,比如,获取用户U0、U1、……Un的听歌行为数据。
在一实施例中,在面对大规模用户数据(亿级别的用户群体数据)时,可以先选择一部分用户的听歌行为数据构建图网络。比如,步骤“获取用户的听歌行为数据”可以包括:从用户数据集合中选择相应数量用户的听歌行为数据;其中,用户数据集合包括多个用户的听歌行为数据。其中,选择的用户数量可以根据实际需求设定,比如,几万、几十万等等。
例如,可以从亿级别用户的听歌行为数据中选择数万用户的听歌行为数据。
其中,用户的听歌行为数据可以由终端上报,比如,终端可以检测用户的听歌行为数据,并上报给服务器,这样服务器便可以收集到各个用户的听歌行为数据。
102、根据用户的听歌行为数据构建图网络,该图网络包括相互连接的用户节点和歌曲节点,歌曲节点对应歌曲,用户节点对应用户。
比如,可以根据多个用户的听歌行为数据构建图网络。
具体地,本发明实施例可以基于图模型(graph-based model)将用户的听歌行为数据表示图形式,即图网络。
其中,图网络可以包括用户节点、歌曲节点,用户节点与歌曲节点之间的连线;用户节点表示一个用户,歌曲节点表示一首歌曲,用户节点与歌曲节点之间的连线表示用户节点对应的用户喜欢歌曲节点对应的歌曲。
例如,参考图1c,在从数据库中选择若干用户的听歌行为数据,并基于图模型和选择的听歌行为数据构建图网络。其中,图网络中节点Si表示歌曲,节点Uj表示用户,歌曲节点Si和用户Uj节点之间的连线表示用户Uj喜欢歌曲Si。
在一实施例中,在构建图网络时,具体地,可以先获取用户听歌行为对应的歌曲信息和听歌操作信息,根据歌曲信息生成相应的歌曲节点和用户节点,根据操作信息根据听歌操作信息连接歌曲节点和用户节点。
103、根据图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量。
在构建图网络之后,可以将图网络中的节点作为一个词,这样便可以基于图网络中的节点对预设的词向量模型进行训练。
比如,可以从图网络中选择一些节点对词向量模型进行训练,其中,节点的选择方式可以有多种;例如,在一实施例中,可以通过对随机游走方式可以从图网络中选择相应的节点,采用选择的节点对词向量模型进行训练。
具体地,步骤“根据图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量”,可以包括:
对图网络中的节点进行随机游走,得到节点序列;
基于节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量。。
比如,可以在图网络中随机选择一个节点作为起始节点,并从起始节点开始对图网络中的节点进行随机游走,得到随机游走路径;选择随机游走路径上的节点,得到节点序列。
本发明实施例中,可以对图网络中节点进行随机游走(如通过转移矩阵在网络节点中游走),可以产生大量的节点序列。
比如,参考图1c,可以以节点U0为起始节点进行随机游走,可以得到节点序列(U0、S3、U1、S2)、(U0、S3、U1、S4、U3、S12)……等等。
在得到节点序列后,本发明实施例中可以基于节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量。
本发明实施例可以将图网络中的节点作为一个词,通过对图中的节点进行随机游走得到大量的节点序列(即词序列),然后,通过该节点序列对词向量模型进行训练,最终得到训练后的词向量模型、每个节点(如用户节点、歌曲节点)的词向量。
其中,词向量模型可以为用于生成词向量的模型,也即将一个词表示为一个向量,比如,对词向量模型输入一个词,该词向量模型便可以输出该词的向量表达,是自然语言处理中的重要技术。该词向量模型可以为基于神经网络的词向量模型;比如,该词向量模型可以包括:Word2vec等等。
其中,Word2vec可以将词映射到一个低维的向量空间中,通过计算两个词之间的距离来得到词之间的相似度。Word2vec模型类型可以有多种,比如,可以包括CBOW(Continuous Bag of Words,词袋)模型、skip-gram模型,等等。
其中,CBOW是给定上下文词来预测输入词向量。其中,skip-gram模型为通过当前词预测上下文词的模型,比如,skip-gram模型的输入是一个单词wi,它的输出是wi的上下文wi-c、……wi-2、wi-1、wi+1、wi+2、……wi+c;其中,上下文的窗口大小为c可以根据实际需求设定。举个例子,这里有个句子“I drive my car to the store”。如果把“car”作为训练输入数据,单词组{“I”,“drive”,“my”,“to”,“the”,“store”}就是输出。
比如,参考图1d,skip-gram模型可以包括:输入层(Input layer)、隐藏层(Hiddenlayer)以及输出层(Output layer);每层中包括多个神经元。
在图1d中,输入向量x代表某个单词的one-hot编码,对应的输出向量{y1,…,yC}。输入层与隐藏层之间的权重矩阵W的第i行代表词汇表中第i个单词的权重。
权重矩阵W就是需要学习或训练得到的目标(同W′),因为这个权重矩阵包含了词汇表中所有单词的权重信息。上述模型中,每个输出单词向量也有个N×V维的输出向量W′。最后模型还有N个结点的隐藏层,我们可以发现隐藏层节点hi的输入就是输入层输入的加权求和。因此由于输入向量x是one-hot编码,那么只有向量中的非零元素才能对隐藏层产生输入。
在自然语言处理中,由于word2vec的输入是文本内容,或者说是由词组成的一系列序列,文本中词只有前后关系。word2vec是通过词共现来挖掘词的内在含义,拥有相似上下文的词有着相似的语义。但是,当面对一个图网络时,网络中节点的关系错综复杂;如何将word2vec应用其中呢?
本发明实施例可以将图网络中的节点看做一个词,将游走得到的节点序列看做为一个词序列,这样便可以采用word2vec来获取每个节点的词向量,即向量化表示。
具体地,本发明实施例可以对节点序列进行采用,得到节点的上下文节点对,然后,根据节点的上文节点对词向量模型如word2vec模型进行训练。
其中,节点的上下文节点对相当于词的上文词对,包括:节点及其周围节点;比如,以滑动窗口大小为2为例,节点U0的上下文节点对可以包括(S3、U0)、(S3、U1)等等。
在一实施例中,为了提升词向量预测的准确性,可以对节点序列进行正负采用,得到节点的正负例节点对,然基于正负例节点对词向量模型如word2vec模型进行训练。也即,步骤“基于节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量”,可以包括:
对节点序列进行正、负采样,得到样本节点的样本上下文节点对,样本上下文节点对包括样本节点的正例节点对、和/或负例节点对;
根据样本上下文节点对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量。
在一实施例中,步骤“根据样本上下文节点对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量”,可以包括:
根据预设的词向量模型预测样本节点的上下文节点,得到预测上下文节点对;
采用梯度下降算法对预测上下文节点对和样本上下文节点对进行收敛,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量。
下面以Skip-Gram模型为例,来介绍词向量模型的训练,如下:
(1)、对节点序列进行正、负采样,得到样本节点的样本上下文节点对。
在通过对网络中节点进行随机游走得到节点序列,此时,可以将节点序列看作是一个词序列,通过对节点序列正采样,得到节点的正例节点对(即正例pair对);通过对节点序列负采用,可以得到节点的负例节点对(即负例pair对)。
其中,正例节点对包括样本节点及其周围的正例节点,负例节点对包括样本节点及其负例节点。正例节点指的是样本节点的上下文节点,而负例节点可以指的是样本节点的非上下文节点。
其中,在采样时可以通过一个固定大小的滑动窗口来对节点序列进行正、负采样;该滑动窗口的大小可以根据实际需求设定,比如,可以为3等。
其中,样本节点可以为节点序列中的一个节点,通过采样可以节点序列中每个节点的上下文节点对。
(2)、根据预设的词向量模型预测样本节点的上下文节点,得到预测上下文节点对。
比如,可以将样本节点输入至Skip-Gram模型的输入层,Skip-Gram模型中的隐藏层将预测样本节点的上下文节点,得到预测上下文节点,此外,Skip-Gram模型中的输出层将会输出预测的上下文节点的词向量。
(3)、采用梯度下降算法对预测上下文节点对和样本上下文节点对进行收敛。
具体地,可以采用梯度下降算法定义的预设损失函数对预测上下文节点对和样本上下文节点对进行收敛。
本发明实施例可以采用梯度下降算法来降低预测值(即预测上下文节点对)于真实值(即样本上下文节点对)之间的误差,进行不断的训练,以调整模型参数如权重等和对各节点的词向量进行不断更新,最终得到训练后的词向量模型、以及网络中每个节点(用户节点、歌曲节点)的词向量。
参考图1e,Skip-Gram的训练过程是通过当前词来预测其周围的词。直白一点,即获取某个词周围的词与当前词组成正例pair对,通过负采样来生成负例pair对。然后,将样本词输入至Skip-Gram模型输出预测该样本词的上下文词,得到预测上下文词对;通过梯度下降算法对预测上下文词与正负例来pair对进行收敛,以更新词向量及权重。
如图1e所示,当前词为wi,其周围的词(上下文)是通过一个固定大小的滑动窗口来确定(例如滑动窗口大小为3),用Context(w)来表示,NEG(w)表示对词w进行负采样,v(w)表示词向量,θ是模型的参数。
在图1e中,可以基于预定大小的滑动窗口对节点序列进行采样,得到大量的正例pair对、负例pair对;采用大量的正例pair对、负例pair对对Skip-Gram模型进行不断地训练,以调整Skip-Gram模型中的权重,和更新每个词(即节点)的词向量,最终可以得到训练后的Skip-Gram模型,以及每个词(即节点)的词向量即向量化表示。
通过上述训练可以得到训练后的词向量模型如训练后的word2vec模型如Skip-Gram模型,以及图网络中每个节点的词向量。
104、当存在新用户的听歌行为数据时,根据新用户的听歌行为数据对图网络进行更新,得到更新后图网络,该更新后图网络包括新用户对应的新用户节点。
其中,新用户的听歌行为数据可以为区别步骤101中获取的用户的听歌行为数据,比如,可以为用户数据集合中未被选择的其他用户的听歌行为数据,或者用户数据集合中新加入的用户的听歌行为数据。
该新用户是现对于当前构建图网络所有用户来说的,例如,当用户数据集合中添加了新用户的听歌行为数据时,那么此时,在图网络中添加该新用户的新用户节点。
比如,在面临大规模用户数据的情况下,可以先选择一部分用户的行为数据构建图网络,并且采用上述介绍的方式得到训练后的词向量模型、以及每个节点的词向量即向量化表示。
对于未选择的用户可以看作为新用户,此时,可以基于新用户的听歌行为数据对图网络进行更新,比如,通过在图网络中添加新的用户节点。
例如,对于亿级别的用户群体,可以先选择部分用户的听歌行为数据构建图网络,并基于上述介绍的方式对此线路模型进行训练,得到图网络中每个节点的向量和训练后的词向量模型。
然后,对于其他未选择的用户(相对于前述选择的用户为新用户),可以基于新用户的听歌行为数据对图网络进行更新,比如,通过在图网络中添加新的用户节点。
在一实施例中,步骤“根据新用户的听歌行为数据对图网络进行更新”,可以包括:
在图网络中添加新用户对应的新用户节点;
根据新用户的听歌行为数据将新用户节点与相应的歌曲节点进行连接。
比如,在一实施例中,如果检测到新用户的听歌行为数据,那么在当前图网络中添加新用户的新用户节点,并且可以根据新的听歌行为数据将新用户节点与相应的歌曲节点进行连接。
例如,参考图1f,当检测到新用户i的听歌行为数据,可以在图网络中添加新用户节点Ui,然后,根据新的听歌行为数据将新用户节点Ui与歌曲节点S3、S4、S0分别连接;也即,将用户Ui与歌曲的交互行为作为一条边连接图网络中的用户与歌曲节点。
105、基于训练后的词向量模型和更新后图网络获取新用户节点的词向量。
本发明实施例在经过上述处理后,得到训练后的词向量模型如训练后的word2vec模型;当存在新用户的听歌行为数据时,可以对图网络进行更新,比如,添加新用户节点,并与歌曲节点连接;然后,可以基于训练后的词向量模型如word2vec模型和更新后图网络来预测新用户节点的词向量。
比如,在一实施例中,在得到训练后的word2vec模型如Skip-Gram模型之后,可以基于当前词的“上下文”词反向得到当前词的向量化表示,因为,当前词的上下文词的上下文词也即当前词,比如,假设A是B的上下文词,那么B同时也是A的上下文词。
由于本发明实施例可以将节点看做一个词,那么为了获取新用户节点的词向量,就是要获取新用户节点的上下文节点,通过上下文节点和训练后的word2vec模型如Skip-Gram模型预测当前节点即新用户节点的词向量。
比如,步骤“基于训练后的词向量模型和更新后图网络获取新用户节点的词向量”,可以包括:
以新用户节点为起始点对更新后图网络中的节点进行随机游走,得到新用户节点对应的上下文节点序列;
根据训练后的词向量模型和上下文节点序列预测新用户节点的词向量。
其中,上下文节点序列相当于自然语言处理中的上下文词序列,新用户节点对应当前词,该序列中每个节点对应当前词(即新用户节点)的上下文词。
比如,在一实施例中,如果检测到新的听歌行为数据(新用户的听歌行为数据,或者原始用户的新听歌行为数据),那么可以根据新的听歌行为数据将新用户节点与相应的歌曲节点进行连接。
例如,参考图1f,当检测到新用户的听歌行为数据,可以在图网络中添加新用户节点Ui,然后,根据新的听歌行为数据将新用户节点Ui与歌曲节点S3、S4、S0分别连接;也即,将用户Ui与歌曲的交互行为作为一条边连接图网络中的用户与歌曲节点。
在图网络中添加新用户节点、以及连接节点更新网络之后,可以以新用户节点为起点对更新后图网络中的节点进行随机游走,得到新用户节点的上下文节点序列。比如,参考图1f,在将新用户节点Ui与歌曲节点S3、S4、S0分别连接之后,可以以新用户节点Ui为起点进行随机游走,得到新用户Ui的“上下文节点序列”context(Ui){S0,U3,S4,U2,S3,U1,S2,U1,……},如图1g所示。该“上下文节点序列”即为当前词(新用户节点Ui)的上下文词序列。
在通过随机游走后得到上下文节点序列后,可以基于训练后的词向量如word2vec模型等预测新用户节点的词向量。
具体地,预测新用户节点的词向量过程如下:
(1)、从上下文节点序列中选择一个目标节点。
比如,可以从上下文节点序列中随机选择一个节点作为目标节点;比如,可以从新用户Ui的“上下文节点序列”{S0,U3,S4,U2,S3,U1,S2,U1,……}选择节点S0,作为目标节点。
(2)、根据训练后的词向量模型预测目标节点上下文节点词向量,得到新用户节点的预测词向量。
以Skip-Gram模型为,具体地,在输入层输入目标节点,在隐藏层预测目标节点的上下文节点,在输出层将上下文节点转换成相应的词向量。
比如,可以将节点S0输入至Skip-Gram模型,Skip-Gram模型会输出节点S0的上下文节点的词向量,比如,U3的词向量、U1的词向量、S2的词向量……Ui的词向量(由于输入的是Ui的上下文,基于Skip-Gram模型必然会输出Ui的词向量);此时,便可以得到新用户节点的预测词向量。
(3)、根据新用户节点的预测词向量更新新用户节点的当前词向量。
比如,可以将新用户节点的预测词向量作为新用户节点的当前词向量。例如,将Ui的预测词向量作为Ui的当前词向量。
其中,在初始阶段新用户节点的当前词向量为零。
(4)从上下文节点序列中选择一个节点对目标节点更新,并返回执行(2)步骤,直至上下文节点序列中所有节点均被选择。
比如,可以从新用户Ui的“上下文节点序列”{S0,U3,S4,U2,S3,U1,S2,U1,……}选择节点U3,对目标节点更新,此时,目标节点即为节点U3。然后,返回步骤(2)预测U3的上下文节点的词向量,这样又会得到Ui的预测词向量,此时,便可以基于该预测词向量对Ui当前的词向量进行更新。依次类推通过不断地从上下文节点序列中选择新的节点更新目标节点,便会不断地对Ui的词向量进行更新,最终便得到Ui的词向量。
106、根据新用户节点的词向量、歌曲节点的词向量向新用户推荐歌曲。
经过上述步骤之后便可以得到新用户节点的词向量,这样便可以得到当前图网络中每个节点的词向量;之后本发明实施例可以根据新用户节点的词向量、歌曲节点的词向量,向新用户推荐歌曲。
经过上述方式可以得到新用户节点的词向量,比如,新用户节点Ui的词向量,此时,可以根据新用户节点Ui的词向量,以及网络中每个歌曲节点的词向量,来实现向新用户推荐歌曲。
比如,在一实施例中,为了提升歌曲推荐的准确性,可以计算新用户节点与每个歌曲节点之间的相似度来实现歌曲推荐。比如,步骤“根据新用户节点的词向量、歌曲节点的词向量,向新用户推荐歌曲”,可以包括:
根据新用户节点的向量以及歌曲节点的向量,获取新用户节点与歌曲节点之间的相似度;
根据相似度从歌曲节点对应的歌曲中选择相应的目标歌曲,并向新用户推荐目标歌曲。
其中,新用户节点与歌曲节点之间的相似度可以为余弦相似度,余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。相比距离度量,余弦相似度更加注重两个向量在方向上的差异,而非距离或长度上。
此时,可以根据新用户节点的向量以及歌曲节点的向量,获取新用户节点与歌曲节点之间的余弦距离,然后,根据余弦距离向新用户推荐歌曲。
在一实施例中,可以根据新用户节点与歌曲节点之间的相似度(如余弦距离),对歌曲节点的歌曲进行排序;根据预设规则(如选择前几位的歌曲)从排序后的歌曲中选择待推荐的目标歌曲,然后,向新用户节点的用户推荐该目标歌曲;比如,向新用户的终端发送目标歌曲的歌曲推荐信息。
例如,参考图1f,在得到新用户节点Ui的词向量后,可以分别计算Ui与歌曲节点S1、S2……S12、S13之间的余弦距离,然后,根据余弦距离对歌曲节点对应的歌曲如M1、M2……M12、M13进行排序,并从排序后的歌曲中选择排在前几位的歌曲向新用户推荐。
在一实施例中,在执行完步骤104之后,还可以包括:
从图网络中确定待推荐用户的目标用户节点;
根据目标用户节点的词向量和歌曲节点的词向量,获取目标用户节点与歌曲节点之间的相似度;
根据相似度从歌曲节点对应的歌曲中选择相应的目标歌曲,并向待推荐用户推荐目标歌曲。
同样,在一实施例中,可以根据目标用户节点与歌曲节点之间的相似度(如预余弦距离),对歌曲节点的歌曲进行排序;根据预设规则(如选择前几位的歌曲)从排序后的歌曲中选择待推荐的目标歌曲,然后,向待推荐用户推荐该目标歌曲;比如,向待推荐用户的终端发送目标歌曲的歌曲推荐信息。
例如,经过上述方式基于节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量之后,可以在图网络中确定待推荐用户的目标用户节点如U2;然后,计算U2分别与歌曲节点S1、……S13的余弦距离;并根据余弦距离对歌曲节点对应的歌曲如M1、M2……M12、M13进行排序,并从排序后的歌曲中选择排在前几位的歌曲向用户U2推荐。
本发明实施例提供的方案可以应用在需要推荐歌曲的场景中,比如,应用在音乐应用程序的歌曲推荐,或者小程序中的歌曲推荐,或者社交应用中视频的背景音乐推荐从而实现为视频自动配置背景音乐,等等。
由上可知,本发明实施例获取用户的听歌行为数据;根据用户的听歌行为数据构建图网络;根据图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向;当存在新用户的听歌行为数据时,根据新用户的听歌行为数据对图网络进行更新,得到更新后图网络,更新后图网络包括新用户对应的新用户节点;基于训练后的词向量模型和更新后图网络获取新用户节点的词向量,并根据新用户节点的词向量、歌曲节点的词向量向新用户推荐歌曲;该方案在面临大规模用户数据时,可以先选择一部分用户数据构建原始图网络、并对词向量模型进行训练;对于其余用户数据(也即新用户数据)可以根据新用户数据更新图网络,并采用训练后词向量模型进行词向量预测,最后基于新用户与原始图网络中歌曲的词向量向新用户推荐歌曲;该方案可以对大规模用户数据进行有效处理,提升处理速度,进而提高了歌曲推荐的效率和实时性。
根据前面实施例所描述的方法,以下将以该歌曲推荐装置具体集成在网络设备举例作进一步详细说明。
参考图2,本发明实施例的歌曲推荐方法的具体流程可以如下:
201、网络设备从用户数据集合中选择若干用户的行为数据。
其中,用户数据集合包括多个用户的听歌行为数据,本发明实施例可以从该集合中选择若干用户的行为数据。比如,用户数据包括用户U0、U1、……Un的听歌行为数据,此时,可以选择用户U0、U1、……Um的听歌行为数据,其中,m小于n,m、n均为正整数。
比如,用户数据集合可以包括亿级别用户的听歌行为数据,此时,可以从集合中选择数万用户的听歌行为数据。
其中,该听歌行为数据可以包括:用户在历史时间段内的听歌行为所对应的歌曲的歌曲信息;也即包括用户的历史听歌行为(如最近历史听歌行为)对应的歌曲的歌曲信息,用于反映用户的最近听歌行为。例如,该听歌行为数据可以包括用户当前时刻正在听的歌曲、最近听过的歌曲、最近收藏的歌曲或最近下载的歌曲等歌曲的歌曲信息。
其中,用户的听歌行为数据可以由终端上报,比如,终端可以检测用户的听歌行为数据,并上报给服务器,这样网络设备便可以收集到各个用户的听歌行为数据保存在相应的数据库中。
202、网络设备根据若干用户的听歌行为数据建图网络,该图网络包括相互连接的用户节点和歌曲节点。
其中,图网络中的歌曲节点对应歌曲,用户节点对应用户。
比如,网络设备可以基于图模型(graph-based model)将若干用户的听歌行为数据表示图形式,即图网络。
其中,图网络可以包括用户节点、歌曲节点,用户节点与歌曲节点之间的连线;用户节点表示一个用户,歌曲节点表示一首歌曲,用户节点与歌曲节点之间的连线表示用户节点对应的用户喜欢歌曲节点对应的歌曲。
例如,参考图1c,在从数据库中选择若干用户的听歌行为数据,并基于图模型和选择的听歌行为数据构建图网络。其中,图网络中节点Si表示歌曲,节点Uj表示用户,歌曲节点Si和用户Uj节点之间的连线表示用户Uj喜欢歌曲Si。
203、网络设备对图网络中的节点进行随机游走,得到节点序列。
比如,可以在图网络中随机选择一个节点作为起始节点,并从起始节点开始对图网络中的节点进行随机游走,得到随机游走路径;选择随机游走路径上的节点,得到节点序列。
本发明实施例中,可以对图网络中节点进行随机游走(如通过转移矩阵在网络节点中游走),可以产生大量的节点序列。
比如,参考图1c,可以以节点U0为起始节点进行随机游走,可以得到节点序列(U0、S3、U1、S2)、(U0、S3、U1、S4、U3、S12)……等等。
204、基于节点序列对Word2vec模型进行训练,得到训练后的词向量模型、图网络中每个节点的词向量(如图网络中每个用户节点的词向量、每个歌曲节点的词向量)。
其中,Word2vec可以将词映射到一个低维的向量空间中,通过计算两个词之间的距离来得到词之间的相似度。Word2vec模型类型可以有多种,比如,可以包括CBOW(Continuous Bag of Words,词袋)模型、skip-gram模型,等等。
其中,skip-gram模型为通过当前词预测上下文词的模型,比如,skip-gram模型的输入是一个单词wi,它的输出是wi的上下文wi-c、……wi-2、wi-1、wi+1、wi+2、……wi+c;其中,上下文的窗口大小为c可以根据实际需求设定。
比如,参考图1d,skip-gram模型可以包括:输入层(Input layer)、隐藏层(Hiddenlayer)以及输出层(Output layer);每层中包括多个神经元。
在图1d中,输入向量x代表某个单词的one-hot编码,对应的输出向量{y1,…,yC}。输入层与隐藏层之间的权重矩阵W的第i行代表词汇表中第i个单词的权重。
权重矩阵W就是需要学习或训练得到的目标(同W′),因为这个权重矩阵包含了词汇表中所有单词的权重信息。上述模型中,每个输出单词向量也有个N×V维的输出向量W′。最后模型还有N个结点的隐藏层,我们可以发现隐藏层节点hi的输入就是输入层输入的加权求和。因此由于输入向量x是one-hot编码,那么只有向量中的非零元素才能对隐藏层产生输入。
本发明实施例可以将图网络中的节点看做一个词,将游走得到的节点序列看做为一个词序列,这样便可以采用word2vec来获取每个节点的词向量,即向量化表示。
其中,Word2vec模型的训练过程可以包括:对节点序列进行正、负采样,得到样本节点的样本上下文节点对,样本上下文节点对包括样本节点的正例节点对、和/或负例节点对;根据预设的Word2vec模型预测样本节点的上下文节点,得到预测上下文节点对;采用梯度下降算法对预测上下文节点对和样本上下文节点对进行收敛,得到训练后的Word2vec模型、用户节点的词向量、歌曲节点的词向量。具体地,Word2vec模型训练可以参考上述实施例的描述,这里不再赘述。
参考图1e,Skip-Gram的训练过程是通过当前词来预测其周围的词。直白一点,即获取某个词周围的词与当前词组成正例pair对,通过负采样来生成负例pair对。然后,将样本词输入至Skip-Gram模型输出预测该样本词的上下文词,得到预测上下文词对;通过梯度下降算法对预测上下文词与正负例来pair对进行收敛,以更新词向量及权重。
如图1e所示,当前词为wi,其周围的词(上下文)是通过一个固定大小的滑动窗口来确定(例如滑动窗口大小为3),用Context(w)来表示,NEG(w)表示对词w进行负采样,v(w)表示词向量,θ是模型的参数。
在图1e中,可以基于预定大小的滑动窗口对节点序列进行采样,得到大量的正例pair对、负例pair对;采用大量的正例pair对、负例pair对对Skip-Gram模型进行不断地训练,以调整Skip-Gram模型中的权重,和更新每个词(即节点)的词向量,最终可以得到训练后的Skip-Gram模型,以及每个词(即节点)的词向量即向量化表示。
205、网络设备从用户数据集合中获取新用户的听歌行为数据,并在图网络中添加新用户节点。
其中,新用户的听歌行为数据可以为用户数据集合中之前未被选择的用户的听歌行为数据。比如,用户Um、……Un的行为数据。
在一实施例中,新用户的听歌行为数据还可以为用户数据集合新加入的用户的听歌行为数据。
例如,参考图1f,网络设备可以从集合中获取用户i的听歌行为数据,并在图网络中添加新用户节点Ui。
206、网络设备根据新用户的听歌行为数据对新用户节点与歌曲节点进行连接。
例如,参考图1f,网络设备以在图网络中添加新用户节点Ui,然后,根据新的听歌行为数据将新用户节点Ui与歌曲节点S3、S4、S0分别连接;也即,将用户Ui与歌曲的交互行为作为一条边连接图网络中的用户与歌曲节点。
207、网络设备以新用户节点为起始点对图网络中的节点进行随机游走,得到新用户节点对应的上下文节点序列。
本发明实施例中,在得到训练后的word2vec模型如Skip-Gram模型之后,可以基于当前词的“上下文”词反向得到当前词的向量化表示,因为,当前词的上下文词的上下文词也即当前词,比如,假设A是B的上下文词,那么B同时也是A的上下文词。
由于本发明实施例可以将节点看做一个词,那么为了获取新用户节点的词向量,就是要获取新用户节点的上下文节点,通过上下文节点和训练后的word2vec模型如Skip-Gram模型预测当前节点即新用户节点的词向量。
其中,上下文节点序列相当于自然语言处理中的上下文词序列,新用户节点对应当前词,该序列中每个节点对应当前词(即新用户节点)的上下文词。
比如,参考图1f,在将新用户节点Ui与歌曲节点S3、S4、S0分别连接之后,可以以新用户节点Ui为起点进行随机游走,得到新用户Ui的“上下文节点序列”{S0,U3,S4,U2,S3,U1,S2,U1,……},如图1g所示。该“上下文节点序列”即为当前词(新用户节点Ui)的上下文词序列。
208、网络设备根据上下文节点序列和训练后的Word2vec模型预测新用户节点的词向量。
具体地,新用户节点的词向量预测过程可以参考上述实施例的描述,此处不再赘述。
比如,网络设备可以依次向训练后的Word2vec模型输入上下文节点序列的节点,不断对新用户节点的词向量进行更新,从而得到新用户节点的词向量。
例如,可以先选择S0输入至Word2vec模型,更新Ui的词向量,然后,在选择节点U3输入至Word2vec模型,更新Ui的词向量;依次类推通过不断地从上下文节点序列中选择新输入,便会不断地对Ui的词向量进行更新,最终便得到Ui的词向量。
209、网络设备根据新用户节点的向量以及歌曲节点的向量,获取新用户节点与歌曲节点之间的相似度。
其中,新用户节点与歌曲节点之间的相似度可以为余弦相似度;此时,可以根据新用户节点的向量以及歌曲节点的向量,获取新用户节点与歌曲节点之间的余弦距离。
210、网络设备根据相似度从歌曲节点对应的歌曲中选择相应的目标歌曲,并向新用户推荐目标歌曲
比如,网络设备可以根据新用户节点与歌曲节点之间的相似度(如余弦距离),对歌曲节点的歌曲进行排序;根据预设规则(如选择前几位的歌曲)从排序后的歌曲中选择待推荐的目标歌曲,然后,向新用户节点的用户推荐该目标歌曲;比如,向其他用户的终端发送目标歌曲的歌曲推荐信息。
例如,参考图1f,在得到新用户节点Ui的词向量后,可以分别计算Ui与歌曲节点S1、S2……S12、S13之间的余弦距离,然后,根据余弦距离对歌曲节点对应的歌曲如M1、M2……M12、M13进行排序,并从排序后的歌曲中选择排在前几位的歌曲向新用户推荐。
本发明实施例中,当检测用户数据集合存在新用户的听歌行为数据时,可以根据新用户的听歌行为数据对图网络更新,比如在图网络中添加相应的新用户节点,并与歌曲节点连接,然后执行步骤207-210向新用户推荐歌曲。
其中,新用户的听歌行为数据可以为新用户的听歌行为数据,比如用户数据集合中加入的新用户的听歌行为数据;
新用户的听歌行为数据还可以为用户数据集合中原始用户听歌行为数据发生更新或变化后的用户听歌数据;比如,用户数据集合中U1的听歌行为数据发生变化时,此时,新用户的听歌行为数据即为U1变化后听歌行为数据。
本发明实施例中,当新用户或者新的行为数据产生时,只需要将该用户节点或者歌曲节点添加到图网络中,并根据用户的行为数据连接图中的用户节点和歌曲节点来更新图网络。通过随机游走产生用户当前的“节点”序列,对用户向量进行实时更新计算。最后,通过计算用户与曲库中歌曲之间的余弦距离对歌曲进行排序,将得分较高的歌曲推荐给用户。
由上可知,本发明实施例获取用户的听歌行为数据;根据用户的听歌行为数据构建图网络;对图网络中的节点进行随机游走,得到节点序列;基于节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、用户节点的词向量、歌曲节点的词向量;当存在新用户的听歌行为数据时,根据新用户的听歌行为数据对图网络进行更新,得到更新后图网络,更新后图网络包括新用户对应的新用户节点;基于训练后的词向量模型和更新后图网络获取新用户节点的词向量,并根据新用户节点的词向量、歌曲节点的词向量向新用户推荐歌曲;该方案在面临大规模用户数据时,可以先选择一部分用户数据构建原始图网络、并对词向量模型进行训练;对于其余用户数据(也即新用户数据)可以根据新用户数据更新图网络,并采用训练后词向量模型进行词向量预测,最后基于新用户与原始图网络中歌曲的词向量向新用户推荐歌曲;该方案可以对大规模用户数据进行有效处理,提升处理速度,进而提高了歌曲推荐的效率和实时性。
为了更好地实施以上方法,本发明实施例还可以提供一种歌曲推荐装置,该歌曲装置具体可以集成在网络设备中,该网络设备可以是终端或服务器等设备。
例如,如图3a所示,该歌曲推荐装置可以包括数据获取单元301、网络构建单元302、训练单元303、更新单元304、向量获取单元305和推荐单元306,如下:
数据获取单元301,用于获取用户的听歌行为数据;
网络构建单元302,用于根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;
训练单元303,用于根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;
更新单元304,用于当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;
向量获取单元305,用于基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;
推荐单元306,用于根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。
在一实施例中,所述更新单元304,可以具体用于:
当存在新用户的听歌行为数据时,在所述图网络中添加所述新用户对应的新用户节点;
根据所述新用户的听歌行为数据将所述新用户节点与相应的歌曲节点进行连接。
在一实施例中,参考图3b,所述向量获取单元305,包括:
游走子单元3051,用于以所述新用户节点为起始点对所述更新后图网络中的节点进行随机游走,得到所述新用户节点对应的上下文节点序列;
预测子单元3052,用于根据所述训练后的词向量模型和所述上下文节点序列预测所述新用户节点的词向量。
其中,预测子单元3052,可以具体用于:
从所述上下文节点序列中选择一个目标节点;
根据所述训练后的词向量模型预测所述目标节点的上下文节点词向量,得到所述新用户节点的预测词向量;
根据所述新用户节点的预测词向量更新所述新用户节点的当前词向量;
从所述上下文节点序列中选择一个节点对所述目标节点更新,并返回执行根据所述训练后的词向量模型预测所述目标节点的上下文节点词向量的步骤直至所述上下文节点序列中所有节点均被选择。
在一实施例中,参考图3c,所述训练单元303,可以包括:序列子单元3031和训练子单元3032;
序列子单元3031,用于对所述图网络中的节点进行随机游走,得到节点序列;
训练子单元3032,用于基于所述节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量。
其中,训练子单元3032,可以具体用于:
对所述节点序列进行正、负采样,得到样本节点的样本上下文节点对,所述样本上下文节点对包括所述样本节点的正例节点对、和/或负例节点对;
根据所述样本上下文节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量。
具体地,训练子单元3032,可以具体用于:
对所述节点序列进行正、负采样,得到样本节点的样本上下文节点对,所述样本上下文节点对包括所述样本节点的正例节点对、和/或负例节点对;
根据预设的词向量模型预测所述样本节点的上下文节点,得到预测上下文节点对;
采用梯度下降算法对预测上下文节点对和样本上下文节点对进行收敛,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量。
在一实施例中,参考图3d,所述推荐单元306,可以包括:相似度获取子单元3061和推荐子单元3062;
相似度获取子单元3061,用于根据所述新用户节点的向量以及所述歌曲节点的向量,获取所述新用户节点与所述歌曲节点之间的相似度;
推荐子单元3062,用于根据所述相似度从所述歌曲节点对应的歌曲中选择相应的目标歌曲,并向所述新用户推荐所述目标歌曲。
在一实施例中,所述推荐单元306,还可以用于:
在训练单元303得所述用户节点的词向量、所述歌曲节点的词向量之后,从所述图网络中确定待推荐用户的目标用户节点;
根据所述目标用户节点的词向量和所述歌曲节点的词向量,获取所述目标用户节点与所述歌曲节点之间的相似度;
根据所述相似度从所述歌曲节点对应的歌曲中选择相应的目标歌曲,并向所述待推荐用户推荐所述目标歌曲。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的歌曲推荐装置的数据获取单元301获取用户的听歌行为数据;由网络构建单元302根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;由训练单元303根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;由更新单元304当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;由向量获取单元305基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;由推荐单元306根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。该方案可以对大规模用户数据进行有效处理,提升处理速度,进而提高了歌曲推荐的效率和实时性。
本发明实施例还提供一种网络设备,具体可以为终端,也可以为服务器,该网络设备可以集成本发明实施例所提供的任一种歌曲推荐装置。
例如,如图4所示,其示出了本发明实施例所涉及的网络设备的结构示意图,具体来讲:
该网络设备可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403和输入单元404等部件。本领域技术人员可以理解,图4中示出的网络设备结构并不构成对网络设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该网络设备的控制中心,利用各种接口和线路连接整个网络设备的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行网络设备的各种功能和处理数据,从而对网络设备进行整体监控。可选的,处理器401可包括一个或多个处理核心;优选的,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据网络设备的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
网络设备还包括给各个部件供电的电源403,优选的,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该网络设备还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,网络设备还可以包括显示单元等,在此不再赘述。具体在本实施例中,网络设备中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取用户的听歌行为数据;根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本实施例的网络设备可以获取用户的听歌行为数据;根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。该方案在面临大规模用户数据时,可以先选择一部分用户数据构建原始图网络、并对词向量模型进行训练;对于其余用户数据(也即新用户数据)可以根据新用户数据更新图网络,并采用训练后词向量模型进行词向量预测,最后基于新用户与原始图网络中歌曲的词向量向新用户推荐歌曲;该方案可以对大规模用户数据进行有效处理,提升处理速度,进而提高了歌曲推荐的效率和实时性。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本发明实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本发明实施例所提供的任一种歌曲推荐方法中的步骤。例如,该指令可以执行如下步骤:
获取用户的听歌行为数据;根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本发明实施例所提供的任一种歌曲推荐方法中的步骤,因此,可以实现本发明实施例所提供的任一种歌曲推荐方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本发明实施例所提供的一种歌曲推荐方法、装置和存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (15)
1.一种歌曲推荐方法,其特征在于,包括:
获取用户的听歌行为数据;
根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;
根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;
当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;
基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;
根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。
2.如权利要求1所述的歌曲推荐方法,其特征在于,根据所述新用户的听歌行为数据对所述图网络进行更新,包括:
在所述图网络中添加所述新用户对应的新用户节点;
根据所述新用户的听歌行为数据将所述新用户节点与相应的歌曲节点进行连接。
3.如权利要求1所述的歌曲推荐方法,其特征在于,基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量,包括:
以所述新用户节点为起始点对所述更新后图网络中的节点进行随机游走,得到所述新用户节点对应的上下文节点序列;
根据所述训练后的词向量模型和所述上下文节点序列预测所述新用户节点的词向量。
4.如权利要求3所述的歌曲推荐方法,其特征在于,根据所述训练后的词向量模型和所述上下文节点序列预测所述新用户节点的词向量,包括:
从所述上下文节点序列中选择一个目标节点;
根据所述训练后的词向量模型预测所述目标节点的上下文节点词向量,得到所述新用户节点的预测词向量;
根据所述新用户节点的预测词向量更新所述新用户节点的当前词向量;
从所述上下文节点序列中选择一个节点对所述目标节点更新,并返回执行根据所述训练后的词向量模型预测所述目标节点的上下文节点词向量的步骤直至所述上下文节点序列中所有节点均被选择。
5.如权利要求1所述的歌曲推荐方法,其特征在于,根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量,包括:
对所述图网络中的节点进行随机游走,得到节点序列;
基于所述节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量。
6.如权利要求5所述的歌曲推荐方法,其特征在于,基于所述节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量,包括:
对所述节点序列进行正、负采样,得到样本节点的样本上下文节点对,所述样本上下文节点对包括所述样本节点的正例节点对、和/或负例节点对;
根据所述样本上下文节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量。
7.如权利要求6所述的歌曲推荐方法,其特征在于,根据所述样本上下文节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量,包括:
根据预设的词向量模型预测所述样本节点的上下文节点,得到预测上下文节点对;
采用梯度下降算法对预测上下文节点对和样本上下文节点对进行收敛,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量。
8.如权利要求1所述的歌曲推荐方法,其特征在于,根据所述新用户节点的词向量、所述歌曲节点的词向量,向所述新用户推荐歌曲,包括:
根据所述新用户节点的向量以及所述歌曲节点的向量,获取所述新用户节点与所述歌曲节点之间的相似度;
根据所述相似度从所述歌曲节点对应的歌曲中选择相应的目标歌曲,并向所述新用户推荐所述目标歌曲。
9.如权利要求1所述的歌曲推荐方法,其特征在于,在得所述用户节点的词向量、所述歌曲节点的词向量之后,所述方法还包括:
从所述图网络中确定待推荐用户的目标用户节点;
根据所述目标用户节点的词向量和所述歌曲节点的词向量,获取所述目标用户节点与所述歌曲节点之间的相似度;
根据所述相似度从所述歌曲节点对应的歌曲中选择相应的目标歌曲,并向所述待推荐用户推荐所述目标歌曲。
10.一种歌曲推荐装置,其特征在于,包括:
数据获取单元,用于获取用户的听歌行为数据;
网络构建单元,用于根据所述用户的听歌行为数据构建图网络,所述图网络包括相互连接的用户节点和歌曲节点,所述歌曲节点对应歌曲,所述用户节点对应用户;
训练单元,用于根据所述图网络中的节点对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量;
更新单元,用于当存在新用户的听歌行为数据时,根据所述新用户的听歌行为数据对所述图网络进行更新,得到更新后图网络,所述更新后图网络包括所述新用户对应的新用户节点;
向量获取单元,用于基于所述训练后的词向量模型和所述更新后图网络获取所述新用户节点的词向量;
推荐单元,用于根据所述新用户节点的词向量、所述歌曲节点的词向量向所述新用户推荐歌曲。
11.如权利要求10所述的歌曲推荐装置,其特征在于,所述更新单元,用于:
在所述图网络中添加所述新用户对应的新用户节点;
根据所述新用户的听歌行为数据将所述新用户节点与相应的歌曲节点进行连接。
12.如权利要求10所述的歌曲推荐装置,其特征在于,所述向量获取单元,包括:
游走子单元,用于以所述新用户节点为起始点对所述更新后图网络中的节点进行随机游走,得到所述新用户节点对应的上下文节点序列;
预测子单元,用于根据所述训练后的词向量模型和所述上下文节点序列预测所述新用户节点的词向量。
13.如权利要求10所述的歌曲推荐装置,其特征在于,所述训练单元,包括:
序列子单元,用于对所述图网络中的节点进行随机游走,得到节点序列;
训练子单元,用于基于所述节点序列对预设的词向量模型进行训练,得到训练后的词向量模型、所述用户节点的词向量、所述歌曲节点的词向量。
14.如权利要求10所述的歌曲推荐装置,其特征在于,所述推荐单元,包括:
相似度获取子单元,用于根据所述新用户节点的向量以及所述歌曲节点的向量,获取所述新用户节点与所述歌曲节点之间的相似度;
推荐子单元,用于根据所述相似度从所述歌曲节点对应的歌曲中选择相应的目标歌曲,并向所述新用户推荐所述目标歌曲。
15.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于处理器进行加载,以执行权利要求1至9任一项所述的歌曲推荐方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810891335.5A CN108875090B (zh) | 2018-08-07 | 2018-08-07 | 一种歌曲推荐方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810891335.5A CN108875090B (zh) | 2018-08-07 | 2018-08-07 | 一种歌曲推荐方法、装置和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108875090A true CN108875090A (zh) | 2018-11-23 |
CN108875090B CN108875090B (zh) | 2023-02-28 |
Family
ID=64317206
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810891335.5A Active CN108875090B (zh) | 2018-08-07 | 2018-08-07 | 一种歌曲推荐方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108875090B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008999A (zh) * | 2019-03-07 | 2019-07-12 | 腾讯科技(深圳)有限公司 | 目标帐号的确定方法、装置、存储介质及电子装置 |
CN111160552A (zh) * | 2019-12-17 | 2020-05-15 | 北京百度网讯科技有限公司 | 负采样处理方法、装置、设备和计算机存储介质 |
CN111222053A (zh) * | 2019-11-27 | 2020-06-02 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种对象推荐方法、装置以及相关设备 |
CN111949808A (zh) * | 2019-04-29 | 2020-11-17 | 北京达佳互联信息技术有限公司 | 一种多媒体内容相似度确定方法、装置、电子设备及存储介质 |
CN112559852A (zh) * | 2019-09-10 | 2021-03-26 | 北京搜狗科技发展有限公司 | 一种信息推荐方法及装置 |
CN112667845A (zh) * | 2020-12-23 | 2021-04-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种歌曲推荐方法、装置、电子设备及可读存储介质 |
CN113220930A (zh) * | 2021-05-31 | 2021-08-06 | 平安科技(深圳)有限公司 | 歌曲推荐方法、歌曲推荐装置、设备及存储介质 |
CN113781143A (zh) * | 2020-11-05 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 对象推荐方法及装置 |
CN114372170A (zh) * | 2020-10-14 | 2022-04-19 | 腾讯科技(深圳)有限公司 | 歌曲推荐方法、装置、介质以及电子设备 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150169758A1 (en) * | 2013-12-17 | 2015-06-18 | Luigi ASSOM | Multi-partite graph database |
US20170161279A1 (en) * | 2015-12-08 | 2017-06-08 | International Business Machines Corporation | Content Authoring |
CN107392782A (zh) * | 2017-06-29 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 基于word2Vec的社团构建方法、装置及计算机处理设备 |
CN108021568A (zh) * | 2016-10-31 | 2018-05-11 | 北京酷我科技有限公司 | 一种歌单推荐方法及装置 |
EP3330872A1 (en) * | 2016-12-01 | 2018-06-06 | Spotify AB | System and method for semantic analysis of song lyrics in a media content environment |
CN108205533A (zh) * | 2016-12-16 | 2018-06-26 | 北京酷我科技有限公司 | 一种基于用户协同的歌曲推荐方法和系统 |
CN108304526A (zh) * | 2018-01-25 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及服务器 |
-
2018
- 2018-08-07 CN CN201810891335.5A patent/CN108875090B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150169758A1 (en) * | 2013-12-17 | 2015-06-18 | Luigi ASSOM | Multi-partite graph database |
US20170161279A1 (en) * | 2015-12-08 | 2017-06-08 | International Business Machines Corporation | Content Authoring |
CN108021568A (zh) * | 2016-10-31 | 2018-05-11 | 北京酷我科技有限公司 | 一种歌单推荐方法及装置 |
EP3330872A1 (en) * | 2016-12-01 | 2018-06-06 | Spotify AB | System and method for semantic analysis of song lyrics in a media content environment |
CN108205533A (zh) * | 2016-12-16 | 2018-06-26 | 北京酷我科技有限公司 | 一种基于用户协同的歌曲推荐方法和系统 |
CN107392782A (zh) * | 2017-06-29 | 2017-11-24 | 上海斐讯数据通信技术有限公司 | 基于word2Vec的社团构建方法、装置及计算机处理设备 |
CN108304526A (zh) * | 2018-01-25 | 2018-07-20 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及服务器 |
Non-Patent Citations (3)
Title |
---|
CHENG, H ET AL.: "Recommendation via query centered random walk on k-partite graph", 《ICDM 2007: PROCEEDINGS OF THE SEVENTH IEEE INTERNATIONAL CONFERENCE ON DATA MINING》 * |
于帅等: "大规模隐式反馈的词向量音乐推荐模型", 《计算机系统应用》 * |
赵超等: "基于SkipGram模型的链路预测方法", 《计算机应用与软件》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008999A (zh) * | 2019-03-07 | 2019-07-12 | 腾讯科技(深圳)有限公司 | 目标帐号的确定方法、装置、存储介质及电子装置 |
CN111949808A (zh) * | 2019-04-29 | 2020-11-17 | 北京达佳互联信息技术有限公司 | 一种多媒体内容相似度确定方法、装置、电子设备及存储介质 |
CN111949808B (zh) * | 2019-04-29 | 2024-01-02 | 北京达佳互联信息技术有限公司 | 一种多媒体内容相似度确定方法、装置、电子设备及存储介质 |
CN112559852A (zh) * | 2019-09-10 | 2021-03-26 | 北京搜狗科技发展有限公司 | 一种信息推荐方法及装置 |
CN111222053A (zh) * | 2019-11-27 | 2020-06-02 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种对象推荐方法、装置以及相关设备 |
CN111160552A (zh) * | 2019-12-17 | 2020-05-15 | 北京百度网讯科技有限公司 | 负采样处理方法、装置、设备和计算机存储介质 |
CN111160552B (zh) * | 2019-12-17 | 2023-09-26 | 北京百度网讯科技有限公司 | 新闻信息的推荐处理方法、装置、设备和计算机存储介质 |
CN114372170A (zh) * | 2020-10-14 | 2022-04-19 | 腾讯科技(深圳)有限公司 | 歌曲推荐方法、装置、介质以及电子设备 |
CN113781143A (zh) * | 2020-11-05 | 2021-12-10 | 北京沃东天骏信息技术有限公司 | 对象推荐方法及装置 |
CN113781143B (zh) * | 2020-11-05 | 2024-05-24 | 北京沃东天骏信息技术有限公司 | 对象推荐方法及装置 |
CN112667845A (zh) * | 2020-12-23 | 2021-04-16 | 腾讯音乐娱乐科技(深圳)有限公司 | 一种歌曲推荐方法、装置、电子设备及可读存储介质 |
CN113220930A (zh) * | 2021-05-31 | 2021-08-06 | 平安科技(深圳)有限公司 | 歌曲推荐方法、歌曲推荐装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108875090B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108875090A (zh) | 一种歌曲推荐方法、装置和存储介质 | |
CN111241311B (zh) | 媒体信息推荐方法、装置、电子设备及存储介质 | |
US20240095546A1 (en) | Method, system, and computer program for user-driven dynamic generation of semantic networks and media synthesis | |
CN101990670B (zh) | 使用编辑距离和文档信息进行搜索结果排名 | |
CN108334601B (zh) | 基于标签主题模型的歌曲推荐方法、装置及存储介质 | |
CN110321494A (zh) | 基于矩阵分解与网络嵌入联合模型的社会化推荐方法 | |
CN106973244A (zh) | 使用弱监督为图像配字幕 | |
CA2802887A1 (en) | Systems of computerized agents and user-directed semantic networking | |
CN108268441A (zh) | 句子相似度计算方法和装置及系统 | |
CN111241394B (zh) | 数据处理方法、装置、计算机可读存储介质及电子设备 | |
CN110309289A (zh) | 一种句子生成方法、句子生成装置及智能设备 | |
JP7498248B2 (ja) | コンテンツ推薦とソートモデルトレーニング方法、装置、機器、記憶媒体及びコンピュータプログラム | |
CN113254711B (zh) | 一种互动图像的显示方法、装置、计算机设备和存储介质 | |
CN110852047A (zh) | 一种文本配乐方法、装置、以及计算机存储介质 | |
CN107391509A (zh) | 标签推荐方法及装置 | |
Fu et al. | Facilitating exploratory search by model-based navigational cues | |
CN110781377A (zh) | 一种文章推荐方法、装置 | |
CN111723295A (zh) | 一种内容分发方法、装置和存储介质 | |
CN112231554A (zh) | 一种搜索推荐词生成方法、装置、存储介质和计算机设备 | |
Magalhães et al. | Creating deep neural networks for text classification tasks using grammar genetic programming | |
CN110245310A (zh) | 一种对象的行为分析方法、装置及存储介质 | |
CN113515589A (zh) | 数据推荐方法、装置、设备以及介质 | |
CN105608118B (zh) | 基于用户交互信息的结果推送方法 | |
CN105069034A (zh) | 一种生成推荐信息的方法及装置 | |
Matsumoto et al. | Music video recommendation based on link prediction considering local and global structures of a network |
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 |