概述Item2Vec 是 Word2Vec 在推荐系统领域的迁移应用。它将用户的行为序列如购买历史、点击记录、播放列表类比为“句子”将序列中的每个商品item类比为“单词”从而学习出商品的稠密向量表示嵌入。其核心假设是经常出现在同一用户行为序列中的商品在向量空间中距离更近。这捕捉了商品的“共现”关系可用于相似商品推荐、关联规则挖掘等。Item2Vec 本质上沿用了 Word2Vec 的两种架构CBOW用上下文商品预测目标商品。Skip-gram用目标商品预测上下文商品更常用。详细示例从用户行为到商品向量构建“语料”假设我们有以下用户的商品序列按时间顺序用户 A[手机, 充电器, 手机壳]用户 B[手机, 蓝牙耳机, 充电器]用户 C[平板, 保护套, 蓝牙耳机]我们将每个序列视为一个“句子”商品视为单词。商品词汇表去重后{手机, 充电器, 手机壳, 蓝牙耳机, 平板, 保护套}共 6 个商品每个赋予一个索引例如 0~5。训练样本生成Skip-gram使用滑动窗口例如窗口大小 2对每个中心商品其上下文为窗口内的其他商品。以用户 A 的序列[手机, 充电器, 手机壳]为例中心词 手机索引 0上下文充电器索引 1手机壳索引 2生成训练样本(手机, 充电器)和(手机, 手机壳)中心词 充电器索引 1上下文手机索引 0手机壳索引 2样本(充电器, 手机)(充电器, 手机壳)中心词 手机壳索引 2上下文手机索引 0充电器索引 1样本(手机壳, 手机)(手机壳, 充电器)对所有用户的序列重复获得大量中心商品上下文商品对。模型结构与训练参数设定商品总数 V6嵌入维度 N3通常几十到几百这里用小数字便于说明输入权重矩阵 W形状 V×N每一行是一个商品的初始词向量。输出权重矩阵 W′形状 N×V用于计算输出概率。初始权重随机赋值如均匀分布或高斯分布。完整推导与计算过程前向传播以样本 (手机, 充电器) 为例词汇表{手机, 充电器, 手机壳, 蓝牙耳机, 平板, 保护套}索引分别为 0~5。嵌入维度 N3。输入权重矩阵 W6×3输出权重矩阵 W’3×6随机初始化W [ [0.2, 0.5, 0.1], # 手机 (索引0) [0.3, 0.6, 0.8], # 充电器 (索引1) [0.9, 0.4, 0.2], # 手机壳 (索引2) [0.7, 0.1, 0.3], # 蓝牙耳机 (索引3) [0.5, 0.2, 0.4], # 平板 (索引4) [0.1, 0.9, 0.6] # 保护套 (索引5) ] W [ [0.1, 0.2, 0.3, 0.4, 0.5, 0.6], [0.7, 0.8, 0.9, 1.0, 1.1, 1.2], [0.3, 0.4, 0.5, 0.6, 0.7, 0.8] ]xStep 1前向传播输入中心词“手机”的 one-hot 向量x[1,0,0,0,0,0]Tx [1, 0, 0, 0, 0, 0]^Tx[1,0,0,0,0,0]T隐藏层hWTxWh W^T x WhWTxW的第 0 行 [0.2,0.5,0.1]。这就是“手机”的当前嵌入输出得分:uh⋅W′u h \cdot Wuh⋅W′(1 x 6 向量)u0 0.2×0.10.5×0.70.1×0.30.020.350.030.40 u1 0.2×0.20.5×0.80.1×0.40.040.400.040.48 u2 0.2×0.30.5×0.90.1×0.50.060.450.050.56 u3 0.2×0.40.5×1.00.1×0.60.080.500.060.64 u4 0.2×0.50.5×1.10.1×0.70.100.550.070.72 u5 0.2×0.60.5×1.20.1×0.80.120.600.080.80So u [0.40,0.48,0.56,0.64,0.72,0.80]Softmax 概率:先计算指数e0.401.4918,e0.481.6161,e0.561.7507,e0.641.8965,e0.722.0544,e0.802.2255 e^{0.40} 1.4918, e^{0.48} 1.6161, e^{0.56} 1.7507, e^{0.64} 1.8965, e^{0.72} 2.0544, e^{0.80} 2.2255e0.401.4918,e0.481.6161,e0.561.7507,e0.641.8965,e0.722.0544,e0.802.2255总和 S 1.49181.61611.75071.89652.05442.225511.0350概率:y^01.491811.03500.1352,y^11.616111.03500.1464,y^20.1587,y^30.1719,y^40.1862,y^50.2017 \hat{y}_0 \frac{1.4918}{11.0350} 0.1352, \quad \hat{y}_1 \frac{1.6161}{11.0350} 0.1464, \quad \hat{y}_2 0.1587 , \hat{y}_3 0.1719, \quad \hat{y}_4 0.1862, \quad \hat{y}_5 0.2017y^011.03501.49180.1352,y^111.03501.61610.1464,y^20.1587,y^30.1719,y^40.1862,y^50.2017其中y^1\hat{y}_1y^1就是“充电器”的概率。损失L−log(y^1)−log(0.1464)≈1.921L -\log(\hat{y}_{1}) -\log(0.1464) \approx 1.921L−log(y^1)−log(0.1464)≈1.921Step 2反向传播梯度下降更新权重反向传播的目标是计算损失对 W 和 W′ 的梯度并用它们更新权重。这里给出梯度公式简化版不考虑负采样对输出权重 W′误差向量δy^−yonehot\delta \hat{y} - y_{onehot}δy^−yonehot 其中yonehoty_{onehot}yonehot是真实上下文词的 one-hot 向量索引 1 为 1。所以δ[0.1352,0.1464−1,0.1587,0.1719,0.1862,0.2017][0.1352,−0.8536,0.1587,0.1719,0.1862,0.2017]\delta [0.1352, 0.1464 - 1, 0.1587, 0.1719, 0.1862, 0.2017] [0.1352, -0.8536, 0.1587, 0.1719, 0.1862, 0.2017]δ[0.1352,0.1464−1,0.1587,0.1719,0.1862,0.2017][0.1352,−0.8536,0.1587,0.1719,0.1862,0.2017]对 W′ 的每一列 j梯度为∂L∂Wk,j′δj⋅hk\frac{\partial L}{\partial W_{k,j}} \delta_j \cdot h_k∂Wk,j′∂Lδj⋅hk(k0…N-1)。所以更新规则: $W’{k,j} \leftarrow W’{k,j} - \eta \cdot \delta_j \cdot h_{k}, \eta$ 为学习率对输入权重W:只更新与中心词“手机”对应的行索引 0。梯度为∂L∂W0,k∑j0V−1δj⋅Wk,j′\frac{\partial L}{\partial W_{0,k}} \sum_{j0}^{V-1} \delta_j \cdot W_{k,j}∂W0,k∂L∑j0V−1δj⋅Wk,j′这里的 W’ 为转置前。然后更新 $W_{0,k} \leftarrow W_{0,k} - \eta \cdot \sum_j \delta_j \cdot W’_{k,j}$经过一次更新“手机”的嵌入向量和输出权重的相关列会调整使得下一次前向传播时“充电器”的概率增大。最终商品向量经过大量训练所有样本多轮迭代权重收敛。最终取输入权重矩阵 W 的每一行作为商品的向量表示例如假设训练完毕后的向量手机 → [0.8, 0.2, 0.6] 充电器 → [0.7, 0.3, 0.5] 手机壳 → [0.6, 0.1, 0.9]如何用于推荐计算商品相似度余弦相似度。手机 vs 充电器点积 0.8 * 0.7 0.2 * 0.3 0.6 * 0.5 0.56 0.06 0.30 0.92较接近手机 vs 蓝牙耳机点积 0.8 * 0.2 0.2 * 0.9 0.6 * 0.1 0.16 0.18 0.06 0.40稍远因此当用户查看“手机”时可以推荐“充电器”、“手机壳”等相似商品。或用于关联规则在用户连续购买场景中根据向量距离推荐可能搭配的商品。与 Word2Vec 的关系及特点维度Word2VecItem2Vec输入数据自然语言句子单词序列用户行为序列商品序列目标学习单词的语义向量学习商品的共现向量应用自然语言处理推荐系统、用户画像训练方式相同Skip-gram / CBOW相同关键区别Word2Vec 利用的是词语的语法语义而 Item2Vec 利用的是用户行为模式。因此 Item2Vec 捕捉的是商品的“搭配习惯”而非内容特征。进阶优化实际工程中常采用负采样Negative Sampling避免 softmax 计算量过大每次只更新少量负样本的权重。带权采样根据商品流行度进行负采样避免高频商品主导。序列顺序有时忽略顺序只考虑共现有时保留顺序如时间加权。总结Item2Vec 是一种基于用户行为序列的商品嵌入学习方法通过将 Word2Vec 迁移到推荐领域为每个商品学习一个低维向量从而支持相似性计算、聚类和推荐。它简单高效是许多现代推荐系统的基础组件之一。