1. 高维组合特征的处理
什么是组合特征?
将一阶离散特征两两组合,就可以构成二阶组合特征
例如,特征a有m个取值,特别b 有n个取值,将二者组合就有m*n个组成情况。这时需要学习的参数个数就是 m×n 个
如何处理高维组合特征?
问题:当每个特征都有千万级别,就无法学习 m×n 规模的参数了
解决方案:可以将每个特征分别用 k 维的低维向量表示,需要学习的参数变为 m×k n×k 个,等价于矩阵分解
应该对哪些特征进行组合?
可以用基于决策树的方法
- 首先根据样本的数据和特征构造出一颗决策树。
- 然后从根节点都叶节点的每一条路径,都可以当作一种组合方式。
例如,得到的一棵树有这样四条路径:
(1)“年龄<=30”且“性别=女”。 (2)“年龄<=30”且“物品类别=护肤品”。 (3)“用户类型=付费”且“物品类型=服饰”。 (4)“用户类型=付费”且“年龄<=50”。
那么新的一条样本数据,如果同时满足前两个路径,它的向量表示就是 (1,1,0,0)
2. 文本表示模型
词袋模型
即每篇文章用一个向量表示,向量的每个位置代表一个单词,每个位置的数值代表这个单词在文章中的权重,经常用 TF-IDF 。
这个向量就像是一个装满单词的袋子,因为它没有考虑单词的顺序。
词嵌入
将每个词都映射成低维空间(通常 K=50~300 维)上的稠密向量
Word2Vec
- 有两种网络结构,CBOW 和 Skip-gram
- CBOW :根据上下文词语来预测当前词的生成概率
- Skip-gram :根据当前词来预测上下文中各词的生成概率
- 两种改进方法:Hierarchical Softmax 和 Negative Sampling
Word2Vec 与 LDA 的区别和联系
- LDA 对“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布。
- Word2Vec Word2Vec 其实是对“上下文-单词”矩阵进行学习,得到的词向量提现了上下文的特征
主题模型和词嵌入两类方法的差异
- 主题模型,基于“上下文-单词”矩阵进行主题推理 一种基于概率图模型的生成式模型,似然函数可以写成几个条件概率连乘的形式
- 词嵌入方法,根据“文档-单词”矩阵学习出词的隐含向量表示 模型一般表达为神经网络的形式,似然函数定义在网络的输出之上 通过学习网络的权重,进而得到单词的向量表示