基于加权k近邻评分的直播间推荐方法及系统与流程

文档序号:12364429阅读:283来源:国知局

本发明涉及网络直播间的推广领域,具体涉及一种基于加权k近邻评分的直播间推荐方法及系统。



背景技术:

随着智能终端的多屏化发展,中国社交视频的直播平台的活跃用户正在不断发展壮大中,人们对“即时观看喜爱的直播内容并与主播互动”的需求越来越高。因此,如何发掘用户兴趣点、给用户精准推荐直播间来提高用户粘性、促进用户的付费转化,将是直播行业很长一段时间将要面临的一道难题。

目前,传统的直播平台为用户推荐直播间(即观看的直播内容的链接)的方法一般为基于k近邻的推荐方法,采用该方法为用户A推荐直播间(即观看的直播内容的链接)的具体流程为:首先利用相似度计算公式选出与用户A的兴趣爱好相似K个用户(例如B1,B2,…,BK),然后在K个用户最喜欢观看的直播间并进行合并,将合并的直播间以推荐列表的形式呈现给用户A,供用户A选择观看。

但是,上述基于k近邻的推荐方法为用户推荐直播间时,存在以下缺陷:用户A在K个用户喜爱的直播间形成推荐列表中进行选择时,因为K个用户中不同用户与用户A的相似程度(观看品位)不同,所以用户A难以在推荐列表中,快速找到与自己相似程度最相近或相同的用户推荐的直播间;由于相似程度越高,推荐的直播间就越准确,因此,现有的基于k近邻的推荐方法难以快速为用户推荐相似程度高的直播间,即推荐的准确度不够,推荐效果有待提高。



技术实现要素:

针对现有技术中存在的缺陷,本发明解决的技术问题为:提高推荐给用户的直播间的准确度,进而为用户快速的推荐符合用户兴趣爱好和个性化需求的直播间。

为达到以上目的,本发明提供的基于加权k近邻评分的直播间推荐方法,包括以下步骤:

S1:获取直播平台中每个用户的直播间观看向量,直播间观看向量包括:用户观看每个直播间的观看次数集合;

S2:根据直播间观看向量,计算每2个用户的相似度;

S3:为所述每个用户按照相似度降序排列的方法,选取前N个用户作为邻近用户,N>5;

S4:根据相似度和所述每个用户的邻近用户,计算每个用户m对每个观看过的直播间i的兴趣度计算公式为:

<mrow> <msub> <mover> <mi>S</mi> <mo>^</mo> </mover> <mrow> <mi>m</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <msub> <mi>S</mi> <mrow> <mi>n</mi> <mi>i</mi> </mrow> </msub> </mrow> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>|</mo> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>|</mo> </mrow> </mrow> </mfrac> <mo>;</mo> </mrow>

上述公式中,Rmn代表用户m和用户n的相似度,|Rmn|代表Rmn的绝对值;Ni(m)代表用户m的邻近用户集合,Sni代表用户n对直播间i的观看次数;

S5:为所述每个用户按照兴趣度降序排列的方法,选取前N个直播间作为推荐直播间,N>5。

本发明提供的实现上述方法的基于加权k近邻评分的直播间推荐系统,包括直播间观看向量获取模块、相似度计算模块、邻近用户选取模块、兴趣度计算模块和推荐直播间选取模块;

直播间观看向量获取模块用于:获取直播平台中每个用户的直播间观看向量,直播间观看向量包括:用户观看每个直播间的观看次数集合;

相似度计算模块用于:根据直播间观看向量获取模块获取的直播间观看向量,计算每2个用户的相似度;

邻近用户选取模块用于:为所述每个用户按照相似度降序排列的方法,选取前N个用户作为邻近用户,N>5;

兴趣度计算模块用于:根据相似度和所述每个用户的邻近用户,计算每个用户m对每个观看过的直播间i的兴趣度计算公式为:

<mrow> <msub> <mover> <mi>S</mi> <mo>^</mo> </mover> <mrow> <mi>m</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <msub> <mi>S</mi> <mrow> <mi>n</mi> <mi>i</mi> </mrow> </msub> </mrow> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>|</mo> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>|</mo> </mrow> </mrow> </mfrac> <mo>;</mo> </mrow>

上述公式中,Rmn代表用户m和用户n的相似度,|Rmn|代表Rmn的绝对值;Ni(m)代表用户m的邻近用户集合,Sni代表用户n对直播间i的观看次数;

推荐直播间选取模块用于:为所述每个用户按照兴趣度降序排列的方法,选取前N个直播间作为推荐直播间,N>5。

与现有技术相比,本发明的优点在于:

本发明基于加权k近邻评分,通过自主研发的公式计算出被推荐用户(即需要推荐直播间的用户)的邻近用户,根据邻近用户的相似度计算被推荐用户对观看过的每个直播间的兴趣度。与现有技术中难以快速为用户推荐准确的直播间相比,本发明根据由相似度计算的兴趣度评估和选取推荐直播间,推荐的直播间更加符合用户的兴趣爱好和个性化需求,推荐的准确度较高,推荐效果较好。

附图说明

图1为本发明实施例中基于加权k近邻评分的直播间推荐方法的流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

参见图1所示,本发明实施例中的基于加权k近邻评分的直播间推荐方法,包括以下步骤:

S1:获取直播平台中每个用户的直播间观看向量,直播间观看向量包括:用户观看每个直播间的观看次数集合。

S1的具体流程为:

S101:获取每个用户指定期限内(例如30天)的历史观看信息,历史观看信息的主要字段包括UID(用户唯一标识)、以及与UID关联的ROOM_ID(观看过的直播间的唯一标识)。

S102:在历史观看信息中,清除无效的历史观看信息(即清除无效UID和ROOM_ID为空的数据)后,得到有效的历史观看信息。根据有效的历史观看信息(ROOM_ID),统计用户观看的每个ROOM_ID对应的直播间的观看次数,所有观看次数的集合形成该用户的直播间观看向量X。例如X为:a1,a2,a3,a4,…,aN,则代表用户a分别对N个直播间的观看次数,a1表示用户a对直播间1的观看次数,以此类推。

S2:在直播平台的所用用户中,根据直播间观看向量X,计算每2个用户的相似度R,例如直播平台中有56个用户,则分别针对56个用户进行计算;计算时遍历除计算用户之外的其他用户,选择未重复计算的其他用户,计算该其他用户与计算用户的相似度。

S2中相似度R的计算公式为:

<mrow> <mi>R</mi> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>X</mi> <mi>u</mi> <mi>T</mi> </msubsup> <msub> <mi>X</mi> <mi>v</mi> </msub> </mrow> <mrow> <mrow> <mo>|</mo> <mrow> <mo>|</mo> <msub> <mi>X</mi> <mi>u</mi> </msub> <mo>|</mo> </mrow> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mrow> <mo>|</mo> <msub> <mi>X</mi> <mi>v</mi> </msub> <mo>|</mo> </mrow> <mo>|</mo> </mrow> </mrow> </mfrac> <mo>;</mo> </mrow>

上述公式中,Xu和Xv分别代表2个用户u和v的直播间观看向量,T代表矩阵转置,||Xu||和||Xv||分别代表Xu和Xv的模。

其实就是计算Xu和Xv的余弦夹角,从几何角度上,向量夹角越小,表示向量相似度越大。

S3:在直播平台的所用用户中,为所述每个用户按照相似度降序排列的方法,选取前N个用户作为邻近用户,N>5;例如本实施例中邻近用户的数量为12个,即为每个用户选取前12个相似度大的用户作为邻近用户。

S4:在直播平台的所用用户中,根据相似度R,计算每个用户m对每个观看过的直播间i的兴趣度计算公式为:

<mrow> <msub> <mover> <mi>S</mi> <mo>^</mo> </mover> <mrow> <mi>m</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <msub> <mi>S</mi> <mrow> <mi>n</mi> <mi>i</mi> </mrow> </msub> </mrow> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>|</mo> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>|</mo> </mrow> </mrow> </mfrac> <mo>;</mo> </mrow>

上述公式中,Rmn代表用户m和用户n的相似度,即以相似度作为权重,|Rmn|代表Rmn的绝对值;Ni(m)代表用户m的邻近用户集合(即用户n在用户m的邻近用户集合中选取),Sni代表用户n对直播间i的观看次数。考虑到以相似度作为权重的权重总和不一定为1,所以这里除以的目的是对新生成的兴趣度作标准化处理。

S5:在直播平台的所用用户中,为每个用户按照兴趣度降序排列的方法,选取前N个直播间作为推荐直播间,N>5;例如本实施例中推荐直播间的数量为10个,即为每个用户选取前10个兴趣度大的直播间作为推荐直播间。

S6:将每个用户的推荐直播间形成直播间推荐列表、并展示给相应的用户。

本发明提供的实现上述方法的基于加权k近邻评分的直播间推荐系统,包括直播间观看向量获取模块、相似度计算模块、邻近用户选取模块、兴趣度计算模块、推荐直播间选取模块和直播间推荐列表获取模块。

直播间观看向量获取模块用于:获取直播平台中每个用户的直播间观看向量(用户观看每个直播间的观看次数集合);具体工作流程为:获取所述每个用户指定期限内的历史观看信息(UID、以及与UID关联的直播间唯一标识ROOM_ID),清除无效的历史观看信息后(清除无效的UID,清楚ROOM_ID为空的数据),得到有效的历史观看信息;根据有效的ROOM_ID,统计用户观看的每个ROOM_ID对应的直播间的观看次数,所有观看次数的集合形成该用户的直播间观看向量。

相似度计算模块用于:根据直播间观看向量获取模块获取的直播间观看向量,计算每2个用户的相似度;相似度R的计算公式为:

<mrow> <mi>R</mi> <mo>=</mo> <mfrac> <mrow> <msubsup> <mi>X</mi> <mi>u</mi> <mi>T</mi> </msubsup> <msub> <mi>X</mi> <mi>v</mi> </msub> </mrow> <mrow> <mrow> <mo>|</mo> <mrow> <mo>|</mo> <msub> <mi>X</mi> <mi>u</mi> </msub> <mo>|</mo> </mrow> <mo>|</mo> </mrow> <mrow> <mo>|</mo> <mrow> <mo>|</mo> <msub> <mi>X</mi> <mi>v</mi> </msub> <mo>|</mo> </mrow> <mo>|</mo> </mrow> </mrow> </mfrac> <mo>;</mo> </mrow>

上述公式中,Xu和Xv分别代表2个用户u和v的直播间观看向量,T代表矩阵转置,||Xu||和||Xv||分别代表Xu和Xv的模。

邻近用户选取模块用于:为所述每个用户按照相似度降序排列的方法,选取前N个用户作为邻近用户,N>5;

兴趣度计算模块用于:根据相似度和所述每个用户的邻近用户,计算每个用户m对每个观看过的直播间i的兴趣度计算公式为:

<mrow> <msub> <mover> <mi>S</mi> <mo>^</mo> </mover> <mrow> <mi>m</mi> <mi>i</mi> </mrow> </msub> <mo>=</mo> <mfrac> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </munder> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <msub> <mi>S</mi> <mrow> <mi>n</mi> <mi>i</mi> </mrow> </msub> </mrow> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>n</mi> <mo>&Element;</mo> <msub> <mi>N</mi> <mi>i</mi> </msub> <mrow> <mo>(</mo> <mi>m</mi> <mo>)</mo> </mrow> </mrow> </munder> <mrow> <mo>|</mo> <msub> <mi>R</mi> <mrow> <mi>m</mi> <mi>n</mi> </mrow> </msub> <mo>|</mo> </mrow> </mrow> </mfrac> <mo>;</mo> </mrow>

上述公式中,Rmn代表用户m和用户n的相似度,|Rmn|代表Rmn的绝对值;Ni(m)代表用户m的邻近用户集合,Sni代表用户n对直播间i的观看次数;

推荐直播间选取模块用于:为所述每个用户按照兴趣度降序排列的方法,选取前N个直播间作为推荐直播间,N>5。

直播间推荐列表获取模块用于:将所述每个用户的推荐直播间形成直播间推荐列表。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1