wide&deep模型的认知(未完结)

wide&deep模型:深度加宽度的模型范式,本身并不是一个具体的模型,wide和deep部分可以用任意结构框架,wide的baseline是LR模型,deep的baseline是MLP模型(MLP指多层感知器,是一种签祥结构的人工沉静网络,映射一组输入向量到一组输出向量)
面试时会问这种不起眼的问题:
1、wide&deep模型是谁提出来的?那一年提出来的?你在哪知道这个模型的?
回答:wide&deep是由谷歌16年6月左右提出来的,
2、wide&deep中感觉wide时多余的,可以去掉吗?
回答:先带着这个问题往下面继续看吧!!!!!
wide&deep中谷歌提出两个概念:记忆性和泛化性
举例:人们的大脑很复杂,但是大脑可以记忆每天发生的事情(燕子会风,老鹰会风)然后泛化这些知识到之前没有看到过的东西上(得出结论:有翅膀的动物多能飞)
但是,泛化的规则有时候不是特别的准,有时候会出错(有翅膀的动物都能飞吗)
这时候由于泛化的出错,最终泛化的结果不准,但是记忆可以修改泛化的规则,
把(企鹅有翅膀但是不会飞,称为特例),两者结合保证最后的输出结果近似的正确。
听完这段文字,应该就懂为什么不能去掉wide端了吧。
wide—记忆性:wide部分常处于学习样本的高频部分,
优点是模型的记忆性好,对于样本中出现过的高频低阶特征能够用少量参数学习,
缺点:模型的泛化能力差,
例如:对于没有见过的ID类特征,模型学习能力较差。
deep—泛化性:deep部分常处于学习样本的长尾部分(长尾部分–名词解析:俗话讲,每次赚的很少,但是我每天可干的次数很多)
在这里插入图片描述
优点是泛化能力强,对于少量出现过的样本甚至没有出现过的样本都能做出预测(非零embedding向量),容易带来惊喜,缺点是模型对于低阶特征的学习需要较多参数才能等同wide部分效果,而且泛化能力强,某种程度上也可能导致过拟合出现,尤其是对于冷启动的一些item,也有可能给用户带来惊吓。

在这里插入图片描述
俗话说:wide&deep模型就跟千里眼顺风耳成为一个人的技能。
wide模型使用FTRL加L1正则化来优化,
deep模型使用AdaGrad来优化

### 得物推荐算法面试经验 在准备得物推荐算法相关的面试时,可以从以下几个方面入手: #### 一、理论基础 1. **概率论与统计学** 推荐系统的构建离不开概率论和统计学的支持。例如,在协同过滤中,皮尔逊相关系数用于衡量用户之间的相似性;在隐语义模型(LSI/LDA)中,贝叶斯定理被广泛应用于主题建模。因此,理解条件概率、联合概率、边缘概率以及常见分布(如正态分布、泊松分布等)是非常重要的[^2]。 2. **线性代数** 线性代数是许多机器学习算法的核心工具之一。对于推荐系统而言,矩阵分解技术(如奇异值分解 SVD 和非负矩阵分解 NMF)能够有效降低维度并提取潜在特征。此外,向量空间的概念也贯穿于内容型推荐之中。 3. **优化方法** 大多数监督学习任务都需要解决目标函数最优化问题。梯度下降法及其变种形式(随机梯度下降 SGD、Adam 等)是最常用的手段之一。另外还需注意约束条件下如何寻找全局最优解或者局部极值点等问题[^1]。 #### 二、具体技能要求 1. **编程能力** Python 是目前主流的数据科学领域首选语言,其丰富的库支持使得开发变得简单快捷。Pandas 提供了强大的数据分析功能;NumPy 则专注于数值计算;Scikit-Learn 实现了许多经典 ML 方法;而 TensorFlow/Keras 或 PyTorch 更适合深度神经网络框架下的实验设计。 2. **推荐系统架构认知** - 协同过滤:分为基于用户的 CF(User-Based Collaborative Filtering) 及物品间关系建立起来的 ItemCF(Item-to-Item Collaborative Filtering),两者各有千秋但也存在局限之处。 - 基于内容(Content-based Recommendation):利用商品属性描述来推测可能感兴趣的对象列表给特定个体看. - 深度学习驱动的新一代解决方案比如 Wide&Deep Model, DeepFM(因子化机), DIN(Dynamic Interest Network Architecture)[^1]. #### 三、实际项目经历展示 除了扎实的技术功底外,拥有真实世界中的实践经验同样重要。可以通过参与 Kaggle 比赛积累宝贵的经验教训,同时也可以尝试自己动手搭建小型版本电商网站模拟整个购物流程从而验证不同策略效果差异所在[^3]。 ```python import lightgbm as lgb from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 加载数据集 X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2) # 定义参数 params = { 'objective': 'multiclass', 'num_class': 3, 'metric': 'multi_logloss' } train_data = lgb.Dataset(X_train, label=y_train) val_data = lgb.Dataset(X_val, label=y_val) bst = lgb.train(params, train_data, valid_sets=[val_data]) y_pred_prob = bst.predict(X_val) y_pred = [list(x).index(max(x)) for x in y_pred_prob] print(f'Accuracy: {accuracy_score(y_val, y_pred)}') ``` 上述代码片段展示了使用 LightGBM 对多类别分类问题进行训练的过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值