一种面向高突发性用户请求的频道推荐方法与流程

文档序号:15221936发布日期:2018-08-21 17:34阅读:212来源:国知局
本发明涉及ip电视及互联网视频和智能电视
技术领域
,具体涉及一种面向高突发性用户请求的频道推荐方法。
背景技术
:各种智能终端的不断涌现为用户观看点播视频和直播频道提供了更为丰富的平台,其中ip电视的出现为用户视频观看带来了更好的体验,也为运营商带来了新的挑战。随着ip电视的出现和普及,视频内容运营商逐渐增多,用户可以观看的频道和内容也不断增加,不仅频道的节目内容呈现多元化的趋势,而且频道的属性也在以往综合频道居多的基础上,衍生出很多个性化的频道,观众的需求也在传统epg的基础上衍生出个性化的需求。根据全球网络现状报告显示,我国2017年第一季度平均的互联网带宽接入速度为7.6mbps,全球互联网带宽接入速度7.2mbps,首次超过了全球平均水平,基本可以满足用户在互联网视频网站观看点播视频,ip电视等直播电视无法为用户提供个性化的选择,导致用户更愿意在互联网网站观看自己喜欢的点播视频。而直播频道的推荐具有非常高的复杂性,目前基于用个性化推荐的算法有基于内容的推荐、基于协同过滤的推荐、基于机器学习方法的推荐和混合推荐方法,以上算法虽然在视频推荐中均有较好的表现,仍存在一些问题:1、现有的推荐方法均有较大的时间开销或空间开销;2、现有的推荐方法主要使用在点播视频系统中;3、面向直播的推荐方法在面对突发性的用户访问时无法做出及时的反应;4、面向直播的推荐方法没有将实时推荐和历史推荐相结合;5、面向直播中突发性访问的解决方案没有加入稳定机制,使得部分频道反复进出推荐列表,造成资源的浪费。技术实现要素:本发明的目的是针对上述现有技术的不足,为直播类型的视频播放系统提供一种应对发生突发性高并发用户请求时的频道推荐方法,提高频道推荐的命中率,提高整个系统的用户体验。本发明的推荐方法可应用于ip电视频道节目指南epg推荐和ip电视频道预加载。本发明的目的可以通过如下技术方案实现:一种面向高突发性用户请求的频道推荐方法,所述方法包括以下步骤:s1、获取系统基础数据,包括用户观看历史记录;s2、用户开启系统时,创建推荐列表和备选列表,并在用户观看过程中实时统计用户观看实时数据;s3、启动频道推荐方法中的被动监听模式,选择满足条件的频道进入推荐列表和备选列表;s4、当进入主动拉取模式的启动触发时间区间时,启动主动拉取模式,更新和填充推荐列表;s5、用户完成频道切换之后,更新用户观看历史记录数据,并判断是否更新推荐列表和备选列表。本发明与现有技术相比,具有如下优点和有益效果:1、本发明面向高突发性用户请求的频道推荐方法既可运用于直播视频推荐,又可运用于点播视频推荐,使用的时间开销和空间开销均较小,部分计算量较大的操作可以在凌晨用户观看较少的时间进行,对系统性能和用户体验的影响较小,同时可以在高突发性的用户请求访问时,做出及时的反应和处理。2、本发明面向高突发性用户请求的频道推荐方法中的活跃度计算方法,兼顾了频道当前用户数变化和历史用户观看人数的基数,结合频道的当前表现和历史表现评判频道的热度,可以更好的反应频道观看人数的变化趋势。另外,在传统的方法中,如果在每个单位时间内都对备选列表和推荐列表进行更新,当出现一个频道的活跃度随时间在阈值上下浮动的情况,该频道会频繁的进出备选列表和推荐列表,造成资源的浪费,(如频繁地建立连接预加载流与断开连接预加载流),因此本发明仅在每一个主动拉取模式开启的时候对备选列表和推荐列表中活跃度低于阈值的频道进行清除,保证了备选列表和推荐列表的稳定性。附图说明图1为本发明面向高突发性用户请求的频道推荐方法的基本架构流程图。图2为本发明的被动监听模式流程图。图3为本发明被动监听模式和主动拉取模式的协同运行示意图。具体实施方式下面结合实施例及附图对本发明作进一步详细的描述,但本发明的实施方式不限于此。实施例:本实施例提供了一种面向高突发性用户请求的频道推荐方法,所述方法的基本架构流程图如图1所示,用于说明系统的整体流程和各个部分之间的配合,包括以下步骤(100):s1、获取系统基础数据,包括用户观看历史记录(101);所述系统基础数据包括用户观看历史记录,通过用户观看历史记录能够得到用户曾经的切换记录、观看记录时长平均值和标准差、每个频道的每日最高在线人数,所述系统基础数据能够从系统日志文件中得到;获取的用户观看历史记录如表1所示:观看记录id开始时间结束时间用户id频道id0000012018-01-0108:00:052018-01-0109:30:50000100010000022018-01-0109:31:002018-01-0111:47:38000100020000032018-01-0110:03:472018-01-0111:49:00000200020000042018-01-0123:02:332018-01-0200:18:2600010004表1当同一用户的两条观看记录时间距(前一条的结束时间和后一条的开始时间)小于δ时,则判断此处发生了一次频道切换行为。通常,δ取20秒。根据表1的用户观看历史记录,可以得到用户历史切换记录,如表2所示:表2得到的观看记录平均值和标准差分别为:10分钟和2分钟,得到每个频道的每日最高在线人数,如表3所示:频道id时间人数00012018-01-0119:00:0010000表3s2、用户开启系统时(102),创建推荐列表和备选列表(103),并在用户观看过程中实时统计用户观看实时数据;所述推荐列表是指系统已确定向用户推荐的频道,采用一个包含n个元素的数组进行存储,其中n为正整数;备选列表是指等待被决定是否要进入推荐列表的频道,采用一个单向队列结构进行存储,其处理顺序按照进入备选列表的时间顺序依次处理,备选列表内的频道个数不做限制,最大为系统所有频道总数;在用户观看过程中,实时统计用户观看实时数据,具体包括当前系统中的热门频道、每个频道的观看人数和用户实时切换记录;s3、启动频道推荐方法中的被动监听模式(104),选择满足条件的频道进入推荐列表和备选列表;所述被动监听模式从用户打开整个系统到关闭为止,持续对系统内全部频道实时的频道活跃度进行监听,捕捉到满足条件的频道便马上更新备选列表和推荐列表,其中,所述频道活跃度的计算方法如下:首先,定义函数sw(ss,ds,ts)表示用户的切换行为,其中,ss表示切换时的原频道,ds表示切换时的目标频道,ts表示切换行为发生的时刻,sw(ss,ds,ts)表示在ts时刻由频道ss切换到频道ds的切换行为;定义函数s(s,d,t)表示发生某一种切换行为的用户总数,其中,s表示切换时的原频道,d表示切换时的目标频道,t表示切换行为发生的时刻,s(s,d,t)表示在t时刻由频道s切换到频道d的用户总数,计算方法如下:s(s,d,t)=sum{sw(ss,ds,ts)|ss=s,ds=d,ts=t}当s和d均有取值时,s(s,d,t)表示t时刻从频道s切换到频道d的用户总数;若s有取值,d无取值时,s(s,d,t)表示t时刻切出频道s的用户总数;若d有取值,s无取值时,s(s,d,t)表示t时刻切入频道d的用户总数;然后,定义活跃度cr,用于衡量当前观看频道d的用户总数的变化量占该频道历史最高在线人数h的比例,反应了频道d的热度,计算方法如下:其中,s(s,d,t)表示t时刻由频道s切换到频道d的用户总数,用于衡量当前观看频道d的用户总数的变化量,hd,j表示在过去j日中频道d的每日最高在线人数的平均值,即日均最高在线人数;将时间切分为长度为若干秒的等长单位时间k,作为计算活跃度cr的单位时间(为保证推荐的实时性和准确性,通常将单位时间长度设定为10秒以内的正整数),因此可得:计算频道d的实时活跃度,即切换的目标频道为频道d,k表示切换行为发生在第k个单位时间,s(s,d,k)表示在第k个单位时间内由频道s切换到频道d的用户总数;用s(s,d,k)和s(s,d,k-1)的差值除以日均最高在线人数hd,j能够得到活跃度cr,用以表征单位时间内用户增加量占日均最高在线人数的比例;所述被动监听模式从用户打开整个系统到关闭为止,持续对系统内全部频道实时的频道活跃度进行监听,系统内未进入推荐列表和备选列表的剩余频道,称为剩余频道,设定一个活跃度阈值η,如5%,作为剩余频道是否能够进入备选列表的标准,每进入一个单位时间,执行以下步骤(200),如图2所示:3.1)进入单位时间k(201),计算剩余频道的活跃度,当存在频道d的活跃度crd≥η时,则将频道d加入备选列表的队尾(202);3.2)对备选列表内的每个频道依次执行以下步骤(203),用以判断某个频道是否能够进入推荐列表(204),规则和步骤如下:3.2.1)若推荐列表未满,补充推荐列表,备选列表内的队头频道d0出队,存入推荐列表(206);3.2.2)若推荐列表已满,更新推荐列表,备选列表内的队头频道d0的活跃度为求得推荐列表中的频道dmin的活跃度最小,为crmin,判断crmin和的大小(205);备选列表的频道d0出队,将频道存入推荐列表中dmin的位置,将存入备选列表队尾(207、208);其中,步骤3.2)对一个频道的判断为原子操作(210),需完整执行,不能够中断;若新的单位时间到来时,上一个单位时间的以上步骤仍未执行完,若当前处于一次原子操作中,则在执行完本次原子操作后,终止当前单位时间的计算,保存当前已有的结果,开始新的单位时间的计算;若当前并未处于一次原子操作中,则直接终止当前单位时间的计算,保存当前已有的结果,开始新的单位时间的计算(209);s4、当进入主动拉取模式(105)的启动触发时间区间时,启动主动拉取模式,更新和填充推荐列表;所述主动拉取模式是指,每当主动拉取模式的启动触发时间到来时,按照主动拉取模式的策略对未满的推荐列表进行更新和补充:在用户观看频道过程中,主动拉取模式会周期性启动,所述主动拉取模式的启动时间,即拉取启动时间,以用户切换进入新的频道为开始,每经过一个启动周期t,即每次到{n*t|n∈n*}时刻便启动主动拉取模式,启动周期t的计算方法如下:t=min{μ-σ,μi-σi}其中,μ为全部观看记录时长的平均值,σ为全部观看记录时长的标准差,根据数据分布规律,[μ-σ,μ+σ]为系统全部用户高概率发生切换行为的时间区间,因此μ-σ为系统高概率发生切换行为的开始时刻,若该值小于0,则开始时刻取值为0;i为用户id,μi为用户i的观看记录时长平均值,σi为用户i的观看记录时长标准差,[μi-σi,μi+σi]表示用户i高概率发生切换行为的时间区间,因此μi-σi为用户i高概率发生切换行为的开始时刻,取两个开始时刻的最小值为拉取启动周期t;主动拉取模式的启动触发时间到来,执行以下主动拉取模式策略,具体步骤如下:4.1)判断此时是否在执行步骤s3,若正在执行步骤s3,则等待步骤s3执行完毕;如图3所示,在2t时刻,检测到当前被动监听模式正在运行,主动拉取模式退后开始,在被动监听模式执行完毕后开始执行;4.2)计算当前推荐列表和备选列表中所有频道的活跃度cr,删除活跃度低于阈值η的频道;4.3)判断推荐列表是否已满,若推荐列表未满,按以下频道选择策略补充推荐列表,直到推荐列表已满:ⅰ、历史此时切换:用户在过去若干天内(例如,三天)的同一时刻是否有切换记录,步骤s1中由用户观看记录能够得到切换记录:查找用户i在过去若干天内(例如,三天)的目标时间段内是否有切换记录sw(ss,ds,ts),将有效时间范围内查找到的频道ds加入推荐列表;根据用户i观看记录时长平均值μi,目标时间段为当前时刻t0加减平均观看时长μi,即ts∈[t0-μi,t0+μi];ⅱ、历史此时观看:用户在过去若干天内(例如,三天)的同一时刻是否有观看记录:在用户观看记录中查找用户i在过去若干天内(例如,三天)的目标时间段内是否存在观看行为,将有效时间范围内查找到的频道d加入推荐列表;根据用户i观看记录时长平均值μi,目标时间段为当前时刻t0加减平均观看时长μi,即ts∈[t0-μi,t0+μi];ⅲ、热门频道:当前系统中观看人数最多的频道,按照观看热度由高到低地加入推荐列表;s5、用户完成频道切换之后,更新用户观看历史记录数据,并判断是否更新推荐列表和备选列表,具体过程为:当用户发生频道选择行为时(106),判断该频道选择行为sw(ss,ds,ts)中原频道ss和目标频道ds是否相同(107):若ss=ds,则该频道选择不认定为频道切换,不对推荐列表和备选列表进行操作;若ss≠ds,则该频道选择行为认定为频道切换,清空推荐列表和备选列表,将上一个频道完整的观看记录存入系统的日志文件中。关闭系统(108)。以上所述,仅为本发明专利较佳的实施例,但本发明专利的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明专利所公开的范围内,根据本发明专利的技术方案及其发明专利构思加以等同替换或改变,都属于本发明专利的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1