首页 体育 教育 财经 社会 娱乐 军事 国内 科技 互联网 房产 国际 女人 汽车 游戏

浅谈微视推荐系统中的特征工程

2020-01-20

导语 | 在引荐体系中,特征工程扮演着重要的人物。 俗话说数据和特征决议了机器学习算法的上限,而模型、算法的挑选和优化仅仅在不断迫临这个上限。 特征工程的条件是搜集满足多的数据,运用数据学习常识,从许多的原始数据中提取要害信息并标明为模型所需求的办法。 本文首要阐明微视,这种富媒体形状的短视频途径,是怎么经过视频内容特征以及用户特色和行为数据,来精准猜测用户对短视频的喜爱的。

导言

本文首要是跟各位读者共享特征工程范畴的一些通用办法和技巧,以及微视在特征工程上的相关实践经历。 微视作为一个短视频途径,存在其独有的事务特色,这也给特征结构带来了必定的难度。 比方热目类目在播映时长、互动率等方针上体现出天然的优势,长视频比较于时长较短的视频在播映完结度、完播率等方针上存在显着的下风,怎么消除这些bias的影响都是特征结构时需求特别留意的当地,而关于咱们线上的多方针排序模型来说,不同单方针对应的最优特征组合也不尽相同,这些不只需求较强的专业范畴常识,更重要的是对自身事务场景的深入认知以及许多线上试验的探究测验与验证。

一、特征提取

微视作为一个短视频途径,存在其独有的事务特色,这也给特征结构带来了必定的难度。比方热目类目在播映时长、互动率等方针上体现出天然的优势,长视频比较于时长较短的视频在播映完结度、完播率等方针上存在显着的下风,怎么消除这些bias的影响都是特征结构时需求特别留意的当地,而关于咱们线上的多方针排序模型来说,不同单方针对应的最优特征组合也不尽相同,这些不只需求较强的专业范畴常识,更重要的是对自身事务场景的深入认知以及许多线上试验的探究测验与验证。

特征工程便是将原始数据空间映射到新的特征向量空间,使得在新的特征空间中,模型能够更好地学习数据中的规则。 因而,特征提取便是对原始数据进行处理与改换的进程。常见的原始数据类型有数值型、离散型,还有文本、图画、视频等。假如将这些数据作为一个全体来看待的话,把用户、视频、作者看作节点,用户与视频、作者的交互看作边构建出的杂乱网络也是咱们的原始数据。

事实上,假如特征工程做的满足好,即使是简略的模型,也能体现出十分好的效果。而杂乱的模型能够在必定程度上削减特征工程的作业量。例如,关于线性模型,咱们需求将类别变量进行独热编码等处理,但关于杂乱一些的模型如树模型,则能够直接处理类别变量。像引荐体系中常用的LR模型,需求手艺结构组合特征,而FM模型能够处理特征组合的问题,直接输入原始特征。而更杂乱的DNN模型,能够主动学习特征的标明。

在微视场景下,视频的播映时长、播映完好度、点赞、转发、共享、谈论等多种互动行为都是引荐模型的练习方针,依据模型所要学习的方针和事务逻辑,咱们需求考虑数据中有哪些或许相关的信息,从现有数据中挖掘出对模型猜测有用的特征。比方在微视排序中,用户的爱好,在App上的播映、互动等行为以及视频的类别、标签、热度等都是强相关的要素。在确认了哪些要素或许与猜测方针相关后,咱们需求将此信息抽取成特征,下面会对不同特征的处理办法做详细介绍。

数值类型的数据具有实践核算含义,例如用户对不同类目下视频的爱好分,或许是计数,例如一个视频被播映了多少次、被点赞、转发以及谈论了多少次等。 尽管一些机器学习模型能够直接输入数值类型的数据,可是一般状况下,对数值型数据进行恰当的改换和处理能带来更优的效果。 关于数值特征,咱们首要考虑的要素是它的巨细和散布。 下面介绍几种咱们用到的数值特征的处理办法。

1)分桶。比方视频一周内被播映次数应该是一个有用的特征,因为播映次数跟视频的热度有很强的相关性,可是假如不同视频的播映次数跨过不同的数量级,则很难发挥想要的效果。例如LR模型,模型往往只对比较大的特征值灵敏。关于这种状况,一般的处理办法是进行分桶。分桶操作能够看作是对数值变量的离散化,之后经过二值化进行 one-hot 编码。

分桶的数量和宽度能够依据事务范畴的经历来指定,也有一些惯例做法。等距分桶,每个桶的值域是固定的,这种办法适用于样本散布较为均匀的状况;等频分桶,即使得每个桶里数据相同多,这种办法能够确保每个桶有相同的样本数,但也会呈现特征值差异十分大的样本被放在一个桶中的状况;模型分桶,运用模型找到最佳分桶,例如运用聚类的办法将特征分红多个类别,或许树模型,这种非线性模型天然生成具有对接连型特征切分的才干,运用特征切割点进行离散化。

分桶是离散化的常用办法,将接连特征离散化为一系列 0/1 的离散特征,离散化之后得到的稀少向量,内积乘法运算速度更快,核算成果便利存储。离散化之后的特征关于反常数据也具有很强的鲁棒性。需求留意的是:

要使得桶内的特色取值改变对样本标签的影响根本在一个不大的规模,即不能呈现单个分桶的内部,样本标签输出改变很大的状况;

使每个桶内都有满足的样本,假如桶内样本太少,则随机性太大,不具有核算含义上的说服力;

每个桶内的样本尽量散布均匀。

2)切断。关于接连型数值特征,有时精度太高或许仅仅噪声,并不具有太多的信息,也使得特征维度急剧上升。因而能够保存必定的精度,之后当作类别特征进行处理。关于长尾的数据,能够先进行对数缩放,再进行精度切断,之后能够作为类别变量做二值化处理,这也是咱们实践运用中的做法。

3)缺失值处理。实践问题中常常会遇到特征缺失的景象,关于特征缺失,能够挑选补一个值,例如运用均值,中位数,众数等进行代替,需求视详细状况进行挑选;也可直接疏忽,行将缺失作为一种信息进行编码输入模型让其进行学习,比方用户性别缺失,能够直接将不知道作为一种类别进行处理;还能够运用模型猜测缺失值,当然也有一些模型能够直接处理缺失值特征,比方XGBoost。

4) 特征穿插。特征穿插能够标明特征之间的彼此效果,有助于标明非线性联系,增强对问题的描写,缺陷是维度快速增加,需求更多的练习样本。提高模型表达才干常见的相关办法有内积、笛卡尔积、哈达玛积等。内积是将两个或多个特征相乘,若向量a=,向量b=,则向量a 向量b=a1a2+b1b2;笛卡积是将一切元素两两相乘,例如,A={a,b},B={0,1,2},则 A B={, , , , , } ;Hadamard积是将对应方位的元素相乘,例如,A={a,b},B={0,1},则 A B={ } 。下图旨在阐明笛卡尔积与Hadamard积在详细特征结构上的差异。

特征穿插能够经过一些特征挑选办法来挑选有用的组合特征,比方卡方查验、特征相关 性剖析等; 也能够依据经历进行组合, 有些cross特征,尽管或许没有直观的解说,但也常常会给模型带来很大的效果提高。 除了手艺结构穿插特征外,有些模型能够主动进行特征的穿插组合,比方常用的FM和FFM模型等。

5)规范化与缩放。数据的规范化或许归一化是将数据按份额缩放,将其转化为无量纲的纯数值,使得不同单位或量级的特征之间具有可比性,关于运用梯度下降来练习模型参数的算法,有助于提高模型的收敛速度。需求着重的是,不同事务的数据,其数据散布是不同的,缩放的办法必定要契合其特定的数据散布。一般会依据实践数据的状况,对惯例做法或许公式进行调整,但大体思路上仍是一起的,下面介绍3类相对通用的做法。

0-1规范化,是对原始数据的线性改换,使成果落到[0,1]区间,其间max为样本数据的最大值,min为样本数据的最小值。

这种办法有一个缺陷便是当有新数据参加时,或许会导致max值和min值的改变,需求从头界说。

假如max值和min值动摇较大,简略使得规范化成果不安稳,因而在实践运用中常用经历常量值来代替最大最小值。

z-score 规范化,经过处理的数据契合规范正态散布,即均值为0,规范差为1,其间μ为一切样本数据的均值,σ为一切样本数据的规范差。

这种规范化办法要求原始数据的散布能够近似为高斯散布,不然效果会变得很糟糕。

非线性规范化,这种办法一般运用在数值差异较大的场景,经过一些数学函数,比方对数、指数、正切等,将原始值做映射改换。

实践运用中,需求依据不同事务的数据散布来挑选,比方对数缩放,对数缩放关于处理长尾散布且取值为正数的数值变量十分有用,能够紧缩数据规模,将长尾变为短尾,像log2和log10转化在微视中也都有运用,是一种方差安稳的改换。

6)数据滑润。 常用的行为次数与曝光次数比值类的特征,因为数据的稀少性,这种核算办法得到的核算量一般具有较大的误差,需求做滑润处理,比方广告点击率常用的贝叶斯滑润技能。 而在咱们引荐场景中,也会用到许多核算类特征、比率特征。 假如直接运用,比方因为不同item的下发量是不同的,这会让引荐倾向抢手的类目,使得越推越窄,无法发现用户的个体差异,也不利于多样性的探究。 咱们能够把曝光量进行分段,同一个曝光量级的方针进行比较,也能够用该item所属类目核算量的均匀值进行滑润处理。 关于离群值较多的数据,咱们会运用愈加强健的处理办法,比方运用中位数而不是均值,依据分位数而不是方差。 而在短视频事务上较短或较长的视频在播映完结度上存在天然的间隔,咱们按视频自身长度离散,观看时长做分位数处理,一起做威尔逊置信区间滑润,使得各视频时长段播映完结度相对可比,避免呈现打分因视频长度严峻歪斜的状况。 以及短视频app的投稿数量大,关于长尾的视频和类目都是需求做滑润处理的。 下面介绍两种较为常用的滑润技能。

电商范畴中常常需求核算或猜测一些转化率方针,比方CTR。这些转化率能够是模型的猜测值,也能够作为模型的特征运用。以产品点击率猜测为例,CTR的值等于点击量除以曝光量。抱负状况下,例如某个广告点击量是10000次,转化量是100次,那转化率便是1%。但有时,例如某个广告点击量是2次,转化量是1次,这样算来转化率为50%。但此刻这个方针在数学上是无效的。因为大数规律告知咱们,在试验不变的条件下,重复试验屡次,随机事情的频率近似于它的概率。后者点击量只需2次,不满足“重复试验屡次”的条件。假如关于一个新上线的产品,其曝光为0,点击量也为0,此刻这件产品的CTR应该设为0仍是赋一个初始值?初始值设0是能够的,但不太合理。当CTR作为特征运用时,标明这个产品彻底没有点击,不太契合日常揣度,一般是赋一个大于0的初始值。

以上两个问题能够运用滑润技能来处理。贝叶斯滑润的思维是给CTR预设一个经历初始值,再经过当时的点击量和曝光量来批改这个初始值。假如某产品的点击量和曝光量都是0,那幺该产品的CTR便是这个经历初始值;假如产品A和产品B的曝光量不同很大,那幺能够经过这个经历初始值来批改。贝叶斯滑润便是确认这个经历值的进程。贝叶斯滑润是依据贝叶斯核算揣度的,因而经历值核算的进程依靠于数据的散布状况。关于一件产品或一条广告,关于某次曝光,用户要幺点击,要幺没点击,这契合二项散布。因而关于点击率类的贝叶斯滑润,都能够依据以下假定:关于某件产品或广告,其是否被点击是一个伯努利散布。伯努利散布的共轭散布便是Beta散布,也便是说,点击率遵守Beta散布。而一切的数据有一个自身的点击率散布,这个散布能够用不同的beta散布来拟合。beta散布能够看做是对点击率的一个先验常识,咱们能够依据观测来批改咱们的先验,所以贝叶斯滑润便是估量Beta散布中的参数α和β,其间C和I是点击次数和曝光量。实践运用时依据前史数据得到的α和β能够协助确认滑润参数的大致规模,避免设置参数时违背过大。

在现实生活中咱们会接触到许多评分体系,如豆瓣谈论、YouTube 影评,在这些评分中有1个一起问题是每个 item 的评分人数是不同的,比方10000 个人打了 90 分好像比只需 10 个人打了 90分更能被信任该 item 是90分的。威尔逊区间法常用来处理此类问题,是一种依据二项散布的核算办法,归纳考虑谈论数与好评率,滑润样本量对点评的影响,咱们画像爱好分上也用到了威尔逊区间滑润。

假定u标明正例数,n标明实例总数,那幺好评率p就等于u/n。p越大,标明这个item的好评份额越高,越应该排在前面。可是,p的可信性,取决于有多少人,假如样本太小,p就不可信。咱们已知p是二项散布中某个事情的发作概率,因而咱们能够核算出p的置信区间。置信区间实践便是进行可信度的批改,补偿样本量过小的影响。假如样本多,就阐明比较可信,不需求很大的批改,所以置信区间会比较窄,下限值会比较大;假如样本少,就阐明不必定可信,有必要进行较大的批改,所以置信区间会比较宽,下限值会比较小。威尔逊区间便是一个很好的批改公式,在小样本上也具有很强的鲁棒性。

鄙人面的公式中, p标明样本的好评率,n标明样本的巨细,z标明对应某个置信水平的z核算量,是一个常数。一般状况下,在95%的置信水平下,z核算量的值为1.96。能够看到,当n的值满足大时,这个下限值会趋向 p 。假如n十分小,这个下限值会远小于 p,起到了下降好评率的效果,使得该item的打分变低、排名下降。

7)bias消除。 微视会用到一些不一起间窗口以及实时的核算特征,比方不同类目或许不一起长区间下的完播率、均匀播映时长等,考虑到冷抢手类目以及长短视频在核算量上自身存在显着的差异,滑润之后咱们会用核算量均值进行消偏,这也相当于有一个对抢手视频降权,对长视频提权的效果。

8)多维度界说。 有些特征能够结合多个特色或许核算量来界说,比方用户所属用户群特征,用户群能够从画像、操作体系等维度来界说;比方用户的活跃度特征能够从周/月登录次数、日播映时长、日播映个数、均匀完播率等维度联合界说。

9)依据方针定制。 有用的特征应该是与模型练习方针、样本界说严密相关的,需求从数据中开掘与模型方针强相关的要素。比方视频的播映时长、播映完好度是咱们的直接学习方针,一起考虑到用户在短视频app上的互动类型比较多,包含点赞、谈论、共享、重视等,而不同的行为关于用户有着不同的价值,点赞标明爱好偏好,谈论反映用户的实在感触,共享利于传达分发,重视建立了一种老友爱好联系,咱们会一起运用这些用户互动行为进行建模。与广告点击率预估中的ctr特征类似,咱们能够依据不同方针正负样本的界说,别离为每个单方针模型结构正样本率特征。以及比方从谈论文本中剖析用户对视频的“内容、bgm、速度、明晰度”等特色的情感倾向,对谈论文本进行情感剖析,让文本谈论好评率来辅导模型依据实在点评引荐视频就显得很有含义。

类别特征能够是标签、特色、类型 ,比方在微视运用中,视频的id、作者、类别、标签、明晰度、质量、topic、bgm曲风与速度等视频特色特征。一起也能够将数值特征离散化,从定量数据中取得定性数据。下面介绍几种咱们对类别变量的处理办法。

1)独热编码。 独热编码一般用于处理类别间不具有巨细联系的特征,每个特征取值对应一维特征,能够处理缺失值,在必定程度上也起到了扩大特征的效果。可是当类别的数量许多时,特征空间会变得十分大。在这种状况下,一般能够用PCA等办法进行降维。

2)散列编码。 关于有些取值特别多的类别特征,运用独热编码得到的特征矩阵十分稀少,再加上假如还有笛卡尔积等结构的组合特征,会使得特征维度爆破式增加。特征数量多的问题自古有之,现在也现已有许多用于降维的办法。比方聚类、PCA等都是常用的降维办法。但这类办法在特征量和样本量许多的时分自身就核算量很大,所以对大问题也根本力不从心。特征哈希便是一种简略的降维办法,在微视运用也较多,特征哈希法的方针便是是把原始的高维特征向量紧缩成较低维特征向量,且尽量不丢失原始特征的表达才干,其优势在于完成简略,所需额定核算量小;下降特征维度,然后加快算法练习与猜测的时刻,以及下降内存耗费;但价值是经过哈希转化后学习到的模型变得很难查验,咱们很难对练习出的模型参数做出合了解说。特征哈希法的另一个问题是它会把多个原始特征哈希到相同的方位上,呈现哈希collision现象,但实践试验标明这种collision对算法的精度影响很小。

3)打分排名编码。 比方在对用户画像的运用上,咱们既直接运用了接连值画像特征,一起考虑到画像爱好分之间天然的序列联系,别离对用户一、二级类意图top1~top10爱好进行one-hot,运用打分的排名对类别特征进行编码,强化爱好打分排名的信号,且这种办法关于反常点较为不灵敏;还有比方用户活跃度较高的前topn类目和不活跃度较高的前topn类目也可按次第排名作为离散特征。

4)反常值处理。 实践运用中,咱们常常关怀的一个点是反常值对整个核算以及离散化的影响,关于数值变量咱们能够把绝对值处理为一个相对值,作为一个次第变量进行one-hot编码,或许做分箱离散化,都能够较好的减轻离群点的影响。关于分类变量,能够考虑神经网络中常见的做法,将分类变量做特征嵌入。比方说这儿有1万个不同的标签,把它投影到64维或许128维的vector上面,相当于本来一个1万维的one-hot特征,现在只需求64维或128维就能够进行标明,将本来十分稀少的向量空间转化到语义更为丰厚且低维的特征embedding空间,且内存需求更少,精度也会更高。

5)类别特征之间穿插组合。 比方用户性别、操作体系cross得到用户分群特征,视频类别与标签之间的组合特征。在实践运用中,类别特征之间的组合办法千变万化,这类特征一般从事务逻辑的视点动身进行结构。比较类别特征之间的笛卡尔积操作,依据分组核算的特征组合办法核算愈加杂乱,需求对事务数据有较好的了解。

6)类别特征和数值特征之间穿插组合。 这类特征一般是在类别特征某个详细类别中核算一些核算量。例如用户对不同类目视频的完播率、均匀播映时长,不同用户集体的互动方针等运用数值特征对类别特征进行处理。

例如咱们结构了视频一二级类意图曝光次数cross快划次数的组合特征,这个能够有很直观的解说,比方剖析某个用户的样本发现类似王者荣耀_31_31的组合,即咱们的引荐体系给这个用户曝光了31个王者荣耀的视频,可是每个都快速划过了,假如仍是持续推,这个用户体会将会是极度糟糕的,而这个特征会很大程度的处理这个问题,使得尽或许的给这个用户曝光感爱好的类目。这个特征能够进一步细化为类目曝光次数cross一些核算量,比方完播次数、互动次数等,因为没有快划或许是用户乐意测验去看,完播或许是喜爱这个视频内容,而互动比方说转发或许点赞,能够看做是用户体现出了更为激烈的爱好。

比方为了提高视频的明晰度,咱们给视频明晰等级打标签,可是发现直接参加明晰度特色特征后,明晰视频散布和线上方针并没有改进。经过对终端屏幕匹配状况,视频比较于屏幕过度拉伸份额的剖析,咱们发现约有十分之一的播映体会体现出过度拉伸,关于部分大屏幕用户,过度拉伸份额会更高,所以咱们进一步测验了视频明晰度别离与用户手机屏幕拉伸度和手机类型的笛卡尔积特征,明晰视频播映占比有了较为显着的提高,这对用户体会起到了必定的优化效果。

1)视频embedding

视频embedding分为依据内容的embedding和依据行为的embedding,前者运用视频的标题、封面、图画,音频等视频自身特色信息,经过nlp、图画视觉等技能取得embedding,后者是依据用户与视频的交互行为数据取得,比方咱们发现用户在一个session中,前后点击的视频存在必定的类似性,一般会体现出对某类型视频的爱好偏好,或许是同个风格类别,或许是类似的论题人物等。因而咱们将一段时刻内用户点击的视频id序列作为练习数据,运用skip-gram模型学习视频的embedding特征。因为用户点击行为具有上下文接受联系,因而得到的embedding特征有很好的聚类效果,使得在特征空间中,同类意图视频集合在一起,类似类意图视频在空间中间隔附近。在微视引荐体系里,视频embedding不只能够作为排序特征,运用用户最近点击过视频的均匀embedding进行召回,也是带来了效果提高。

咱们运用TSNE对视频embedding进行降维,从可视化成果来看,同一个类目下的视频是聚在一起的;类似的类目在特征空间中离得较近,如“猫”和“狗”,“亲子互动”和“亲情”;差异较大的类目离得较远,如“游览Vlog”和“猫”。这仍是很契合预期的,一个用户的首要爱好或许就会集在某几类,比方有的用户喜爱“猫”,那这个用户很大或许对“猫”的视频有许多的播映以及互动行为,那咱们学习出来关于猫这个类意图视频embedding就会很类似,体现出在嵌入空间中集合在一起的景象。

可是假如仅仅简略的对视频id序列学习 embedding特征,咱们是无法取得新视频embedding的。针对这个问题,咱们运用了side information来处理视频冷启动问题,side information指的是视频的一、二级类目、视频标签、视频时长、明晰度、间隔发布的时刻等视频特色信息,像间隔发布的时刻特色关于新闻资讯类视频,提高视频时新性有必定的协助,特别咱们发现用户比较偏心新发布的视频。咱们将视频embedding特征转化为视频特色的embedding特征,取一段时刻内同特色视频的均匀embedding作为这个特色的embedding特征。这样当有新的视频进入到引荐库时,能够核算出新视频的视频特色embedding。这样做的长处是在同一个语义空间做运算,排序模型不需求再从头学习embedding的空间散布。

依据side information取得的视频embedding区别才干仍是遭到必定约束的,只需视频特色相同,不同视频embedding是彻底相同的,并且假如增加了新的类方针签或许其他特色分类也是没有办法处理的。针对以上状况,实践运用中咱们选用增量式skip-gram模型学习视频的embedding,运用引荐库最新资源线上实时练习,将新入库的视频参加到模型中做增量式学习。Incremental skip-gram模型与传统skip-gram模型的不同之处在于embedding空间散布是动态更新的。

2)user embedding

想让embedding表达什幺,首要在于挑选哪一种办法构建语料,不同的用户行为序列,表达的爱好也不同,比方快速划过行为、完播行为,点赞转发行为等表达的爱好以及程度也都是不同的。因而视频embedding向量终究的效果,是不同item在用户爱好空间中的方位表达。现在运用较多的首要是依据word2vec以及相应衍生的embedding技能和依据图神经网络的embedding技能,像咱们在隐式画像上就运用了依据异构图的user embedding。

咱们也能够把引荐问题建模成一个大规模的多分类问题,运用softmax loss学习一个DNN模型,即在某一时刻某一上下文信息下为用户在视频引荐库中精准地猜测出下一次播映视频的类别,最终把练习好的DNN模型最终一层隐层输出作为user embedding。深度学习模型尽管能够削减一部分特征工程的作业,但有些原始数据是不能直接输入到DNN中,与CV、NLP 不同的是,引荐体系对特征工程分外依靠,好的特征能够起到十分要害的效果。咱们的输入交融多种信息,首要包含人口核算学信息,播映前史,查找前史,上下文信息,爱好画像等,一起运用全场景数据而不是只运用用户播映数据。一起考虑了一些泛化才干比较强的数值和时刻特征,比方完播该类意图视频数,最近一次播映该类目视频间隔现在的时刻等描写用户与视频类别联系的特征。除了这些偏正向的特征,用户关于一些类目曝光但不点击快速划过等负反馈的信号相同十分重要。

简略一点的做法也能够将一段时刻内用户点击过的视频的均匀embedding作为该用户的embedding特征,当然这儿的“均匀”能够是简略的算术均匀,也能够是依据视频的热度和时刻特色等进行加权均匀或许测验用 RNN 替换掉均匀操作。一起将时刻跨度取长一点,能够表达用户的长时刻爱好;取短一点,能够用于描写用户的短期爱好,当然用户覆盖率也会随之下降。比方用户最近一周内首要点击观看的都是关于“猫”的视频,那该用户embedding特征,就会跟“猫”的向量很附近。咱们也测验将用户点赞或许共享转发过的视频序列作为练习数据,为用户互动过的视频提权。这儿需求留意的是,有时单个用户行为序列太稀少了,无法直接练习,一般能够先对用户做聚类再练习。

3)作者embedding

能够取作者近一个月内发布视频的均匀embedding,作为该作者的embedding特征。这样做的动身点是,假如两个作者发布的视频类似,那幺这两个作者的embedding向量也应该是附近的。假定此刻某个用户喜爱作者A,那幺咱们能够试着把与作者A类似的作者B发布的视频引荐给该用户。

context特征一般是客户端带的信息,在用户授权的条件下能够直接获取,比方恳求时刻、用户手机品牌、手机类型、操作体系、当时网络状况、用户途径等实时特色特征以及之间的cross特征。

session特征一般是依据用户最近的行为流水,常见的session区别办法有以下几种:

固定行为数窗口,例如最近100条行为平分视频类别的完播个数、快速划过个数;

固定时刻窗口,例如最近3天里有过正向行为的item id或许一些核算量;

接连行为窗口,例如用户1次翻开app到封闭app期间的播映互动行为。

如上几种session界说的办法没有好坏之分,一般会结合详细事务场景做混合界说。在获取到用户的session数据后,能够直接将session里对应的item id序列作为特征,或许是session内的类别核算数据,也能够将预练习好的item embedding结构成session特征。

特征挑选是指挑选相关特征子集的进程,好的特征挑选能够提高模型的功能,更能协助咱们了解数据的特色、底层结构,这对进一步改进模型、算法都有着重要效果。 特征挑选首要有以下两个意图:

简化模型,节约存储和核算开支;

削减特征数量、降维,改进通用性、下降过拟合的危险。

下面介绍几种特征挑选的常用办法。

过滤式特征挑选独立于学习算法,不需求依靠任何模型,直接由数据集求得,点评依靠于数据集自身。 一般首要考虑特征变量和方针变量之间的相关性以及特征变量之间的彼此联系,一般以为相关度大的特征或许特征子集会对后续学习算法带来较高的准确率。 这类办法在预处理时也运用较多,长处是核算功率高、杂乱度低,独立于算法,但也或许选出冗余的特征。

覆盖率。

首要核算每个特征的覆盖率,覆盖率很小的特征对模型的猜测效果效果不大,能够除掉。

方差剖析。

剖析特征的数据散布,比方说某个特征方差接近于0,阐明不相同本在这个特征上根本没有什幺差异,能够说这个特征是关于样本区别根本没有太大效果的无关变量。

因而一般能够挑选方差大于某个阈值的特征,去掉取值改变小的特征。

Pearson相联系数。

皮尔森相联系数是一种简略的,能协助了解特征和方针变量之间联系的办法,用于衡量变量之间的线性相关性,取值区间为[-1,1],-1标明彻底的负相关,+1标明彻底的正相关,0标明没有线性相关。

经过剖析特征与方针之间的相关性,优先挑选与方针相关性高的特征。

假定查验。

假定特征变量和方针变量之间彼此独立,挑选恰当查验办法核算核算量,然后依据核算量做出核算揣度。

例如关于特征变量为类别变量而方针变量为接连数值变量的状况,能够运用方差剖析,关于特征变量和方针变量都为接连数值变量的状况,能够运用皮尔森卡方查验。

卡方核算量取值越大,特征相关性越高。

互信息。

在概率论和信息论中,互信息用来衡量两个变量之间的相关性。

互信息越大则标明两个变量相关性越高,互信息为0时,两个变量彼此独立。

与过滤办法不同,封装式特征挑选直接运用机器学习算法点评特征子集的效果,直接面向算法优化,效果好,缺陷是需求对每一组特征子集练习一个模型,核算杂乱度高。常用的特征子集查找算法有:彻底查找;依据贪心的启发式查找;随机查找。

过滤式办法与模型算法彼此独立,不需求穿插验证,核算功率比较高,可是没有考虑详细模型算法的特色。封装式办法运用模型来点评特征子集的质量,需求屡次练习模型,核算功率很低。嵌入式办法将特征挑选自身作为组成部分嵌入到学习算法里,速度快,效果好,缺乏是与算法绑定,需求常识调整结构和参数装备。

依据正则化

运用带正则赏罚项的模型,比方L1正则化,经过对回归系数增加L1赏罚项来避免过拟合,因发生稀少解,天然具有特征挑选的效果。

依据树模型

依据决策树的算法,如随机森林、GBDT,xgboost,在每次挑选分类节点时,都会挑选最佳分类特征来进行切分,重要的特征更有或许呈现在割裂较早的节点,作为割裂节点的次数也越多。因而,能够依据树模型中特征呈现次数等方针对特征重要性进行排序。

特征重要性剖析是用来判别哪些变量对模型猜测的影响力最大,能够协助咱们了解数据,辅导模型参数的设置以及特征的挑选,使模型具有杰出的可解说性。

单特征auc。

对每个单特征练习模型,核算每个特征的auc或gauc,并对其进行排名,精度越高标明该特征重要程度越高。这个办法需求练习多个模型,功率较低。实践运用中,能够有挑选的对某些特征子集进行试验。

特征值置换。

特征值置为0。在猜测时能够顺次将某个特征取值置为0,即不考虑该特征对模型的影响,核算模型auc,精度下降越多,标明这个特征关于模型猜测越重要;

特征取随机值。将某个特征取随机值,能够运用均匀或许高斯散布随机抽取值,然后核算模型的准确率。关于某个特征,假如用一个随机值代替后体现比之前差许多,阐明该特征很重要;

特征值随机打乱。随机打乱验证会集某一特征变量的值,运用训好的模型进行猜测,精度丢失越多,阐明该特征关于猜测成果的影响越大,能够依照精度丢失的多少对特征重要性进行排序。这个办法比随机取值更科学,确保了与原始特征散布是一起的。举个比方阐明一下,咱们有一个现已练习好的模型以及点评该模型体现的点评方针。假定这是一个短视频播映时长的猜测模型,本来在验证集上的RMSE是200,然后咱们把某一个变量的值悉数打乱从头做猜测,比方说此刻RMSE变成了500,那幺性别这个变量的重要性就能够记为300,即让loss增加了300。

在实践的工程运用中,详细选用什幺特征处理办法不只依靠于事务和数据自身,还依靠于所选取的模型,因而首要要了解数据和事务逻辑以及模型的特色,才干更好地进行特征工程。 一般能够考虑对样本做归一化、离散化、滑润处理以及特征改换与特征穿插,咱们也会运用一些跨场景的特征搬迁办法,复用现有常识域数据,比方手Q场景下的特征数据,详细办法的挑选依靠于数据、资源等实践要素,杂乱的模型尽管能够减轻咱们在特征工程上的作业,但这并不代表咱们不需求特征工程了。 咱们仅仅把更多的精力放在了模型难以直接从原始数据中学习到,需求凭借对事务的了解与外部常识的特征结构上。

特征工程不只与模型算法相关,与实践问题更是强相关的。针对不同场景,特征工程所用的办法或许相差较大,所以很难总结出适用于不同事务的一套比较通用的办法。尽管如此,但仍然有许多特征工程的办法和技巧在不同问题中都适用。本文把微视排序中一些特征工程的实践经历跟各位读者共享,期望对大家能有所协助。

热门文章

随机推荐

推荐文章