具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
下面参考附图描述根据本发明实施例的多媒体文件的推荐方法和推荐服务器。
目前,推荐服务器向用户推荐多媒体文件时可以通过协同过滤方法为待推荐的用户生成多媒体文件的推荐列表,例如,首先推荐服务器获取所有用户在一段时期内的播放行为信息,其中播放行为信息包括用户播放过的音乐以及对应的偏好权值,推荐服务器将每个用户的播放行为信息表示为一个向量,其中播放过的音乐为向量的维度,偏好权值为向量的维度值。
然后推荐服务器分别计算每两个用户播放行为信息的相似度,例如可以使用余弦相似度,推荐服务器计算每两个用户播放行为信息的向量之间夹角的余弦值,并根据余弦值获取与待推荐用户在播放偏好上最相近的K个用户。
然后推荐服务器根据用户的播放偏好获取K个用户中每个用户的N首音乐,并根据N首音乐为待推荐用户生成一个M×K的矩阵S,其中,M为K个用户的偏好歌曲总数,同时将待推荐用户和K个用户之间的相似度表示为一个K×1的矩阵U,推荐服务器将矩阵S和矩阵U相乘得到矩阵P,其中P为一个M×1的矩阵,矩阵中每一行的值分别对应这M首音乐的权值,然后推荐服务器将矩阵P中权值小于一定阈值的音乐删除,并按照权值由高到低的顺序对音乐进行排序生成推荐列表给当前待推荐的用户。
该方法由于K个用户之间的播放偏好并不相似,导致推荐列表中的音乐与待推荐用户的播放偏好相差甚远。如果推荐服务器可以对所有用户的播放偏好进行挖掘,并对所有用户做分群计算,将具有相同播放偏好的用户聚在一个用户群中,这样,同一用户群中的用户都具有相同的播放偏好,推荐服务器在此基础上对基于同一用户群中的用户通过协同过滤方法生成推荐列表,可以保证推荐列表具有和待推荐用户相似的音乐风格,并且与待推荐用户的播放偏好一致。为此,本发明提出了一种多媒体文件的推荐方法,包括以下步骤:推荐服务器获取N个用户的N个多媒体播放行为信息,其中,N为正整数;推荐服务器根据N个多媒体播放行为信息对N个用户进行聚类以获取M个用户群,其中,M为正整数且M小于N;以及推荐服务器获取待推荐用户的多媒体播放行为信息,并根据多媒体播放行为信息获取待推荐用户对应的用户群,以及根据用户群向待推荐用户推荐对应的多媒体文件。
图1是根据本发明一个实施例的多媒体文件的推荐方法的流程图。
如图1所示,多媒体文件的推荐方法包括:
S101,推荐服务器获取N个用户的N个多媒体播放行为信息,其中,N为正整数。
例如,历史行为信息可以包括用户完整播放的多媒体文件、跳过播放的多媒体文件、重新播放的多媒体文件、标记喜欢的多媒体文件、标记不喜欢的多媒体文件等。
S102,推荐服务器根据N个多媒体播放行为信息对N个用户进行聚类以获取M个用户群,其中,M为正整数且M小于N。
具体地,推荐服务器根据用户的多媒体播放行为信息将具有相同或者相似播放偏好的用户聚类在同一个用户群中,并将对应的用户播放偏好的描述信息(例如,摇滚、电子、流行等)作为用户群的标识信息。
S103,推荐服务器获取待推荐用户的多媒体播放行为信息,并根据多媒体播放行为信息获取待推荐用户对应的用户群,以及根据用户群向待推荐用户推荐对应的多媒体文件。
例如,如果待推荐用户正在播放的多媒体文件是摇滚类的,则推荐服务器获取标识信息为摇滚的用户群,并根据该用户群中用户播放偏好向待推荐用户推荐多媒体文件。
根据本发明实施例的多媒体文件的推荐方法,推荐服务器根据用户的多媒体播放行为信息将具有相同播放偏好的用户聚类至同一个用户群中,并根据待推荐用户对应的用户群推荐多媒体文件,解决了推荐多媒体文件时推荐结果发散、风格不统一、与待推荐用户偏好不一致的问题,使推荐结果更稳定,受数据稀疏性和用户播放行为随意性的影响较小,提升了用户体验。
图2是根据本发明一个具体实施例的多媒体文件的推荐方法的流程图。
推荐服务器可以根据N个多媒体播放行为信息分别获取N个用户对应的第一偏好信息,然后根据第一偏好信息对N个用户进行聚类分析以获取M个用户群,其中,为了使推荐服务器根据第一偏好信息对N个用户进行聚类分析更加准确、简单,推荐服务器可以根据第一偏好信息中的P个多媒体的多媒体标签生成第二偏好信息,并将具有相同或相似第二偏好信息的用户聚在同一个用户群中,具体地如图2所示,多媒体文件的推荐方法包括:
S201,推荐服务器获取N个用户的N个多媒体播放行为信息,其中,N为正整数。
例如,历史行为信息可以包括用户完整播放的多媒体文件、跳过播放的多媒体文件、重新播放的多媒体文件、标记喜欢的多媒体文件、标记不喜欢的多媒体文件等。
S202,推荐服务器根据N个多媒体播放行为信息分别获取N个用户对应的第一偏好信息。
在本发明的一个实施例中,第一偏好信息包括用户播放过的P个多媒体和对应的第一权值,其中,P为正整数。例如,如表1所示,用户A的第一偏好信息包括音乐1和对应的权值70、音乐2和对应的权值50以及音乐3和对应的权值40等。
表1
S203,推荐服务器分别获取N个用户对应的P个多媒体的标签。
例如,多媒体的标签可以是年代\语言\音调\节奏\曲风等。
S204,推荐服务器根据P个多媒体的标签和对应的第一权值获取N个用户的第二偏好信息,其中,第二偏好信息包括Q个标签和对应的第二权值,Q为正整数且小于P。
例如,推荐服务器根据用户A的P个多媒体和第一权值以及P个多媒体的标签可以分别计算出Q个标签的第二权值。如表2所示,推荐服务器通过计算Q个标签的第二权值获取的用户A的第二偏好信息包括摇滚和对应的权值70、电子和对应的权值60以及乡村和对应的权值30等。
表2
S205,推荐服务器根据第二偏好信息对N个用户进行聚类以获取M个用户群。
具体地,推荐服务器将具有相同或者相似第二偏好信息的用户聚类在同一个用户群中,并将对应的第二偏好信息的描述信息(例如,摇滚、电子、流行等)作为用户群的标识信息。例如,如表3所示,摇滚标签的用户群中包括用户A和用户B。
用户群1(摇滚) |
用户A用户B |
用户群2(电子) |
用户A用户C |
用户群3(流行) |
用户B用户C |
用户群4(乡村) |
用户A |
表3
在本发明的一个实施例中,推荐服务器分别对M个用户群进行剪枝处理。其中剪枝处理也即过滤处理,主要针对两方面内容:一是每个用户的所属用户群不唯一,每个用户针对所属的每个用户群又有一个所属权重,可以标识该用户以多大所属权重属于该用户群,因此每个用户只取M个用户群中所属权重最大的用户群,以使得每个用户所属用户群唯一;二是将包含用户过少的用户群过滤,例如可以预设范围过滤用户个数小于预设范围的用户群,因为这些用户群没有实际的推荐和应用价值。
S206,推荐服务器获取待推荐用户的多媒体播放行为信息,并根据多媒体播放行为信息获取待推荐用户对应的用户群,以及根据用户群向待推荐用户推荐对应的多媒体文件。
例如,如果待推荐用户正在播放的多媒体文件是摇滚类的,则推荐服务器获取标识信息为摇滚的用户群,并根据该用户群中用户播放偏好向待推荐用户推荐多媒体文件。
根据本发明实施例的多媒体文件的推荐方法,推荐服务器根据多媒体播放行为信息分别获取用户对应的第一偏好信息,并根据用户对应的第一偏好信息获取第二偏好信息,可以使推荐服务器根据第二偏好信息将具有相同播放偏好的用户聚类至同一个用户群中。
在本发明的一个实施例中,推荐服务器获取用户的第二偏好信息后,将每个用户的第二偏好信息中的标签和对应的第二权值表示为一个向量,在进行推荐时将用户对多媒体的播放偏好向上汇总到对多媒体的特征偏好,由此可以增加鲁棒性(稳定性),降低聚类时由于数据稀疏性导致的聚类不准确的风险。
图3是根据本发明另一个具体实施例的多媒体文件的推荐方法的流程图。
推荐服务器将具有相同或相似播放偏好的用户聚在同一个用户群中之后,可以根据同一个用户群中其他用户的播放偏好进行线性组合得到推荐列表,具体地如图3所示,多媒体文件的推荐方法包括:
S301,推荐服务器获取N个用户的N个多媒体播放行为信息,其中,N为正整数。
例如,历史行为信息可以包括用户完整播放的多媒体文件、跳过播放的多媒体文件、重新播放的多媒体文件、标记喜欢的多媒体文件、标记不喜欢的多媒体文件等。
S302,推荐服务器根据N个多媒体播放行为信息分别获取N个用户对应的第一偏好信息。
在本发明的一个实施例中,第一偏好信息包括用户播放过的P个多媒体和对应的第一权值,其中,P为正整数。例如,如表1所示,用户A的第一偏好信息包括音乐1和对应的权值70、音乐2和对应的权值50以及音乐3和对应的权值40等。
S303,推荐服务器分别获取N个用户对应的P个多媒体的标签。
例如,多媒体的标签可以是年代\语言\音调\节奏\曲风等。
S304,推荐服务器根据P个多媒体的标签和对应的第一权值获取N个用户的第二偏好信息,其中,第二偏好信息包括Q个标签和对应的第二权值,Q为正整数且小于P。
例如,推荐服务器根据用户A的P个多媒体和第一权值以及P个多媒体的标签可以分别计算出Q个标签的第二权值。如表2所示,推荐服务器通过计算Q个标签的第二权值获取的用户A的第二偏好信息包括摇滚和对应的权值70、电子和对应的权值60以及乡村和对应的权值30等。
S305,推荐服务器根据第二偏好信息对N个用户进行聚类以获取M个用户群。
具体地,推荐服务器将具有相同或者相似第二偏好信息的用户聚类在同一个用户群中,并将对应的第二偏好信息的描述信息(例如,摇滚、电子、流行等)作为用户群的标识信息。例如,如表3所示,摇滚标签的用户群中包括用户A和用户B。
在本发明的一个实施例中,推荐服务器分别对M个用户群进行剪枝处理。
S306,推荐服务器获取待推荐用户的多媒体播放行为信息,并根据多媒体播放行为信息获取待推荐用户对应的用户群。
例如,如表3所示,如果待推荐用户D正在播放的多媒体文件是摇滚类的,则推荐服务器获取标识信息为摇滚的用户群1。应当理解,待推荐用户还可以是用户群中的用户,如用户C等。
S307,推荐服务器获取用户群中每个用户播放过的多媒体文件的候选列表。
例如,如表1所示,推荐服务器分别获取用户群1中用户A、用户B和用户C播放过的音乐,并将音乐分别加入到用户A、用户B和用户C的多媒体文件的候选列表中。
S308,推荐服务器根据待推荐用户的多媒体播放行为信息获取待推荐用户播放过的多媒体文件的播放列表。
例如,获取用户D播放过的所有多媒体文件的播放列表。
S309,推荐服务器根据播放列表对候选列表进行过滤以获取用户的多媒体文件的推荐列表。
例如,将包括用户A、用户B和用户C播放过的多媒体文件的候选列表和用户D播放过的所有多媒体文件的播放列表进行比对,将相同的多媒体文件删除从候选列表中删除以获取推荐列表。
S310,推荐服务器根据推荐列表向待推荐用户推荐对应的多媒体文件。
应理解,推荐过程不仅限于S306-310所述还可以包括其他的推荐方法。
根据本发明实施例的多媒体文件的推荐方法,推荐服务器通过待推荐用户的多媒体文件的播放列表对用户群中用户的多媒体文件的候选列表进行过滤以获取用户的多媒体文件的推荐列表,可以避免推荐服务器向用户推荐用户播放过的多媒体文件,提升了用户体验。
为了实现上述实施例,本发明还提出一种推荐服务器。
一种推荐服务器,包括:第一获取模块,用于获取N个用户的N个多媒体播放行为信息,其中,N为正整数;聚类模块,用于根据N个多媒体播放行为信息对N个用户进行聚类以获取M个用户群,其中,M为正整数且M小于N;第二获取模块,用于获取待推荐用户的多媒体播放行为信息,并根据多媒体播放行为信息获取待推荐用户对应的用户群;以及推荐模块,用于根据用户群向待推荐用户推荐对应的多媒体文件。
图4是根据本发明一个实施例的推荐服务器的结构示意图。
如图4所示,推荐服务器包括:第一获取模块100、聚类模块200、第二获取模块300和推荐模块400。
具体地,第一获取模块100用于获取N个用户的N个多媒体播放行为信息,其中,N为正整数。例如,历史行为信息可以包括用户完整播放的多媒体文件、跳过播放的多媒体文件、重新播放的多媒体文件、标记喜欢的多媒体文件、标记不喜欢的多媒体文件等。
聚类模块200用于根据第一获取模块100获取的N个多媒体播放行为信息对N个用户进行聚类以获取M个用户群,其中,M为正整数且M小于N。更具体地,聚类模块200根据用户的多媒体播放行为信息将具有相同或者相似播放偏好的用户聚类在同一个用户群中,并将对应的用户播放偏好的描述信息(例如,摇滚、电子、流行等)作为用户群的标识信息。
第二获取模块300用于获取待推荐用户的多媒体播放行为信息,并根据多媒体播放行为信息获取待推荐用户对应的用户群。例如,如果待推荐用户正在播放的多媒体文件是摇滚类的,则第二获取模块300获取标识信息为摇滚的用户群。
推荐模块400用于根据第二获取模块300获取的用户群向待推荐用户推荐对应的多媒体文件。
例如,推荐模块400可以根据标识信息为摇滚的用户群中用户播放偏好向待推荐用户推荐多媒体文件。
根据本发明实施例的推荐服务器,根据用户的多媒体播放行为信息将具有相同播放偏好的用户聚类至同一个用户群中,并根据待推荐用户对应的用户群推荐多媒体文件,解决了推荐多媒体文件时推荐结果发散、风格不统一、与待推荐用户偏好不一致的问题,使推荐结果更稳定,受数据稀疏性和用户播放行为随意性的影响较小,提升了用户体验。
图5是根据本发明一个具体实施例的推荐服务器的结构示意图。
如图5所示,推荐服务器包括:第一获取模块100、聚类模块200、第二获取模块300、推荐模块400、第一获取单元210和聚类单元220。其中,聚类模块200包括:第一获取单元210和聚类单元220。
具体地,第一获取单元210用于根据第一获取模块100获取的N个多媒体播放行为信息分别获取N个用户对应的第一偏好信息。
在本发明的一个实施例中,第一偏好信息包括用户播放过的P个多媒体和对应的第一权值,其中,P为正整数。例如,如表1所示,用户A的第一偏好信息包括音乐1和对应的权值70、音乐2和对应的权值50以及音乐3和对应的权值40。
表1
聚类单元220用于根据第一获取单元210获取的第一偏好信息对N个用户进行聚类以获取M个用户群。更具体地,聚类单元220将具有相同或者相似第一偏好信息的用户聚类在同一个用户群中,并将对应的第一偏好信息的描述信息(例如,摇滚、电子、流行等)作为用户群的标识信息。
根据本发明实施例的推荐服务器,根据多媒体播放行为信息分别获取每个用户对应的第一偏好信息,可以根据第一偏好信息将具有相同播放偏好的用户聚类至同一个用户群中。
图6是根据本发明另一个具体实施例的推荐服务器的结构示意图。
如图6所示,推荐服务器包括:第一获取模块100、聚类模块200、第二获取模块300、推荐模块400、剪枝模块500、第一获取单元210、聚类单元220、第二获取单元230和第三获取单元240。其中,聚类模块200包括:第一获取单元210、聚类单元220、第二获取单元230和第三获取单元240。
具体地,第二获取单元230用于分别获取第一获取单元210获取的N个用户对应的P个多媒体的标签。例如,多媒体的标签可以是年代\语言\音调\节奏\曲风等。
第三获取单元240用于根据第二获取单元230获取的P个多媒体的标签和第一获取单元210获取的对应的第一权值获取N个用户的第二偏好信息,其中,第二偏好信息包括Q个标签和对应的第二权值,Q为正整数且小于P。例如,第三获取单元240根据用户A的P个多媒体和第一权值以及P个多媒体的标签可以分别计算出Q个标签的第二权值。如表2所示,第三获取单元240通过计算Q个标签的第二权值获取的用户A的第二偏好信息包括摇滚和对应的权值70、电子和对应的权值60以及乡村和对应的权值30等。
表2
其中,聚类单元220还用于根据第三获取单元240获取的第二偏好信息对N个用户进行聚类以获取M个用户群。更具体地,聚类单元220将具有相同或者相似第二偏好信息的用户聚类在同一个用户群中,并将对应的标签(例如,摇滚、电子、流行等)作为用户群的标识信息。例如,如表3所示,摇滚标签的用户群中包括用户A和用户B。
用户群1(摇滚) |
用户A用户B |
用户群2(电子) |
用户A用户C |
用户群3(流行) |
用户B用户C |
用户群4(乡村) |
用户A |
表3
在本发明的一个实施例中,剪枝模块500用于分别对聚类单元220聚类生成的M个用户群进行剪枝处理。其中剪枝模块500进行剪枝处理也即过滤处理,主要针对两方面内容:一是每个用户的所属用户群不唯一,每个用户针对所属的每个用户群又有一个所属权重,可以标识该用户以多大所属权重属于该用户群,因此每个用户只取M个用户群中所属权重最大的用户群,以使得每个用户所属用户群唯一;二是将包含用户过少的用户群过滤,例如可以预设范围过滤用户个数小于预设范围的用户群,因为这些用户群没有实际的推荐和应用价值。
在本发明的一个实施例中,剪枝模块500是可选的。
根据本发明实施例的推荐服务器,根据用户对应的第一偏好信息获取第二偏好信息,可以使推荐服务器根据第二偏好信息将具有相同播放偏好的用户聚类至同一个用户群中。
图7是根据本发明又一个具体实施例的推荐服务器的结构示意图。
如图7所示,推荐服务器包括:第一获取模块100、聚类模块200、第二获取模块300、推荐模块400、剪枝模块500、第一获取单元210、聚类单元220、第二获取单元230、第三获取单元240、第一获取单元410、第二获取单元420、过滤单元430和推荐单元440。其中,聚类模块200包括:第一获取单元210、聚类单元220、第二获取单元230和第三获取单元240,推荐模块400包括:第一获取单元410、第二获取单元420、过滤单元430和推荐单元440。
具体地,第一获取单元410用于获取用户群中每个用户播放过的多媒体文件的候选列表。例如,如表1和表3所示,如果待推荐用户D正在播放的多媒体文件是摇滚类的,则第二获取模块300获取标识信息为摇滚的用户群1,然后第一获取单元410分别获取用户群1中用户A、用户B和用户C播放过的音乐,并将音乐分别加入到用户A、用户B和用户C的多媒体文件的候选列表中。
第二获取单元420用于根据待推荐用户的多媒体播放行为信息获取待推荐用户播放过的多媒体文件的播放列表。例如,第二获取单元420获取用户D播放过的所有多媒体文件的播放列表。
过滤单元430用于根据第二获取单元420获取的播放列表对候选列表进行过滤以获取用户的多媒体文件的推荐列表。例如,过滤单元430将包括用户A、用户B和用户C播放过的多媒体文件的候选列表和用户D播放过的所有多媒体文件的播放列表进行比对,将相同的多媒体文件删除从候选列表中删除以获取推荐列表。
推荐单元440用于根据推荐列表向待推荐用户推荐对应的多媒体文件。
在本发明的一个实施例中,剪枝模块500是可选的。
根据本发明实施例的推荐服务器,通过待推荐用户的多媒体文件的播放列表对用户群中用户的多媒体文件的候选列表进行过滤以获取用户的多媒体文件的推荐列表,可以避免推荐服务器向用户推荐用户播放过的多媒体文件,提升了用户体验。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。