三、高维组合特征的处理
什么是组合特征?如何处理高维组合特征?
为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。
比如性别(取值男女),城市(取值上海北京),组合后特征为:上海男,上海女,北京男,北京女。
假设数据的特征向量为X = (x1, x2, x3, x4, x5 ……xk)。比如xi和xj两个特征组合,组合之后特征的维度 = xi取值个数 * xj取值个数。
但是当引入特征 ID进行组合后,会存在参数规模过大的问题。比如用户数量为m,物品数量为n,那么需要学习的参数规模为m*n。用户数、物品数都很多的时候,几乎无法学习m*n规模的参数。这个时候,需要将用户和物品分别用k维的低维向量表示(k<<m,k<<n),即降维。这时,学习参数的规模变为了m*k+n*k(其实是矩阵分解的思路)。
四、组合特征
很多实际问题中,我们常常需要面对多种高维特征。如果简单的两两组合,依然容易存在参数过多、过拟合等问题,而且不是所有的特征组合都是有意义的。因此,需要一种有效的方法来帮助我们找到应该对那些特征进行组合。
怎样有效地找到组合特征?
基于决策树的特征组合方法。根据原始输入特征和标签构造出决策树。构造的决策树中每一条从根节点到叶节点的路径都可以看成一种特征组合的方式。
比如:输入原始特征为年龄,性别,用户类型(试用期,付费),物品类型(食品,护肤等),标签为是否点击,构造出的决策树特征组合方式有以下4种:
1) 年龄<=35, 物品类型=食品
2) 年龄<=35, 性别=女
3) 用户类型=付费,物品类型=护肤
4) 用户类型=付费,年龄<=49
两个样本为:
那么按照上边的四个特征组合,第一条样本可以编码为:(0,1,0,0);第二条样本可以编码为:(0,0,0,1)
给定原始输入如何有效的构造决策树? 可以采用梯度提升决策树。梯度提升决策树的思想是每次都在之前构建的决策树的残差上构建下一棵决策树。
五、文本表示模型
有哪些文本表示模型?他们各有什么优缺点?
词袋模型和N-gram模型
最基础的文本表示模型是词袋模型。词袋模型就是将每篇文章看成一袋子词,并忽略每个词出现的顺序。具体的,就是将整段文本以词为单位切分开,然后每篇文章可以表示成一个长向量,向量中的每一维代表一个单词,而该维对应的权重则反映了这个词在原文章中的重要程度。常用TF-IDF 来计算权重。公式为TF-IDF(t,d) = TF(t,d) * IDF(t)。其中TF(t,d)是单词t在文档d中出现的频率,IDF(t)是逆文档频率,用来衡量单词t对表达语义所起的重要性,表示为 IDF(t) = log(文章总数/(包含单词t的文章总数+1)) 。直观的解释是,如果一个单词在非常多的文章里面都出现,那么它可能是一个比较通用的词汇,对于区分某篇文章特殊语义的贡献较小,因此对权重做一定的惩罚。
将文章进行单词级别的划分有时候并不是一种好的做法,比如自然语言处理一词,如果将自然,语言,处理这三个词拆分开来,所表达的含义与这三个词连续出现时大相径庭。通常,可以将连续出现的n个词(n <= N)组成的词组(N-gram)也作为一个单独的特征放到向量表示中去,构成N-gram模型。另外,同一个词可能有多种词性变化,却具有相似的含义。在实际应用中,一般会对单词进行词干抽取处理,即将不同词性的单词统一成为同一词干的形式。
词干提取是指去除词缀得到词根的过程,是英文预料预处理的一个步骤。例如,字符串cats,catlike,catty的词根是cat。fishing,fished,fish,fisher的词根为fish。
词形还原是基于词典,将单词的复杂形态转变成最基础的形态。
主题模型
主题模型用于从文本库中发现有代表性的主题(得到每个主题上面词的分布特征),并且能够计算出每篇文章的主题分布。
词嵌入与深度学习模型
词嵌入是一类将词向量化的模型的统称,核心思想是将每个词都映射成低维空间(通常k=50~300维)上的一个稠密向量。K维空间的每一维也可以看作一个隐含的主题,只不过不像主题模型中的主题那样直观。
由于词嵌入将每个词映射成一个K维的向量,如果一篇文档有N个词,就可以用一个N*K维的矩阵来表示这篇文档,但是这样的表示过于底层,在实际应用中,如果仅仅把这个矩阵作为原文本的表示特征输入到机器学习模型中,通常很难得到令人满意的结果。因此,还需要在此基础上加工出更高层的特征。在传统的浅层机器学习模型中,一个好的特征工程往往可以带来算法效果的显著提升。而深度学习模型正好为我们提供了一种自动地进行特征工程的方式,模型中的每个隐层都可以认为对应着不同抽象层次的特征。从这个角度来讲,深度学习模型能够打败浅层模型也就顺利成章了。卷积神经网络和循环神经网络的结构在文本表示中取得了很好的效果,主要是由于它们能够更好地对文本进行建模,抽取出一些高层的语义特征。与全连接的网络结构相比,卷积神经网络和循环神经网络一方面很好地抓住了文本的特征,另一方面又减少了网络中带学习的参数,提高了训练速度,并且降低了过拟合的风险。