首页 > 其他分享 >推荐系统中常用的特征选择方法

推荐系统中常用的特征选择方法

时间:2023-05-29 15:36:59浏览次数:45  
标签:常用 特征选择 推荐 auc 散度 特征 重要性 模型

背景

推荐系统已经迈入了深度学习时代,模型结构比较复杂,下面介绍在深度学习背景下常用的特征选择方法

 

1. 根据特征在正负样本上分布的差异

直观感觉上一个特征越重要,那么它在正负样本的分布差异应该是越大的,基于此我们可以用KL散度来表示特征重要性,但是KL散度是非对称,我们可以采用JS散度来表达特征重要性,JS散度的计算公式如下所示:

 

2. 根据删除特征后auc变化

二分类问题中常用的离线评价指标就是auc,一个直观的想法是我们先用全量特征训练一个模型,然后逐个删除特征看auc变化来判断特征重要性,但是这样每次都要重训模型,费时费力。可以采取折中的方法,改为只在预估的时候把该特征全部置位0(或者是在一个batch样本中打乱该特征),看auc变化

 

3. 根据该特征在模型中的权重大小

还有一种想法是直接查看该特征在模型中相关的权重大小来作为特征重要性,如bias、embedding、这个这个slot在第一层NN的权重。或者单独训练一个模型,如LR模型,或者把embedding压缩到1维

 

4. AutoFIS

AutoFIS是华为2020年发表的论文《AutoFIS: Automatic Feature Interaction Selection in Factorization Models for Click-Through Rate Prediction 》,该论文提出了一种选择交叉特征的方法。简单来说就是在FM的基础上,在每个交叉特征前面加了个权重来学习特征重要性

 

5. 基于图

待补充,见这篇论文《Detecting Beneficial Feature Interactions for Recommender Systems》

标签:常用,特征选择,推荐,auc,散度,特征,重要性,模型
From: https://www.cnblogs.com/xumaomao/p/17440589.html

相关文章

  • 常用的数字高程模型(DEM)数据介绍,附免费下载
    常用的数字高程模型(DEM)数据:​ETOPO(1.8千米)ETOPO是一种地形高程数据,由NGDC美国地球物理中心发布,与大多数高程数据不同的是,它还包含海底地形数据。SRTM15(450米)SRTM15的空间分辨率为15弧秒,精度相当于0.5km左右,包含了陆地高程和海洋深度数据。GMTED(250米)来自美国地质勘探局USGS......
  • 正则应用实例常用类和Matcher
    1. 应用实例  8921.1 例1 对字符串进行如下验证1.汉字2.邮政编码要求:是1-9开头的一个六位数.比如: 123890 3.QQ号码要求是1-9开头的一个(5位数-10位数)比如: 12389 ,1345687,1876987654.手机号码要求:必须以13, 14,15,18开头的11位数,比如13588889999代码在com.stulzl.reg......
  • javascript常用正则表达式
    javascript身份证号验证正则1.//这个可以验证15位和18位的身份证,并且包含生日和校验位的验证。2.//如果有兴趣,还可以加上身份证所在地的验证,就是前6位有些数字合法有些数字不合法。3.4.function5.num=num.toUpperCase();6.//身份证号码为15位或者18......
  • virsh常用命令
     一、virsh常用命令一些常用命令参数[root@kvm-server~]#virsh--help#查看命令帮忙[root@kvm-server~]#virshlist#显示正在运行的虚拟机[root@kvm-server~]#virshlist--all... 张俊营同学(EDWARD)  · 2021-07-0523:36:31一、virsh常用命令一些常用命令参......
  • 自定义注解时常用注解
    @Target@Target:注解的作用目标@Target(ElementType.TYPE)——接口、类、枚举、注解@Target(ElementType.FIELD)——字段、枚举的常量@Target(ElementType.METHOD)——方法@Target(ElementType.PARAMETER)——方法参数@Target(ElementType.CONSTRUCTOR)——构造函数@Target(Eleme......
  • 常用的操作数组的方法
    一:操作方法:1.增.push()从后加.unshift()从前加.splice()从指定位置加 第一个参数:开始的位置,第二个参数:要删除的元素数量,后面的参数:插入的元素(若想插入多个,用逗号分开)letcolors=["red","green","blue"];letremoved=colors.splice(......
  • Linux工作原理2常用基本命令和目录层次结构
    本章是对本书中你将遇到的Unix命令和工具的指南。为什么是Unix命令?这不是一本关于Linux如何工作的书吗?当然是的,但Linux在本质上是一种Unix风格。在本章中,你会看到Unix这个词,而不是Linux,因为你可以把你学到的东西直接带到BSD和其他Unix风味的系统中去。我试图避免涉及太多Linux特......
  • Appium自动化(14):Appium常用操作之app操作
    APP操作方法:appium支持对手机上的app进行管理和操作,有如下方法:1、install_app(self,app_path,**options):安装app,app_path为安装包路径2、remove_app(self,app_id,**options):卸载app,app_id为app包名3、is_app_installed(self,bundle_id):检查app是否有安装bundle_id为app包名......
  • Appium自动化(15):Appium常用操作之混合应用webview页面操作--待补充!
    上下文操作:在appium中,对于混合应用,需要进行WebView页面和原生应用的切换 常用的方法如下:1、context(self)/current_context(self):返回当前会话的当前上下文,context可以理解为可进入的窗口。对于原生应用,可用的context和默认context均为“NATIVE_APP”,对于webvi......
  • git常用命令介绍
    gitmergeGitmerge是一种用于将一个分支的更改合并到另一个分支的操作。示例:A---B---C[master]\D---E---F[feature-branch]在这个示例中,master分支上有三个提交(标记为A、B和C),而feature-branch分支上有三......