发明内容
本发明的目的在于提出一种基于用户反馈的支持多场景的在线内容优选系统,能够根据用户对系列新闻的曝光和点击率等用户的反馈进行在线自我优选。
为达此目的,本发明采用以下技术方案:
一种基于用户反馈的支持多场景的在线内容优选系统,包括至少一个内容源,服务端和至少一个客户端,其特征在于:所述内容源利用机器或者人工的方法筛选出一批值得向用户推送的热点内容;所述服务端包括:内容模块,反馈模块和至少一个场景模块,所述内容模块包括多个子内容模块,所述子内容模块用于从不同的内容源模块中获取热点内容,所述反馈模块记录每个热点内容在过去T个时间内的用户反馈记录,所述场景模块,利用算法从内容模块和反馈模块中得到的数据来确定每个内容优选的概率以及优选内容,所述客户端,用于从服务端读取优选内容,并且将曝光以及用户点击次数等反馈内容发回给服务端。
优选地,对于所述内容源,机器筛选的方法为根据历史数据采用多种策略从而初步筛选内容,缩小内容范围;
人工筛选的方法为:根据人的经验直接进行筛选,或者参考过去一段时间内的点击量,访问量,转发量再结合人的知识经验有判断的筛选内容,以缩小内容范围。
优选地,所述用户反馈记录包括不同的时间间隔Δt内的曝光次数和点击次数。
优选地,所述客户端定时地读取优选内容后缓存在本地,以减少系统读取时间,客户端从本地缓存里依据每个内容被优选的概率选择曝光。进一步优选地,所述客户端向服务端读取优选内容时,携带有表示场景的场景ID,并根据所述场景ID选择对应的场景模块。
优选地,所述场景模块采用Sof tmax算法,并利用Boltzmann分布,
假设内容模块中包括K个内容,每个内容a被优选的概率p(a)为:
公式(1)
其中,τ为计算温度,Qt(a)表示第a个内容在第t次优选时的经验均值,
ri是第i个时间窗口内的点击数,ka是a这个内容目前为止总共曝光的次数。
当所述内容优选系统冷启动时,Qt(a)=0,Qt(b)=0,将上述参数带入公式(1),每个内容被优选的概率相同,均为:
当所述内容优选系统已启动,反馈模块有用户对一些内容的反馈数据时,此时内容源有新内容输入到内容子模块,这些新内容在反馈模块里的反馈数据为空,此时新内容a被优选的概率为:
计算温度τ可调,不同的场景可通过该参数调节场景模块算法性能。
优选地,所述场景模块采用UCB1算法,此时每个内容i被优选的概率为:
公式(2)
其中,ci表示第i个内容点击量,ni表示第i个内容被曝光的次数,n代表所有内容总曝光次数。
当所述内容优选系统冷启动或者内容源有新内容输入到内容子模块时,对于反馈数据为空或者曝光机会不足M的内容首先获得被曝光的机会,直到被曝光的机会累计达到M次;当该内容曝光次数大于M时,被优选的概率为Pi,M具体取值因场景不同而不同。
本发明能够将机器或者人工优选头条内容的方法变为一种基于用户反馈的不同场景的内容优选,利用服务端的学习,从众多的内容里根据用户的反馈在线优选内容,能够更准备,更及时的从众多内容里优选出若干内容,系统可用于如自动优先网站首页内容,向用户推荐热点新闻、视频等场景,克服人工优选内容的主观性,片面性以及不能及时等缺点。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
参见图1,示出了根据本发明的基于用户反馈的支持多场景的在线内容优选系统,包括至少一个内容源1,服务端2和至少一个客户端3。
所述内容源1利用机器或者人工的方法筛选出一批值得向用户推送的热点内容。
其中,所筛选出来的热点内容包括:热点新闻,热点旅游信息,热点视频,热点微博等从用户的反馈里有区分度的内容。具体如:热点新闻,将不断优选的新闻更新首页新闻;热点微博,可以将优选的热点微博推荐给用户;热门视频,视频网站向用户推荐优选的热点视频,等等。当然,本发明不限于此,任何在门户网站中,可以向用户推荐的内容均可以。
其中,机器筛选的方法为:根据展现日志,点击日志,转发日志,顶踩日志,评论日志,消费日志,搜索日志等历史数据采用多种策略,例如过去一段时间内点击最高的一组内容;过去一段时间内转发最多的一组内容,等等策略从而初步筛选内容,缩小内容范围。
人工筛选的方法为:根据人的经验判断内容的优劣,比如编辑可以将马航新闻,文章出轨等新闻初步筛选为内容,人工也可以参考内容在过去一段时间内的点击量,访问量,转发量等信息再结合人的知识经验有判断的筛选内容,以缩小内容范围。
机器与人工做内容初步筛选的目的是缩小并更新优选内容源,将有潜力成为优选的内容选出来,提前将一些不可能成为优选的内容排除,以减小在线内容优选花费的成本。
所述服务端2包括三部分:
内容模块21,反馈模块22和至少一个场景模块23。
其中,所述内容模块21包括多个子内容模块21,所述子内容模块用于从不同的内容源模块1中获取热点内容。例如,在内容源模块可以分别为“搜索热点”、“播放排行榜”和“视频质量榜”等等。
所述反馈模块22,记录每个热点内容在过去T(Δt1+Δt2+Δt3+...)个时间内的用户反馈记录。优选地,所述用户反馈记录包括不同的时间间隔Δt内的曝光次数和点击次数。所述时间间隔Δt可以为1分钟,5分钟,10分钟等等。
所述场景模块,利用算法从内容模块和反馈模块中得到的数据来确定每个内容优选的概率以及优选内容。应当知道,不同的场景选择不同的算法进行计算,所谓场景指的是热点内容出现的场所。比如说,是在网站的首页,突发热点消息,微博推送消息或者是用户最喜爱的视频等等不同的场所。因此,不同的场景模块也就具有了不同的算法进行计算,并且通过优选的概率,可以得到相应的优选内容。
在一个具体的实施例中,所述算法为Softmax算法,该算法最常利用Boltzmann分布,假设内容模块中包括K个内容,每个内容a被优选的概率p(a)为:
公式(1)
其中,τ为计算温度,是一个常量,根据场景的不同,τ可变从而进行调节,Qt(a)表示第a个内容,在第t次优选时的经验均值,
ri是第i个时间窗口内的点击数,ka是a这个内容目前为止总共曝光的次数。
对于该算法,当系统冷启动时,也就是热点内容尚未推出,没有被用户反馈时,此时Qt(a)=0;Qt(b)=0,被选择的内容子模块每个内容被选择的概率是相等的,将上述参数带入公式(1),每个内容a为优选的概率相同,均为:
当优选系统已启动,反馈模块有用户对一些内容的反馈数据时,此时内容源有新内容输入到内容子模块,这些新内容在反馈模块里的反馈数据为空,此时新内容a被优选的概率为:
对于新输入的新内容,系统没有他们的经验均值,但是新内容都而且应当能获得一定的展现机会,展现机会的大小即概率与具体场景选取的τ值正相关,与已经展现的内容数量以及它们相应的表现负相关,若已经展现的内容足够多,且其中优质的很多,则留给新内容的机会相对较少。
对于计算温度τ,不同的场景可通过该参数调节场景模块算法性能,例如:
当τ→∞,p(a)→1/K,即展现机会均匀分布在K个内容之间;
当τ→0,算法趋向于完全的ε-greedy算法,所有展现机会偏向于经验均值最好的内容,没有经验均值即新的内容将无法得到展现机会,ε-greedy算法是解决这类问题最基本算法,相关内容可以参见参考文献1(“Algorithms for the multi-armed banditproblem”,Volodymyr Kuleshov et.al,Journal of Machine Learing Research 1(2000)1-48),在此并入本文作为参考。
在一个具体的实施例中,所述算法为UCB1算法,此时每个内容i被优选的概率为:
公式(2)
其中,ci表示第i个内容点击量,ni表示第i个内容被曝光的次数,n代表所有内容总曝光次数。
该公式中每个内容被被优选的概率为两个表达式之和,左边代表该内容的经验均值,右侧代表该内容的不确定性,由公式(2)可看出,当该内容的ni即曝光次数较小时,Pi主要取决于右侧表达式,即曝光次数少的内容由于不确定性会获得更多的曝光机会,当ni逐渐增大时,ni的增长比logn的增长快,所以右侧表达式逐渐向0收敛,此时Pi取决于左侧表达式即经验均值,此时经验均值高的内容获得更多的展现机会,即好的内容被优选出来。
当优选系统冷启动或者内容源1有新内容输入到内容子模块时,这些新内容在反馈模块里的反馈数据为空,或者有可能曝光机会不足M,则对于反馈数据为空或者曝光机会不足M的这些内容首先获得被曝光的机会,直到被曝光的机会累计达到M次;当该内容曝光次数大于M时,被优选的概率为Pi,M具体取值因场景不同而不同。
综合比较两种算法,实际应用中Softmax算法若能调节好温度系数,算法表现优于UCB1,但是τ的取值需要实际场景中反复调整,修正,才能达到比较好的效果,实现复杂度较UCB1高;UCB1实现更为简洁,一般场景中表现比较好,尤其适用总的展现机会(也就是曝光机会)有限的场景,例如向用户做推送服务,如推送视频,推送属于用户被动接收信息,若推送过多会对用户造成很大的打扰性,每个用户在一时间内总的推送次数肯定是有限的,故总的推送次数在一段时间内是非常有限的,可证明UCB1算法理论上整体损失的机会更小。
因此,通过上述两种不同的算法,并且加上τ的不同的选择,可以构造不同的场景模块。
所述客户端3,用于从服务端2读取优选的内容,并且将曝光以及用户点击次数等反馈内容发回给服务端2。
优选地,所述客户端3可以定时地读取优选内容后缓存在本地,以减少系统读取时间,提高服务端运行效率,客户端从本地缓存里依据每个内容被优选的概率选择曝光。所述定时可以为5分钟,15分钟,30分钟等等。
优选地,所述客户端3向服务端读取优选内容时,携带有表示场景的场景ID,并根据所述场景ID选择对应的场景模块。也就是说,客户端3根据自己场景的情况选择服务端2的适当的场景模块,从而选择了相应的算法。
综上所述,本发明能够将机器或者人工优选头条内容的方法变为一种基于用户反馈的不同场景的内容优选,利用服务端的学习,从众多的内容里根据用户的反馈在线优选内容,能够更准备,更及时的从众多内容里优选出若干内容,系统可用于如自动优先网站首页内容,向用户推荐热点新闻、视频等场景,克服人工优选内容的主观性,片面性以及不能及时等缺点。
显然,本领域技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。