在没有附带信息的情况下,以二进制形式进行描述是最容易的。在这种情况下,基本上是二项输入$ x =(r,c)$,\ [
\ log \ frac {p(y = 1 | x,w)} {p(y = 0 | x,w)} = \ alpha ^ T_r \ beta_c,
\]其中$ \ alpha $是与$ r $相关的$ k $潜在因子的向量,而$ \ beta $是与$ c $相关的$ k $潜在因子的向量。 $ r $和$ c $是此处的标识符,例如,用户ID和电影ID,用户ID和广告ID等。
我现在几乎可以在vowpal wabbit中做到这一点。假设模型中有两个潜在维($ k = 2 $)。训练数据$(y,(r,c))$将通过
y | alpha潜在_0_r潜在_1_r | beta潜在_0_c潜在_1_c例如对于训练基准$(1,(16,432))$,
1 | alpha潜在_0_16潜在_1_16 | beta潜在_0_432潜在_1_432然后选择--quadratic ab和--loss logistic。不幸的是,这没有做正确的事。首先,它创建了一些额外的功能(它是外部产品,而不是内部产品)。其次,这些额外的功能具有自己独立的权重,而在模型中,权重是各个权重的乘积。可能的解决方案是在vowpal中添加--dotproduct选项,该选项将采用两个名称空间并模拟与其内部乘积相对应的功能(在这种情况下,输入中功能的顺序很重要)。
如果到目前为止,您可能会看到如何将与dyad相关联的附加功能$ s(x)$添加到另一个命名空间中,以通过辅助信息来扩展模型。
y | alpha潜在_0_r潜在_1_r | beta潜在_0_c潜在_1_c |侧面特征...同样,很容易合并与每个组件相关的辅助信息,这些辅助信息不会放置在alpha和beta命名空间中,以免被--dotproduct占用(实际上,对于与组件相关的典型辅助信息,--quadratic组件方面的信息将是合理的)。请注意,作者报告的更好的结果是,先学习潜在模型,固定潜在权重,然后学习与辅助信息相关的权重。
对于多值数据,作者使用多项式logit,但我怀疑 评分过滤树 具备物流基础的学习者可以完成工作。
最后,作者建议进行正则化对于取得良好的结果是必要的。可能我可以使用``仅一次通过训练数据''正则化样式来摆脱困境。
没意见:
发表评论