什么是组合特征?如何处理高维组合特征?
为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。以广告点击预估问题为例,原始数据有语言和类型两种离散特征,表1.2是语言和类型对点击的影响。为了提高拟合能力,语言和类型可以组成二阶特征,表1.3是语言和类型的组合特征对点击的影响。
表1.2 语言和类型对点击的影响
| 是否点击 | 语言 | 类型 |
|---|---|---|
| 0 | 中文 | 电影 |
| 1 | 英文 | 电影 |
| 1 | 中文 | 电视剧 |
| 0 | 英文 | 电视剧 |
表1.3 语言和类型的组合特征对点击的影响
| 是否点击 | 语言=中文 类型=电影 |
语言=英文 类型=电影 |
语言=中文 类型=电视剧 |
语言=英文 类型=电视剧 |
|---|---|---|---|---|
| 0 | 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 0 | 0 |
| 1 | 0 | 0 | 1 | 0 |
| 0 | 0 | 0 | 0 | 1 |
以逻辑回归为例,假设数据的特征向量为,则有
,其中
表示
的组合特征。
的维度等于
,
和
分别代表第i个特征和第j个特征不同取值的个数。在表1.3的广告点击预测问题中,
的维度是2×2=4(语言取值为中文或英文两种、类型的取值为电影或电视剧两种)。这种特征组合看起来是没有任何问题的,但当引入ID类型的特征时,问题就出现了。以推荐问题为例,表1.4是用户ID和物品ID对点击的影响,表1.5是用户ID和物品ID的组合特征对点击的影响。
表1.4 用户ID和物品ID对点击的影响
| 是否点击 | 用户ID | 物品ID |
|---|---|---|
| 0 | 1 | 1 |
| 1 | 2 | 1 |
| … | … | … |
| 1 | m | 1 |
| 1 | 1 | 2 |
| 0 | 2 | 2 |
| … | … | … |
| 1 | m | n |
表1.5 用户ID和物品ID的组合特征对点击的影响
| 是否点击 | 用户ID=1 物品ID=1 | 用户ID=2 物品ID=1 | … | 用户ID=m 物品ID=1 |
用户ID=1 物品ID=2 | 用户ID=2 物品ID=2 | … | 用户ID=m物品ID=n |
|---|---|---|---|---|---|---|---|---|
| 0 | 1 | 0 | … | 0 | 0 | 0 | … | 0 |
| 1 | 0 | 1 | … | 0 | 0 | 0 | … | 0 |
| … | … | … | … | … | … | … | … | 0 |
| 1 | 0 | 0 | … | 1 | 0 | 0 | … | 0 |
| 1 | 0 | 0 | … | 0 | 1 | 0 | … | 0 |
| 0 | 0 | 0 | … | 0 | 0 | 1 | … | 0 |
| … | … | … | … | … | … | … | … | … |
| 1 | 0 | 0 | … | 0 | 0 | 0 | … | 1 |
若用户的数量为m、物品的数量为n,那么需要学习的参数的规模为m×n。在互联网环境下,用户数量和物品数量都可以达到千万量级,几乎无法学习m×n规模的参数。在这种情况下,一种行之有效的方法是将用户和物品分别用k维的低维向量表示(k<<m,k<<n),
