直播平台虚假炒作


摘要

直播平台作为一种分享和广告创意内容的手段在近几年变得越来越流行。能够吸引大量收视率到他们直播的流行主播能够以广告收入、捐赠、订阅的手段谋生。不幸的是,这种物质激励的人气也同时刺激欺诈者提供虚假炒作服务或者通过人为提供虚假的现场观众提高收视率。

1、介绍

近几年来,网络直播平台高涨,它们为网络用户提供一个空前水平的开放视频内容的平台。直播服务如Twitch、YouTube直播,Ustream能够广播各种类型的实时直播视频内容(通常包括各种电子竞技游戏和其他创意性的内容)给感兴趣的观众群体,这些观众可以观看并且和这些个人主播互动。
考虑到直播已经成为了一个流行的大众线上交流的社会平台,它同时也成为了欺诈者人工炒作或者人造收视率和网络人气的工具。收视率是一个流行的推荐与否的目标度量和内容质量的代表,

2、背景和目标

现场直播连接主播和观众。每个主播通过个人渠道在各种各样的时间播放现场视频,持续的时间也各有长短。观众可以在主播直播的时候观看直播,也可以事后观看。
主播的直播内容全看个人兴趣,对于持续直播而且得到很高收视率的主播,平台给予合伙人的地位。合伙关系能给主播提供大量利益,包括主播能从广告收入和付费用户订阅渠道内容的分红奖金两个方面挣钱。这些利益刺激主播通过使用机器观众鼓吹他们的收视率统计,如此不但满足获取合伙人地位的挣钱的要求,也提高了直播目录的排名,这个排名能够吸引真实的观众。成功的主播可以将此作为全职,许多受欢迎的主播每年可以通过订阅、打赏、和广告收入挣到数十万美元甚至更多。
由于主播在直播时,观众必须是“实时”的,机器观众提供者们为主播提供全方位的服务:想使用几个机器观众,这些机器观众持续观看直播多长时间。在主播的指挥下,被机器观众提供者控制的IP就通过发送HTTP请求到直播平台访问视频来模仿真实的观众,直到收到停止信号。当前,每个IP被限制只能同时被k个观众使用,这就意味着机器观众提供者们要成功模拟n个观众就需要控制n/k个IP。考虑到非真实的观众所来自的IP空间的大小和机器观众所具有的的短暂的、匿名的、主播控制的特性,传统的无监督方法如密集子图检测和张量分解等对于虚假炒作问题是不适合的。此外,考虑到真实的标签很难获得而且通过http请求可收集到的特征可以被伪造,标记个体观众的监督模型由于短暂的实时使用而需要持续不断的监控。
直播方面的实践者要面对的挑战是要从虚假的肉鸡观众中辨别出真实的观众。解决这个问题可以收获很多好处。最明显的是阻止那些企图欺骗系统成为合作伙伴的主播,同时也限制了收视率的膨胀,提高了推荐流行内容的真实性

3、FLOCK方法

算法步骤:

  1. 对直播建模。聚合每个直播和每个black中的观众,转化 v s t a r t , v s t a y v_{start},v_{stay} vstart,vstay空间(进入时间和停留 时间的二维空间)基于最大似然估计为每个直播b和每个black
    t分别建模;
  2. 识别机器直播。计算单个直播b的分布 b ^ \hat{b} b^和对应black
    t的分布 β ( t ) ^ \hat{\beta(t)} β(t)^的偏差,以观众数分组生成决策边界,标记高偏差的直播为机器直播
  3. 识别机器直播中的机器观众。对于每个直播b的观众聚类,标记移除某一类后偏差发生很大衰减的类为机器观众。

flock.png-109.8kB
FLOCK发现的机器直播和机器观众,图a展示一种利用IP产生机器观众的工具;图b展示观看计数viewcount和偏差的图,它展示了数据中的每个直播的viewcount和来自我们模型的偏差,注意红色决策边界从高密度的直播区域分离出异常和高偏差的直播;图c展示机器直播的直播行为,其中每一个点是一个观众在直播过程中的开始和持续时间分数,注意颜色标记出的高度同步的机器观众的行为,几乎是所有观众的观看行为在整个直播期间都会持续。

1、直观和建模

前面提到,依靠HTTP请求中包含的信息来标记真实观众和非真实观众是困难的也是容易出错的。FLOCK方法背后的直观就是使用非监督的、离线的方法,它能帮助我们专注于观察总体行为,并识别某些从正常集体行为模式中脱颖而出的行为。具体来说,我们从建立一个正常的广播行为开始,这里广播表示观众的聚合。下一步,我们专注于广播层面的分析而不是观众层面的分析,我们测试所有观看给定广播的观众的总体行为并且判定整个播出看上去是否可疑。也就是说,我们将识别机器广播的问题作为异常检测问题进行建模。广播水平上的分析是很有用的,因为它可以同时解释多个观众:当在一个给定的广播上从下午1点开始到下午3点结束的观众不是特别可疑的,数以百计的这样的观众更加暗示了机器的活动。我们从这个直觉触发,把我们的分析限制在一系列的机器广播上,试着通过锁步的开始和结束找出行为与机器很像的相似的观众群体。如果移除这个观众群体使这个广播在我们的模型开来不再那么可疑,那么我们将这些观众归类为不真实的。
这种直播水平和随后的观众水平的分析的层次划分范例提供了良好的解释性和直接了当的应用,以便在主播在申请合伙人的时候检查他们播放历史,同时鉴别机器流量普遍使用的IP。定义问题:

给定观众的集合 V \mathcal{V} V和相应的方程 α ( v ) , ω ( v ) , χ ( v ) \alpha(v),\omega(v),\chi(v) α(v),ω(v),χ(v),其中 v ∈ V v\in \mathcal{V} vV,这些函数分别代表观众的开始时间,结束时间和观众参与的直播,同时给定直播的集合 B \mathcal{B} B和相应的公式 α ( b ) , ω ( b ) , ρ ( b ) \alpha(b),\omega(b),\rho(b) α(b),ω(b),ρ(b),其中 b ∈ B b\in \mathcal{B} bB,他们分别表示直播的开始时间、结束时间和这个直播中观众的集合 { v 1 ⋯ v k } ⊆ V \{v_1 \cdots v_k \} \subseteq \mathcal{V} {v1vk}V,寻找可疑的直播的集合
B b o t t e d ⊆ B \mathcal{B}_{botted} \subseteq \mathcal{B} BbottedB
寻找可疑的观众集合
V b o t t e d = ⋃ b ∈ B b o t t e d ρ ( b ) \mathcal{V}_{botted} = \bigcup_{b\in \mathcal{B}_{botted}} \rho(b) Vbotted=bBbottedρ(b)
整个方法可以分裂成多个步骤,每个步骤解决一个子问题,为此我们描述方法如下:(1)对直播建模,(2)识别机器直播,(3)识别机器观众

2、对单个直播建模

要从正常的直播中找到可以的目标,我们首先要建立一个能能够表达正常直播行为是什么样子的模型。鉴于数据缺乏真实的标签,我们考虑无监督模型。要建立模型,首先得定义一系列相关特征。这里我们避免使用描述性的(浏览器、来源国家等)和基于互动的(聊天活动、网站导航手段)特征,因为它们易于操作和伪装对抗。我们专注于利用观众持续观看的时间特征来对直播建模。
特别地,对于一个观看直播 χ ( v ) \chi(v) χ(v)的观众 v v v,我们感兴趣的是观众v的开始时间 α ( v ) \alpha(v) α(v)和结束时间 ω ( v ) \omega(v) ω(v)。使用观众的观看直播的开始时间和观看的持续时间是很有吸引力的,因为由于viewbot provider的所谓机器观众的“任务约束”,观众的这些方面很难被伪造。为了达到主播为了延长现场并发观众时间这一目的,机器观众必须持续一段时间。
因为观众必须在视频播放期间开始,并且持续观看的时间不可能比视频播放的时间长,所以直观地将这些特征表示成分数而不是原始的时间戳。这可以通过定义观众观看视频开始和持续的时间特征来完成:
v s t a r t = α ( v ) − α ( χ ( v ) ) ω ( χ ( v ) ) − α ( χ ( v ) ) , v s t a y = ω ( v ) − α ( χ ( v ) ) ω ( χ ( v ) ) − α ( χ ( v ) ) v_{start} = \frac{\alpha(v)-\alpha(\chi(v))}{\omega(\chi(v))-\alpha(\chi(v))},v_{stay} = \frac{\omega(v)-\alpha(\chi(v))}{\omega(\chi(v))-\alpha(\chi(v))} vstart=ω(χ(v))α(χ(v))α(v)α(χ(v)),vstay=ω(χ(v))α(χ(v))ω(v)α(χ(v))
举个栗子,如果一个观众从直播进行到一半的时候进入直播间,在直播进行到四分之三的时候离开,那么他的 v s t a r t = 0.5 , v s t a y = 0.25 v_{start}=0.5, v_{stay}=0.25 vstart=0.5,vstay=0.25
给定每个直播b有一组相关的持续观众 ρ ( b ) \rho(b) ρ(b),我们选择将每个b模型化为从反映实验观察视图频率的联合概率分布绘制的随机变量。为了简化表示和缓和只有少量观众的直播的的稀疏问题,我们通过一定数量的H区间离散化连续的 v s t a r t v_{start} vstart v s t a y v_{stay} vstay空间,H根据经验调整。 v s t a r t v_{start} vstart v s t a y v_{stay} vstay可以从 { 1 , … , H } \{1,\dots ,H\} {1,,H}中取值,所以后离散化样本空间有 H ( H + 1 ) / 2 H(H+1)/2 H(H+1)/2中输出结果。我们今后将参考定义在 { 1 , … , H } \{1,\dots ,H\} {1,,H}上的特征 v s t a r t v_{start} vstart v s t a y v_{stay} vstay
具体而言,我们使用多项式概率分布 b ^ \hat{b} b^为b建模,使用最大似然估计参数定义结果的概率质量。在这种情况下,每个观众被视为相关随机变量的实现。
b ^ ( v s t a r t = X , v s t a y = Y ) = ∑ v ∈ ρ ( b ) 1 X , Y ( v ) ∣ ρ ( b ) ∣ \hat{b}(v_{start}=X,v_{stay}=Y)=\sum_{v\in \rho(b)} \frac{1_{X,Y}(v)}{|\rho(b)|} b^(vstart=X,vstay=Y)=vρ(b)ρ(b)1X,Y(v)
上式表示对于直播b,观看直播b的所有观众的集合为 ρ ( b ) \rho(b) ρ(b),这些观众中,进入直播和在直播间停留的时间 ( v s t a r t , v s t a y ) (v_{start},v_{stay}) (vstart,vstay)在区间 ( X , Y ) (X,Y) (X,Y)上的观众占的比重。
其中, X , Y ∈ { 1 , … , H } X,Y\in \{1,\dots ,H\} X,Y{1,,H} 1 X , Y ( v ) 1_{X,Y}(v) 1X,Y(v)是指示函数,如果v在 ( X , Y ) (X,Y) (X,Y)中,返回1,否则返回0。

要给出一个对单个直播的行为建模的方法,我们的目的是为正常直播行为建立一个模型。要做到这些,我们对不同时间长度的直播分别建立正常直播行为的模型,因为不同时间长度的直播间的观众行为不同。例如,一个10分钟的直播,观众可以从头看到尾,但是如果直播时间是10个小时,这个观众不大可能从头看到尾了。者取决于包括观众的时间限制、耐力在内的多种因素。为了将播放时长相似的直播(每个直播都是由相似的观众行为模式组成)分为一组,缓和稀疏问题,
我们以时间 T T T分钟( T T T的设置是经验性的)为区间长度对直播时长这一特征做离散化,这样处在同一间隔内的直播称作一个black,并且引入函数 β ( b ) \beta(b) β(b)表示直播b所在的black。 ζ ( t ) \zeta(t) ζ(t)表示所有在black t中的直播组成的集合。综上所述,black就是一个能够帮助我们分开考虑和拟合不同时长直播行为的抽象。
拟合每个black的行为,我们使用与单个直播相似的方法,我们使用一个联合概率分布拟合black,再次使用black中的所有直播包含的观测到的观众数据,利用最大似然法估计参数。正式地,为了计算black t的分布 t ^ \hat{t} t^,我们有:
t ^ ( v s t a r t = X , v s t a y = Y ) = ∑ b ∈ ζ ( t ) ( ∑ v ∈ ρ ( b ) 1 X Y ( v ) ∑ b ∈ ζ ( t ) ∣ ρ ( b ) ∣ ) \hat{t}(v_{start}=X,v_{stay}=Y)=\sum_{b\in \zeta(t)}\Biggl(\sum_{v\in \rho(b)}\frac{1_{XY}(v)}{\sum_{b\in \zeta(t)} |\rho(b)|}\Biggl) t^(vstart=X,vstay=Y)=bζ(t)(vρ(b)bζ(t)ρ(b)1XY(v))
注意,上述模型抓取正常直播的行为的作用很大程度上依赖于我们数据集中的直播。我们的假设是,大部分直播不是机器直播,并且真实观众的数量远远大于非真实观众。

3、识别有机器观众的直播

我们将区分真实直播和机器直播的问题看作是一个离群点检测任务,我们感兴趣的是找到分布不遵守其所相关连的black分布的直播。直观上看,如果观众在给定直播上的分布于跟给定直播具有相同时长的其他直播上的观众的分布差别很大,那么他们很大可能就是机器观众。因为他们以一种很不正常的非人的方式行动。要达到区分任务,我们要确定度量直播分布 b ^ \hat{b} b^和它相应的black的分布 β ( b ) ^ \hat{\beta(b)} β(b)^并且为产生偏差的分数确定一个分类阈值。
KL距离度量单个直播的分布和这个直播所在black的整体分布的差异
分布 p ^ \hat{p} p^ q ^ \hat{q} q^之间的KL距离定义为:
D K L ( p ^ ∥ q ^ ) = ∑ i ( p ^ ( i ) ⋅ log ⁡ p ^ ( i ) q ^ ( i ) ) D_{KL}(\hat{p}\parallel \hat{q})=\sum_{i}\Biggl(\hat{p}(i)\cdot \log \frac{\hat{p}(i)}{\hat{q}(i)}\Biggl) DKL(p^q^)=i(p^(i)logq^(i)p^(i))
D K L ( p ^ ∥ q ^ ) D_{KL}(\hat{p}\parallel \hat{q}) DKL(p^q^)的物理意义是:在相同的时间空间里,概率分布 p ^ \hat{p} p^对应的每个事件,若用概率分布 q ^ \hat{q} q^编码时,平均每个基本时间编码长度增加了多少比特。KL距离是非对称的,也就是说 D K L ( p ^ ∥ q ^ ) D_{KL}(\hat{p}\parallel \hat{q}) DKL(p^q^)通常不等于 D K L ( p ^ ∥ q ^ ) D_{KL}(\hat{p}\parallel \hat{q}) DKL(p^q^)
对于每个i,如果 q ^ ( i ) = 0 \hat{q}(i)=0 q^(i)=0,意味着 p ^ ( i ) = 0 \hat{p}(i)=0 p^(i)=0,此时和为0。我们认为 D K L ( b ^ ∥ β ( b ) ^ ) D_{KL}(\hat{b}\parallel \hat{\beta(b)}) DKL(b^β(b)^)是适合的度量单个直播和它对应的black分布的距离。
给出了度量偏差的方法,接下来专注于设置正确的阈值。我们期望机器直播与它对应的black的分布之间会有很高的偏差,在具体的实施中选择阈值是很重要的。要做到这些,要考虑到直播的观众数量的不同。当观众个数很少时,由于稀疏问题, b ^ \hat{b} b^的分布可能无法表达与black分布 β ( b ) ^ \hat{\beta(b)} β(b)^之间的细微的差别。相反地,因为有足够的样本,拥有很多观众的直播能够更好地逼近对应的black分布。因此,我们预计低观众次数广播的偏差分数会出现很大的差异,对于观众数较多的广播来说,这应该会下降。
正常直播与机器直播的分布存在很高的偏差。为了自动化的识别这些机器直播,我们根据分位数设置自适应阀值。比如高于样本四分之三分位数的K倍作为决策边界。在实际中,我们以可以设置一个怀疑下界 U U U,观众数低于这个下界的直播不被怀疑,以此来避免稀疏问题带来的高偏差。

4、识别机器观众

机器直播中包含有真实观众和机器观众。直观上看,机器观众的行为导致直播的分布和black分布的巨大偏差。真实观众的行为或多或少(或者偏差很小)符合black分布。
标记一个导致更高偏差的个体观众是很危险的,但是我们有信心标记一个观众集合,如果一个彼此相似的观众集合导致了偏差的提高,我们认为这个集合中的观众是机器观众。
定义相似的观众为一个组,组中的成员在时间上具有一致性,发生锁步或关闭同步。如此,从发现机器观众转化成发现锁步行为的观众团体。
利用这个直觉,我们先要识别锁步行为(在一个给定直播中的相似观众的团体),找到之后移除团体中的观众,如果导致被剪枝后的直播的分布与对应的black分布的偏差减小,就标记为机器观众。对于所有离群的直播b,我们的目的是最优化下面的式子:
min ⁡ b ′ ∈ 2 I D K L ( b ′ ^ ∥ β ( b ) ^ ) \min_{b'\in 2^{\mathcal{I}}} D_{KL}(\hat{b'}\parallel\hat{\beta(b)}) b2IminDKL(b^β(b)^)
其中, ∣ I ∣ |\mathcal{I}| I个实例中的每一个都对应一个观众集合 ρ ( b ) \rho(b) ρ(b)的独有子集。这样任何两个实例之间的交集就是空集。 2 I 2^{\mathcal{I}} 2I I \mathcal{I} I的幂(使得每个元素对应于实例的子集), b ′ b' b b ′ ^ \hat{b'} b^是直播的剪枝,得到对应的实例的子集包含的观众构成的经验概率分布。直观地, I \mathcal{I} I将直播b的观众硬切分成 ∣ I ∣ |\mathcal{I}| I个实例,我们找出看起来最真实的实例的组合,其中真实性的目标函数就是剪枝后的直播和对应black分布的KL距离。有多个相关的挑战:(1)确定将观众集合 ρ ( b ) \rho(b) ρ(b)切分成 ∣ I ∣ |\mathcal{I}| I个实例的方法。(2)一旦确定了 I \mathcal{I} I,找到精确地解任然是一个组合最小化的问题。
对于第一个问题,我们将实例当做是由 v s t a r t v_{start} vstart v s t a y v_{stay} vstay组成的二维空间中的观众的簇。由于K-means聚类需要先验的知道参数K,所以选择使用X-means算法。X-means算法通过最小化贝叶斯信息标准自动的推断出一个适合的聚类簇数量,贝叶斯信息标准是一个受模型复杂度惩罚的对数似然函数。该算法从一个包含所有数据点的簇开始,迭代的划分出新的簇,每次划分要保证BIC的缩减。原始的X-means算法内部迭代还是利用K-means算法,这里我们使用一个更快的小批量版本,它能提供只比传统K-means稍差的效果。通过这样的方法,将观众集合硬切分成适合的实例。
下一个挑战是准确的找出能够最小化上面目标的 I \mathcal{I} I的子集。主要问题是需要检查 2 I 2^{\mathcal{I}} 2I I \mathcal{I} I的子集。考虑到目标函数不是子模块化的,即使是一个很小的值,计算代价增长也是很快的,所以选择使用启发式的方法来近似解决。下面,提出一些对机器实例进行剪枝的贪心启发式方法:

  • 顶端剪枝,对每个实例 I i \mathcal{I}_i Ii,根据其被剪枝后导致偏差衰减的程度降序排序(只排序一次)。只剪掉导致最大偏差衰减的实例,停止。
  • 迭代剪枝,根据剪掉后偏差的衰减程度,对 I i \mathcal{I}_i Ii降序排序。尝试修剪排序中的每个实例,删除那些导致从当前最大的衰减程度的实例。一次完整的实例修剪尝试视为一个迭代。如果在一次成功的迭代中没有实例被删除,停止。
  • 逐步剪枝,排序;剪掉使偏差衰减最大的实例;重复上面步骤,直到收敛

结合前文的相关内容,给出了识别机器直播和机器直播中的机器观众。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值