CN108021568B - 一种歌单推荐方法及装置 - Google Patents

一种歌单推荐方法及装置 Download PDF

Info

Publication number
CN108021568B
CN108021568B CN201610942851.7A CN201610942851A CN108021568B CN 108021568 B CN108021568 B CN 108021568B CN 201610942851 A CN201610942851 A CN 201610942851A CN 108021568 B CN108021568 B CN 108021568B
Authority
CN
China
Prior art keywords
song
list
user
songs
matrix
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
Application number
CN201610942851.7A
Other languages
English (en)
Other versions
CN108021568A (zh
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.)
Beijing Kuwo Technology Co Ltd
Original Assignee
Beijing Kuwo Technology Co Ltd
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 Beijing Kuwo Technology Co Ltd filed Critical Beijing Kuwo Technology Co Ltd
Priority to CN201610942851.7A priority Critical patent/CN108021568B/zh
Publication of CN108021568A publication Critical patent/CN108021568A/zh
Application granted granted Critical
Publication of CN108021568B publication Critical patent/CN108021568B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/638Presentation of query results
    • G06F16/639Presentation of query results using playlists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/63Querying
    • G06F16/635Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/60Information retrieval; Database structures therefor; File system structures therefor of audio data
    • G06F16/68Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/686Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, title or artist information, time, location or usage information, user ratings

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)

Abstract

本发明涉及一种歌单推荐方法及装置,方法包括:获取第一用户在预设天数内的歌曲播放列表以及歌曲播放列表中所有歌曲的偏好得分,并获得所有歌曲的偏好得分对应的听歌偏好矩阵;根据歌曲播放列表,获得歌曲播放列表中歌曲的歌曲词向量,基于歌曲词向量和听歌偏好矩阵确定歌曲相似矩阵,根据听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集;根据歌曲词向量,获得歌单聚类矩阵;根据歌单聚类矩阵,确定第二歌单推荐候选集;根据第一歌单推荐候选集和第二歌单推荐候选集,向第一用户推送歌单推荐列表,该方法提高了歌单质量、好听度、多样性以及相似度,提升了用户体验。

Description

一种歌单推荐方法及装置
技术领域
本发明涉及计算机领域,尤其涉及一种歌单推荐方法及装置。
背景技术
近年来,全球数字娱乐业持续发展,在线音乐发展尤为迅速,从2000年起步的中国网络音乐,是中国互联网第二大应用,流行音乐的数量快速增加,累计歌曲量已超过百万。随着网络的普及,歌曲的制作越来越便利,未来一段时间内歌曲量将会呈现指数增长。歌曲海量化累计的同时,音乐用户也表现出明显的个性化音乐偏好。如何从海量的歌曲中向用户推荐自己喜欢的歌单,就成为目前所要解决的问题。
现有技术中,由人工编辑进行歌单推荐,工作量大、编辑效率低,歌单内歌曲的多样性、好听度难以得到保证。同一歌单内的歌曲相关性不高,推荐形式单一,仅以热歌、老歌等推荐形式为主,不能满足每个用户的听歌需求,导致推荐歌单的质量不高,用户体验差。
发明内容
本发明的目的是解决现有技术中歌单内歌曲的多样性、好听度、相关性不高,导致歌单的质量不高的问题,通过提供一种歌单推荐方法及装置,提高了歌单质量,提升了用户体验。
第一方面,本发明提供了一种歌单推荐方法,包括以下步骤:获取第一用户在预设天数内的歌曲播放列表以及所述歌曲播放列表中所有歌曲的偏好得分,并获得所述所有歌曲的偏好得分对应的听歌偏好矩阵;根据所述歌曲播放列表,获得所述歌曲播放列表中所有歌曲的歌曲词向量,基于所述歌曲词向量和所述听歌偏好矩阵确定歌曲相似矩阵,根据所述听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集;根据所述歌曲词向量,获得歌单聚类矩阵;根据所述歌单聚类矩阵,确定第二歌单推荐候选集;根据所述第一歌单推荐候选集和所述第二歌单推荐候选集,向所述第一用户推送歌单推荐列表。
优选地,所述获取第一用户在预设天数内的歌曲播放列表以及所述歌曲播放列表中所有歌曲的偏好得分,并获得所述所有歌曲的偏好得分对应的听歌偏好矩阵具体包括:定时解析所述第一用户的音乐盒播歌日志,获取所述第一用户的当日歌曲播放列表中每首歌曲对应的听歌行为数据和听歌来源数据;根据所述听歌行为数据对应的权重以及所述听歌来源数据对应的权重,确定所述第一用户当日歌曲播放列表对应的当日偏好得分;合并当前日期之前预设天数内的所述第一用户的当日偏好得分,得到所述第一用户在预设天数内听过的每首歌曲的偏好得分;根据所述第一用户在预设天数内听过的每首歌曲的播歌量对每首歌曲的偏好得分进行热度降权和归一化处理,得到处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分;对所述处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分进行排序,并根据排序结果,确定听歌偏好矩阵。
优选地,所述根据所述歌曲播放列表,获得所述歌曲播放列表中所有歌曲的歌曲词向量,基于所述歌曲词向量和所述听歌偏好矩阵确定歌曲相似矩阵,根据所述听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集具体包括:采用word2vec工具对所述歌曲播放列表中的歌曲进行训练,获得歌曲词向量;根据所述歌曲词向量,确定所述听歌偏好矩阵中任意两首歌之间的相似度;根据所述相似度,确定所述听歌偏好矩阵中每一首歌曲的相似歌曲,生成歌曲相似矩阵;从所述听歌偏好矩阵中提取第一用户喜欢的预设个数的歌曲,并从所述歌曲相似矩阵中获取所述第一用户喜欢的预设个数的歌曲对应的相似歌曲,根据所述第一用户喜欢的预设个数的歌曲和所述第一用户喜欢的预设个数的歌曲对应的相似歌曲确定第一歌单推荐候选集。
优选地,所述根据所述歌曲词向量,获得歌单聚类矩阵;根据所述歌单聚类矩阵,确定第二歌单推荐候选集具体包括:根据所述歌曲词向量,确定所述听歌偏好矩阵中任意两首歌之间的相似度;根据所述相似度,采用word2vec工具,对所述听歌偏好矩阵中的歌曲进行聚类,生成歌曲聚类矩阵;根据所述歌曲聚类矩阵,生成歌单聚类矩阵;根据歌单聚类矩阵,以及第一用户的偏好歌单列表,确定第二歌单推荐候选集。
优选地,所述第一用户的偏好歌单列表具体包括:根据歌单收藏量、播放量、评论量、分享量,利用威尔逊置信区间计算歌单库中每个歌单的得分;根据所述歌单的得分,对所述歌单进行排序,获取预设个数的歌单作为精品歌单库;从精品歌单库中获取所述第一用户的偏好歌单列表。
第二方面,本发明提供了一种歌单推荐装置,所述装置包括:包括以下模块:获取模块,第一确定模块,第二确定模块,推送模块;其中,获取模块用于获取第一用户在预设天数内的歌曲播放列表以及所述歌曲播放列表中所有歌曲的偏好得分,并获得所述所有歌曲的偏好得分对应的听歌偏好矩阵;第一确定模块用于根据所述歌曲播放列表,获得所述歌曲播放列表中所有歌曲的歌曲词向量,基于所述歌曲词向量和所述听歌偏好矩阵确定歌曲相似矩阵,根据所述听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集;第二确定模块用于根据所述歌曲词向量,获得歌单聚类矩阵;根据所述歌单聚类矩阵,确定第二歌单推荐候选集;推送模块用于根据所述第一歌单推荐候选集和所述第二歌单推荐候选集,向所述第一用户推送歌单推荐列表。
优选地,所述获取模块具体用于定时解析所述第一用户的音乐盒播歌日志,获取所述第一用户的当日歌曲播放列表中每首歌曲对应的听歌行为数据和听歌来源数据;根据所述听歌行为数据对应的权重以及所述听歌来源数据对应的权重,确定所述第一用户当日歌曲播放列表对应的当日偏好得分;合并当前日期之前预设天数内的所述第一用户的当日偏好得分,得到所述第一用户在预设天数内听过的每首歌曲的偏好得分;根据所述第一用户在预设天数内听过的每首歌曲的播歌量对每首歌曲的偏好得分进行热度降权和归一化处理,得到处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分;对所述处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分进行排序,并根据排序结果,确定听歌偏好矩阵。
优选地,第一确定模块具体用于采用word2vec工具对所述歌曲播放列表中的歌曲进行训练,获得歌曲词向量;根据所述歌曲词向量,确定所述听歌偏好矩阵中任意两首歌之间的相似度;根据所述相似度,确定所述听歌偏好矩阵中每一首歌曲的相似歌曲,生成歌曲相似矩阵;从所述听歌偏好矩阵中提取第一用户喜欢的预设个数的歌曲,并从所述歌曲相似矩阵中获取所述第一用户喜欢的预设个数的歌曲对应的相似歌曲,根据所述第一用户喜欢的预设个数的歌曲和所述第一用户喜欢的预设个数的歌曲对应的相似歌曲确定第一歌单推荐候选集。
优选地,第二确定模块具体用于根据所述歌曲词向量,确定所述听歌偏好矩阵中任意两首歌之间的相似度;根据所述相似度,采用word2vec工具,对所述听歌偏好矩阵中的歌曲进行聚类,生成歌曲聚类矩阵;根据所述歌曲聚类矩阵,生成歌单聚类矩阵;根据歌单聚类矩阵,以及第一用户的偏好歌单列表,确定第二歌单推荐候选集。
优选地,所述第一用户的偏好歌单列表具体包括:根据歌单收藏量、播放量、评论量、分享量,利用威尔逊置信区间计算歌单库中每个歌单的得分;根据所述歌单的得分,对所述歌单进行排序,获取预设个数的歌单作为精品歌单库;从精品歌单库中获取所述第一用户的偏好歌单列表。
本发明解决了现有技术中人工编辑歌单存在的歌单内歌曲的多样性、好听度、相关性不高,导致歌单的质量不高的问题,通过提供一种歌单推荐方法及装置,提高了歌单质量、好听度、多样性以及相似度,提高了歌单质量,提升了用户体验。
附图说明
图1为本发明实施例提供的歌单推荐方法流程示意图;
图2为余弦相似度示意图;
图3为歌单示意图;
图4是根据威尔逊得分区计算出来的歌单得分值示意图;
图5是非线性模型示意图;
图6为本发明实施例提供的歌单推荐装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
当本发明实施例提及“第一”、“第二”等序数词时,除非根据上下文其确实表达顺序之意,应当理解为仅仅起区分的作用。
下文中,歌单列表是歌单的集合,歌单是歌曲的集合。
图1为本发明实施例提供的歌单推荐方法流程示意图。如图1所示,所述方法的执行主体可以为终端,终端可以称之为用户设备(User Equipment,UE)、移动台(MobileStation,MS)、移动终端(Mobile Terminal)、服务器、计算机、微机等。例如,终端可以是移动电脑、具有移动终端的计算机,本发明对此并不限定。
S110,获取第一用户在预设天数内的歌曲播放列表以及歌曲播放列表中所有歌曲的偏好得分,并获得所有歌曲的偏好得分对应的听歌偏好矩阵。
其中,第一用户可以为一个,也可以是多个,服务器可以定时解析第一用户的音乐盒播歌日志,对音乐盒播歌日志进行分析,确定用户红心列表、下载、收藏、搜索、购买、本地上传等主动听歌行为中的歌曲,以及每日推荐、歌单、电台、分区、排行榜等听歌来源中的歌曲。其中,用户红心列表、下载、收藏、搜索、购买、本地上传等主动听歌行为中的歌曲构成用户歌曲播放列表。本发明实施例中,可以将确定用户的听歌偏好矩阵称为建立听歌偏好模型。
下面说明如何确定第一用户的听歌偏好矩阵。
首先,定时解析所述第一用户的音乐盒播歌日志,获取第一用户的当日歌曲播放列表中每首歌曲对应的听歌行为数据和听歌来源数据;接着根据听歌行为数据对应的权重以及所述听歌来源数据对应的权重,确定第一用户当日歌曲播放列表对应的当日偏好得分;再合并当前日期之前预设天数内的第一用户的当日偏好得分,得到第一用户在预设天数内听过的每首歌曲的偏好得分;再根据第一用户在预设天数内听过的每首歌曲的播歌量对每首歌曲的偏好得分进行热度降权和归一化处理,得到处理后的第一用户在预设天数内听过的每首歌曲的偏好得分;再对处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分进行排序,并根据排序结果,确定听歌偏好矩阵。
本发明实施例中,根据第一用户在预设天数内听过的每首歌曲的播歌量对每首歌曲的偏好得分进行热度降权和归一化处理,得到处理后的第一用户在预设天数内听过的每首歌曲的偏好得分,以便降低热度高的歌曲的偏好得分,从而后续向第一用户推荐的歌单中优先推荐含有热度低的歌曲的歌单,尽量体现第一用户的个性化偏好。
本领域人员可以了解,上述红心列表的名称是基于一种具体的应用场景,用户将自己喜欢的歌曲标记一个红心,该应用场景仅为举例说明,并不用于对本发明应用场景的限定,实际中,用户标记自己喜欢的歌曲的形式可以为红心,也可以为星号,或者小红旗等。
下面对建立听歌偏好模型做进一步的描述。
为了反映用户的动态行为及听歌偏好迁移,听歌偏好模型可以分为短期偏好和长期偏好。其中,短期偏好通常为时间短于一周的偏好,例如,7天或3天的偏好,长期偏好通常为时间长于一个月的偏好,例如,6个月的偏好。
建立方法基于以下四步:a.统计用户当日偏好,获得当日偏好得分;b.合并预设时间内的用户当日偏好,获得偏好得分;c.热度衰减并归一化;d.构建听歌偏好矩阵。
a.统计用户当日偏好,获得当日偏好得分。解析音乐盒播歌日志,基于预设规则利用大数据统计确定用户一日歌曲偏好。把用户听歌行为及听歌来源赋予不同的权重,确定用户偏好得分。其中,用户的听歌行为包括播放、下载、收藏、搜索、完整收听等。听歌来源指的是在音乐播放客户端中用户听这首歌的路径。比如,通过搜索《忘情水》找到歌曲《忘情水》收听。
用户偏好得分=歌曲是否完整收听*听歌来源权重
score=listen*weight
score:用户偏好得分
listen:歌曲完整收听为1,其他为0
weight:听歌来源权重,不同的听歌来源设置不同的权重,通过听歌来源体现用户对歌曲的偏好度,听歌来源与权重的对应关系可以如表一所示。
Figure BDA0001137989140000071
Figure BDA0001137989140000081
表一
b.合并预设时间内的用户当日偏好得分,获得偏好得分。
当确定用户的短期偏好时,可以合并最近3天的用户当日偏好,获得偏好得分;当确定用户的长期偏好时,可以合并最近6个月内的用户当日偏好,获得偏好得分。
c.热度衰减并归一化。本发明实施例中,可以考虑时间衰减及热度降权更新用户的偏好得分。
时间衰减:
Score=Snow+Shistory*decay_factor
其中,Snow:当日偏好评分,如果没收听为0;Shistory:偏好得分;以当前日期前一天听歌为例,decay_factor:衰减因子,这里使用0.8。历史听歌的日期离当前日期越远衰减因子越小,衰减因子采用幂级数减小的方式,例如,以当前日期前两天听歌为例,decay_factor取0.82
本发明实施例中,考虑了用户长短期偏好,突出了用户的近期偏好,更具有人文关怀。
基于所听歌曲的播歌量作热度降权,具体可以采用如下公式一来实现。
Figure BDA0001137989140000082
其中,preference:歌曲偏好度;score为基于前述步骤得到的用户歌曲偏好得分,即时间衰减后得到的用户偏好得分;A:歌曲热度,A=log20(CNT+20);CNT为音乐盒中这首歌曲的播歌量。
建立的偏好得分可以如表2所示。
用户 歌曲 偏好得分
用户A 忘情水 10
用户A 东风破 30
表2
假定第一用户的个数为M,M个用户中的每个用户歌曲播放列表里保留偏好得分排名前3000对应的歌曲,则得到M*3000维度的听歌偏好矩阵。M*3000维度的听歌偏好矩阵如下所示:
user0:[song0,7],[song1,6],…,[songN,9]
user1:[song0,0.3],[song1,6.7],…,[songN,5.9]
userM:[song0,0.8],[song1,1.6],…,[songN,9.8]
其中,song0,song1,songN都是歌曲id,比如song0是《真心英雄》的id,歌曲id都是整数,比如是100001,那么song0=100001。
user0是用户的id,比如酷我用户是小明,小明的id是7865329。
S120,根据歌曲播放列表,获得歌曲播放列表中歌曲的歌曲词向量,基于歌曲词向量和听歌偏好矩阵确定歌曲相似矩阵,根据听歌偏好矩阵和歌曲相似矩阵,确定第一歌单推荐候选集。
下面具体说明如何确定第一歌单推荐候选集。
首先,采用word2vec工具对所述歌曲播放列表中的歌曲进行训练,获得歌曲词向量;再根据所述歌曲词向量,确定听歌偏好矩阵中任意两首歌之间的相似度;根据所述相似度,确定所述听歌偏好矩阵中每一首歌曲的相似歌曲,生成歌曲相似矩阵;再从所述听歌偏好矩阵中提取第一用户喜欢的预设个数的歌曲,并从所述歌曲相似矩阵中获取所述第一用户喜欢的预设个数的歌曲对应的相似歌曲,根据所述第一用户喜欢的预设个数的歌曲和所述第一用户喜欢的预设个数的歌曲对应的相似歌曲确定第一歌单推荐候选集。
以第一用户的个数是一个为例,假定第一用户为A,在听歌偏好矩阵中,根据每首歌曲的偏好得分,可以找到A喜欢的排名前50的歌曲,这50首歌曲可以表示为:[song01,song02,…,song50]。对这50首歌曲,在歌曲相似矩阵中,逐一找到每首歌曲的相似歌曲,可以表示为:[song01_similart01,song01_similart02,song01_similart03,…],[song02_similart01,song02_similart02,song02_similart03,…]……[song50_similart01,song50_similart02,song50_similart03,…]。将这些歌曲的偏好得分,以及这些歌曲的相似歌曲的偏好得分,累加到包含这些歌曲及其相似歌曲的歌单中,从而计算出A对每个歌单的得分,取得分排名前K的歌单,即为要推荐的歌单,记为第一歌单推荐候选集。其中,K为一整数,可以根据需要设置不同的数值。
本发明实施例中,可以将确定歌曲相似矩阵称为建立歌曲相似度模型。
下面具体说明如何确定歌曲相似度模型。
采用word2vec工具进行训练时,基于协同的思想,将推荐问题转化为文本处理问题,将用户理解为一篇文档,用户的歌曲播放列表理解为词项,把对文本内容的处理简化为K维向量空间中的向量运算,而向量空间上的相似度可以表示文本语义上的相似度,即歌曲的相似度。这里将用户的歌曲播放列表作为输入,使用深度学习模型训练得到歌曲词向量。距离采用余弦相似度,描述歌曲之间的相似程度数值在(0,1)之间。
假定歌曲词向量为A和B,A向量是[x1,y1],B向量是[x2,y2],如图2所示,图2为余弦相似度示意图。余弦定理改写成公式二:
Figure BDA0001137989140000101
当A和B是两个n维向量,A是[A1,A2,...,An],B是[B1,B2,...,Bn],则A与B的夹角θ的余弦如公式三所示:
Figure BDA0001137989140000111
余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似。即两个歌曲词向量之间的夹角越小,两个歌曲越相似。
其中,利用余弦距离计算听歌偏好矩阵中与每个歌曲最相近的1000个歌曲,假定听歌偏好矩阵中一共有N首歌曲,计算完每个歌曲的相似歌曲后,生成N*1000维度的歌曲相似矩阵。
S130,根据所述歌曲词向量,获得歌单聚类矩阵;根据所述歌单聚类矩阵,确定第二歌单推荐候选集。
具体地,首先根据所述歌曲词向量,确定听歌偏好矩阵中任意两首歌之间的相似度;根据相似度,采用word2vec工具,对听歌偏好矩阵中的歌曲进行聚类,生成歌曲聚类矩阵;根据歌曲聚类矩阵,生成歌单聚类矩阵;根据歌单聚类矩阵,以及第一用户听过的歌单构成的歌单列表,确定第二歌单推荐候选集。
其中,根据相似度,采用word2vec工具,对听歌偏好矩阵中的歌曲进行聚类时,采用word2vec工具中的聚类算法,把听歌偏好矩阵中距离比较近的歌曲汇集到一块,形成一个个类别。由于这个类别是根据向量距离得来,而不是根据歌曲标签来的(歌曲标签是音乐专家为歌曲添加的一种标签,这个标签是人可以理解的一个概念),所以这个类别未必有实在的意义,可能这个类别是摇滚,也可能是民谣,也可能是不可解释的一个歌曲类别。
下面对如何生成歌单聚类矩阵做进一步的描述。
首先,对歌曲进行聚类,最终得到M个歌曲类别,存放在歌曲聚类矩阵中。假如M=100,则歌曲聚类矩阵有100行,具体形式如下:
class0:[song0,0.7],[song1,0.6],…,[songN,0.9]
class1:[song0,0.3],[song1,0.67],…,[songN,0.59]
class99:[song0,0.8],[song1,0.16],…,[songN,0.98]
歌曲聚类矩阵中每一行代表一个类别,其中包含了属于这个类别的歌曲id,以及这个歌曲属于这个类别的可能性。
由于歌单是由歌曲组成的,可以通过歌单歌曲附属关系,把歌曲属于某个类别的可能性累加到歌单上面,从而得到歌单聚类矩阵,具体形式如下:
class0:[playlist0,0.7],[playlist1,0.6],…,[playlistN,0.9]
class1:[playlist0,0.3],[playlist1,0.67],…,[playlistN,0.59]
class99:[playlist0,0.8],[playlist1,0.16],…,[playlistN,0.98]
其中,playlist0,playlist1,playlistN都是歌单的id,playlist0至playlistN都是整数,比如playlist0可以是2100009。
图3为歌单示意图。在图3中,歌单名称是:[安静]自习室里必备看书音乐,该歌单中包含19首歌曲,在服务器里,用一整数来标识该歌单,这个整数就是歌单id,该歌单中的每首歌曲都有歌曲id。
第一用户有其偏好歌单列表,比如,该歌单列表可以是[playlist0,playlist1,playlist2,…,playlistN],从偏好歌单列表中,计算出第一用户的歌单类别偏好,可以保留排名前P的类别,P为任一整数,当P为3时,第一用户的歌单类别偏好为[class0,class1,class2]。在歌单聚类矩阵中,根据歌单类别偏好,从第一用户的偏好歌单列表中选取这3个类别中的高分歌单进行推荐,这3个类别中的高分歌单构成第二歌单推荐候选集。
其中,通过以下方法获取第一用户的偏好歌单列表:
根据歌单收藏量、播放量、评论量、分享量,利用威尔逊置信区间计算歌单库中每个歌单的得分;根据歌单的得分,对歌单进行排序,获取预设个数的歌单作为精品歌单库;从精品歌单库中获取所述第一用户的偏好歌单列表。
具体地,根据歌单库中每个歌单的收藏量、播放量、评论量、分享量四个维度,采用威尔逊置信区间(Wilson score interval)给歌单打分,将歌单评分问题转化为投票问题。威尔逊得分区间具体公式如下:
Figure BDA0001137989140000131
其中,p是歌单的好评率,n是总投票数,Z(1-α/2)表示对应某个置信水平的z统计量,为一常数,可以通过查表得到。一般情况下,在95%的置信水平下,z统计量的值为1.96,因此,将歌单得分问题转化为投票问题。
从公式四看到,当n的值足够大时,威尔逊得分区间的下限值会趋向大。如果n非常小(投票人很少),这个下限值会大大小于。实际上,n起到了降低“好评率”的作用,使该歌单得分变小、排名下降。
图4是根据威尔逊得分区计算出来的歌单得分值示意图。如果一个歌单有1个好评,没有差评,它的支持率是100%,但是由于数据量过小,系统还是会把它放到底部。但如果一个歌单有10个好评,1个差评,系统可能会有足够的信息把该歌单放到一个有着40个好评,20个差评的另一个歌单之前,因为基本确认当该歌单有40个好评的时候,它收到的差评会少于20个。一旦这个算法出错(算法有15%的失效概率),系统会很快拿到更多的歌单得分数据,因为根据威尔逊置信区间中的歌单得分,歌单得分高,该歌单已经被排到了前面。
计算完成歌单得分后,可以取分值排名前5万的歌单作为精品歌单库,后续中用到的歌单,比如S120和S130中所涉及的歌单,都是从精品歌单库中按照规则筛选的。精品歌单库的构建,很好的保证了歌单的品质、音质、好听度。
S140,根据第一歌单推荐候选集和第二歌单推荐候选集,向第一用户推送歌单推荐列表。
合并第一歌单推荐候选集和第二歌单推荐候选集,根据机器学习的方法,使用相关的排序模型,从第一歌单推荐候选集和第二歌单推荐候选集中获取歌单推荐列表,并推送给第一用户。
其中,排序模型包括但不限于非线性模型、线性模型。图5是非线性模型示意图。非线性模型能较好的捕捉特征中的非线性关系,但训练和预测的代价相对线性模型要高,导致非线性模型的更新周期相对要长。反之,线性模型对特征的处理要求比较高,需要凭借领域知识和经验,人工对特征做一些先期处理,但因为线性模型简单,因此在训练和预测时效率较高,更新周期短。在实践中,非线性模型和线性模型都有应用。
目前主要采用非线性的树模型(Additive Groves,AG),相对于线性模型,非线性模型可以更好的处理特征中的非线性关系,不必像线性模型在特征处理和特征组合上花费较大的精力。AG是一个加性模型,由很多个树组成,不同的树之间进行打包得出最后的预测结果,由此可以减小过拟合的影响。
根据本发明实施例提供的歌单推荐方法,获取第一用户在预设天数内的歌曲播放列表以及歌曲播放列表中所有歌曲的偏好得分,并获得所有歌曲的偏好得分对应的听歌偏好矩阵;根据歌曲播放列表,获得歌曲播放列表中歌曲的歌曲词向量,基于歌曲词向量和听歌偏好矩阵确定歌曲相似矩阵,根据听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集;根据歌曲词向量,获得歌单聚类矩阵;根据歌单聚类矩阵,确定第二歌单推荐候选集;根据第一歌单推荐候选集和第二歌单推荐候选集,向第一用户推送歌单推荐列表,该方法保证了歌单内歌曲的好听度、多样性以及相似度,提高了歌单质量,提升了用户体验。
图6为本发明实施例提供的歌单推荐装置示意图,如图6所示,该歌单推荐装置包括:获取模块610,第一确定模块620,第二确定模块630,推送模块640。
其中,获取模块610用于获取第一用户在预设天数内的歌曲播放列表以及所述歌曲播放列表中所有歌曲的偏好得分,并获得所述所有歌曲的偏好得分对应的听歌偏好矩阵。
第一确定模块620用于根据所述歌曲播放列表,获得所述歌曲播放列表中所有歌曲的歌曲词向量,基于所述歌曲词向量和所述听歌偏好矩阵确定歌曲相似矩阵,根据所述听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集。
第二确定模块630用于根据所述歌曲词向量,获得歌单聚类矩阵;根据所述歌单聚类矩阵,确定第二歌单推荐候选集。
推送模块640用于根据所述第一歌单推荐候选集和所述第二歌单推荐候选集,向所述第一用户推送歌单推荐列表。
获取模块610具体用于定时解析所述第一用户的音乐盒播歌日志,获取第一用户的当日歌曲播放列表中每首歌曲对应的听歌行为数据和听歌来源数据;根据听歌行为数据对应的权重以及听歌来源数据对应的权重,确定第一用户当日歌曲播放列表对应的当日偏好得分;合并当前日期之前预设天数内的第一用户的当日偏好得分,得到第一用户在预设天数内听过的每首歌曲的偏好得分;根据第一用户在预设天数内听过的每首歌曲的播歌量对每首歌曲的偏好得分进行热度降权和归一化处理,得到处理后的第一用户在预设天数内听过的每首歌曲的偏好得分;对所述处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分进行排序,并根据排序结果,确定听歌偏好矩阵。
第一确定模块620具体用于采用word2vec工具对歌曲播放列表中的歌曲进行训练,获得歌曲词向量;根据歌曲词向量,确定听歌偏好矩阵中任意两首歌之间的相似度;根据相似度,确定听歌偏好矩阵中每一首歌曲的相似歌曲,生成歌曲相似矩阵;从听歌偏好矩阵中提取第一用户喜欢的预设个数的歌曲,并从歌曲相似矩阵中获取第一用户喜欢的预设个数的歌曲对应的相似歌曲,根据第一用户喜欢的预设个数的歌曲和第一用户喜欢的预设个数的歌曲对应的相似歌曲确定第一歌单推荐候选集。
第二确定模块630具体用于根据歌曲词向量,确定听歌偏好矩阵中任意两首歌之间的相似度;根据相似度,采用word2vec工具,对听歌偏好矩阵中的歌曲进行聚类,生成歌曲聚类矩阵;根据歌曲聚类矩阵,生成歌单聚类矩阵;根据歌单聚类矩阵,以及第一用户的偏好歌单列表,确定第二歌单推荐候选集。
第一用户的偏好歌单列表具体包括:根据歌单收藏量、播放量、评论量、分享量,利用威尔逊置信区间计算歌单库中每个歌单的得分;根据所述歌单的得分,对所述歌单进行排序,获取预设个数的歌单作为精品歌单库;从精品歌单库中获取所述第一用户的偏好歌单列表。
根据本发明实施例提供的歌单推荐装置,获取模块获取第一用户在预设天数内的歌曲播放列表以及歌曲播放列表中歌曲的偏好得分,并获得所有歌曲的偏好得分对应的听歌偏好矩阵;第一确定模块根据歌曲播放列表,获得歌曲播放列表中所有歌曲的歌曲词向量,基于歌曲词向量和听歌偏好矩阵确定歌曲相似矩阵,根据听歌偏好矩阵和歌曲相似矩阵,确定第一歌单推荐候选集;第二确定模块根据歌曲词向量,获得歌单聚类矩阵;根据歌单聚类矩阵,确定第二歌单推荐候选集;推送模块根据所述第一歌单推荐候选集和第二歌单推荐候选集,向第一用户推送歌单推荐列表,该装置保证了歌单内歌曲的好听度、多样性以及相似度,提高了歌单质量,提升了用户体验。
本领域普通技术人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执轨道,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执轨道的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种歌单推荐方法,其特征在于,包括以下步骤:
获取第一用户在预设天数内的歌曲播放列表以及所述歌曲播放列表中所有歌曲的偏好得分,并获得所述所有歌曲的偏好得分对应的听歌偏好矩阵;
根据所述歌曲播放列表,获得所述歌曲播放列表中所有歌曲的歌曲词向量,基于所述歌曲词向量和所述听歌偏好矩阵确定歌曲相似矩阵,根据所述听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集;
根据所述歌曲词向量,确定所述听歌偏好矩阵中任意两首歌之间的相似度;
根据所述相似度,采用word2vec工具,对所述听歌偏好矩阵中的歌曲进行聚类,生成歌曲聚类矩阵;
根据所述歌曲聚类矩阵,生成歌单聚类矩阵;所述生成歌单聚类矩阵包括:可以通过歌单歌曲附属关系,把歌曲属于任意一个类别的可能性累加到歌单上面,得到歌单聚类矩阵;
根据歌单聚类矩阵,以及第一用户的偏好歌单列表,确定第二歌单推荐候选集;
根据所述第一歌单推荐候选集和所述第二歌单推荐候选集,向所述第一用户推送歌单推荐列表。
2.根据权利要求1所述的方法,其特征在于,所述获取第一用户在预设天数内的歌曲播放列表以及所述歌曲播放列表中所有歌曲的偏好得分,并获得所述所有歌曲的偏好得分对应的听歌偏好矩阵具体包括:
定时解析所述第一用户的音乐盒播歌日志,获取所述第一用户的当日歌曲播放列表中每首歌曲对应的听歌行为数据和听歌来源数据;
根据所述听歌行为数据对应的权重以及所述听歌来源数据对应的权重,确定所述第一用户当日歌曲播放列表对应的当日偏好得分;
合并当前日期之前预设天数内的所述第一用户的当日偏好得分,得到所述第一用户在预设天数内听过的每首歌曲的偏好得分;
根据所述第一用户在预设天数内听过的每首歌曲的播歌量对每首歌曲的偏好得分进行热度降权和归一化处理,得到处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分;
对所述处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分进行排序,并根据排序结果,确定听歌偏好矩阵。
3.根据权利要求1所述的方法,其特征在于,所述根据所述歌曲播放列表,获得所述歌曲播放列表中所有歌曲的歌曲词向量,基于所述歌曲词向量和所述听歌偏好矩阵确定歌曲相似矩阵,根据所述听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集具体包括:
采用word2vec工具对所述歌曲播放列表中的歌曲进行训练,获得歌曲词向量;
根据所述歌曲词向量,确定所述听歌偏好矩阵中任意两首歌之间的相似度;根据所述相似度,确定所述听歌偏好矩阵中每一首歌曲的相似歌曲,生成歌曲相似矩阵;
从所述听歌偏好矩阵中提取第一用户喜欢的预设个数的歌曲,并从所述歌曲相似矩阵中获取所述第一用户喜欢的预设个数的歌曲对应的相似歌曲,根据所述第一用户喜欢的预设个数的歌曲和所述第一用户喜欢的预设个数的歌曲对应的相似歌曲确定第一歌单推荐候选集。
4.根据权利要求1所述的方法,其特征在于,所述第一用户的偏好歌单列表具体包括:
根据歌单收藏量、播放量、评论量、分享量,利用威尔逊置信区间计算歌单库中每个歌单的得分;
根据所述歌单的得分,对所述歌单进行排序,获取预设个数的歌单作为精品歌单库;
从精品歌单库中获取所述第一用户的偏好歌单列表。
5.一种歌单推荐装置,其特征在于,包括以下模块:获取模块,第一确定模块,第二确定模块,推送模块;
所述获取模块,用于获取第一用户在预设天数内的歌曲播放列表以及所述歌曲播放列表中所有歌曲的偏好得分,并获得所述所有歌曲的偏好得分对应的听歌偏好矩阵;
所述第一确定模块,用于根据所述歌曲播放列表,获得所述歌曲播放列表中所有歌曲的歌曲词向量,基于所述歌曲词向量和所述听歌偏好矩阵确定歌曲相似矩阵,根据所述听歌偏好矩阵和所述歌曲相似矩阵,确定第一歌单推荐候选集;
所述第二确定模块,用于根据所述歌曲词向量,获得歌单聚类矩阵;根据所述歌单聚类矩阵,确定第二歌单推荐候选集,具体包括:根据所述歌曲词向量,确定所述听歌偏好矩阵中任意两首歌之间的相似度;
根据所述相似度,采用word2vec工具,对所述听歌偏好矩阵中的歌曲进行聚类,生成歌曲聚类矩阵;
根据所述歌曲聚类矩阵,生成歌单聚类矩阵;所述生成歌单聚类矩阵包括:可以通过歌单歌曲附属关系,把歌曲属于任意一个类别的可能性累加到歌单上面,得到歌单聚类矩阵;
根据歌单聚类矩阵,以及第一用户的偏好歌单列表,确定第二歌单推荐候选集;
所述推送模块,用于根据所述第一歌单推荐候选集和所述第二歌单推荐候选集,向所述第一用户推送歌单推荐列表。
6.根据权利要求5所述的装置,其特征在于,所述获取模块具体用于,定时解析所述第一用户的音乐盒播歌日志,获取所述第一用户的当日歌曲播放列表中每首歌曲对应的听歌行为数据和听歌来源数据;
根据所述听歌行为数据对应的权重以及所述听歌来源数据对应的权重,确定所述第一用户当日歌曲播放列表对应的当日偏好得分;
合并当前日期之前预设天数内的所述第一用户的当日偏好得分,得到所述第一用户在预设天数内听过的每首歌曲的偏好得分;
根据所述第一用户在预设天数内听过的每首歌曲的播歌量对每首歌曲的偏好得分进行热度降权和归一化处理,得到处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分;
对所述处理后的所述第一用户在预设天数内听过的每首歌曲的偏好得分进行排序,并根据排序结果,确定听歌偏好矩阵。
7.根据权利要求5所述的装置,其特征在于,所述第一确定模块具体用于,采用word2vec工具对所述歌曲播放列表中的歌曲进行训练,获得歌曲词向量;
根据所述歌曲词向量,确定所述听歌偏好矩阵中任意两首歌之间的相似度;根据所述相似度,确定所述听歌偏好矩阵中每一首歌曲的相似歌曲,生成歌曲相似矩阵;
从所述听歌偏好矩阵中提取第一用户喜欢的预设个数的歌曲,并从所述歌曲相似矩阵中获取所述第一用户喜欢的预设个数的歌曲对应的相似歌曲,根据所述第一用户喜欢的预设个数的歌曲和所述第一用户喜欢的预设个数的歌曲对应的相似歌曲确定第一歌单推荐候选集。
8.根据权利要求5所述的装置,其特征在于,所述第一用户的偏好歌单列表具体包括:
根据歌单收藏量、播放量、评论量、分享量,利用威尔逊置信区间计算歌单库中每个歌单的得分;
根据所述歌单的得分,对所述歌单进行排序,获取预设个数的歌单作为精品歌单库;
从精品歌单库中获取所述第一用户的偏好歌单列表。
CN201610942851.7A 2016-10-31 2016-10-31 一种歌单推荐方法及装置 Active CN108021568B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610942851.7A CN108021568B (zh) 2016-10-31 2016-10-31 一种歌单推荐方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610942851.7A CN108021568B (zh) 2016-10-31 2016-10-31 一种歌单推荐方法及装置

Publications (2)

Publication Number Publication Date
CN108021568A CN108021568A (zh) 2018-05-11
CN108021568B true CN108021568B (zh) 2020-09-08

Family

ID=62070657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610942851.7A Active CN108021568B (zh) 2016-10-31 2016-10-31 一种歌单推荐方法及装置

Country Status (1)

Country Link
CN (1) CN108021568B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108629047B (zh) * 2018-05-14 2023-04-14 平安科技(深圳)有限公司 一种歌曲清单生成方法及终端设备
CN108984731A (zh) * 2018-07-12 2018-12-11 腾讯音乐娱乐科技(深圳)有限公司 歌单推荐方法、装置及存储介质
CN108875090B (zh) * 2018-08-07 2023-02-28 腾讯科技(深圳)有限公司 一种歌曲推荐方法、装置和存储介质
CN110737859B (zh) * 2019-09-09 2022-09-27 苏宁云计算有限公司 一种up主匹配方法及装置
CN110598040B (zh) * 2019-09-17 2023-10-10 上海喜马拉雅科技有限公司 专辑召回方法、装置、设备及存储介质
CN111078931B (zh) * 2019-12-10 2023-08-01 腾讯科技(深圳)有限公司 歌单推送方法、装置、计算机设备及存储介质
CN111767426B (zh) * 2020-06-22 2024-04-26 北京声智科技有限公司 一种歌曲推荐方法及装置
CN112506396B (zh) * 2020-12-14 2022-09-09 北京达佳互联信息技术有限公司 资源显示方法、装置、电子设备及存储介质
CN112860937B (zh) * 2021-01-28 2022-09-02 陕西师范大学 一种基于knn和词嵌入的混合音乐推荐方法、系统及设备
CN112836082B (zh) * 2021-02-08 2023-01-10 咪咕音乐有限公司 生成歌单的方法、装置、电子设备及存储介质
CN113268629B (zh) * 2021-04-29 2023-01-03 西安交通大学 一种融合节点偏好的异构图歌单多标签推荐方法
CN113836401B (zh) * 2021-09-07 2024-03-22 咪咕音乐有限公司 歌单推荐方法、装置及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865600B1 (en) * 2000-05-19 2005-03-08 Napster, Inc. System and method for selecting internet media channels
CN102654860A (zh) * 2011-03-01 2012-09-05 北京彩云在线技术开发有限公司 一种个性化音乐推荐方法及系统
CN104991900A (zh) * 2015-06-09 2015-10-21 腾讯科技(深圳)有限公司 一种音乐数据推送方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080147711A1 (en) * 2006-12-19 2008-06-19 Yahoo! Inc. Method and system for providing playlist recommendations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6865600B1 (en) * 2000-05-19 2005-03-08 Napster, Inc. System and method for selecting internet media channels
CN102654860A (zh) * 2011-03-01 2012-09-05 北京彩云在线技术开发有限公司 一种个性化音乐推荐方法及系统
CN104991900A (zh) * 2015-06-09 2015-10-21 腾讯科技(深圳)有限公司 一种音乐数据推送方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
个性化音乐推荐系统的研究与实现;刘杨;《中国优秀硕士学位论文全文数据库》;20150415(第04期);I138-1236 *

Also Published As

Publication number Publication date
CN108021568A (zh) 2018-05-11

Similar Documents

Publication Publication Date Title
CN108021568B (zh) 一种歌单推荐方法及装置
CN106953887B (zh) 一种细粒度电台音频内容个性化组织推荐方法
CN106227815B (zh) 一种多模态线索的个性化应用程序功能推荐方法及其系统
US8880447B2 (en) Systems and methods for matching people based on perceived activities
US20210056571A1 (en) Determining of summary of user-generated content and recommendation of user-generated content
Shi et al. Learning-to-rank for real-time high-precision hashtag recommendation for streaming news
KR20160057475A (ko) 소셜 데이터를 능동적으로 획득하기 위한 시스템 및 방법
CN111708901A (zh) 多媒体资源推荐方法、装置、电子设备及存储介质
CN107967280B (zh) 一种标签推荐歌曲的方法及系统
US20140074828A1 (en) Systems and methods for cataloging consumer preferences in creative content
CN112104642B (zh) 一种异常账号确定方法和相关装置
CN103455538B (zh) 信息处理装置、信息处理方法和程序
US11934977B2 (en) Dynamic and continuous onboarding of service providers in an online expert marketplace
CN113392331A (zh) 文本处理方法及设备
CN110956210A (zh) 一种基于ap聚类的半监督网络水军识别方法及系统
WO2017210644A1 (en) System and method for a platform to identify and connect like-minded individuals based on interaction
Schedl et al. Mining microblogs to infer music artist similarity and cultural listening patterns
Hyung et al. Utilizing context-relevant keywords extracted from a large collection of user-generated documents for music discovery
CN103488669A (zh) 信息处理设备、信息处理方法和程序
Han et al. Context-aware personal information retrieval from multiple social networks
Johnson Chance the Rapper, Spotify, and musical categorization in the 2010s
CN113392315A (zh) 一种主题类型挖掘方法、装置、设备及存储介质
Abid et al. Comparative analysis of TF-IDF and loglikelihood method for keywords extraction of twitter data
CN106599114A (zh) 音乐推荐方法及系统
CN111639199A (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