2014年3月9日星期日

快速失败

我在圣诞节休息期间研究了一些与矩阵分解相关的想法。我想知道的两件事是:第一,辍学对于判别低阶二次方是否是一个很好的正则化器;其次,如何做类似 GeV表示学习 用于区分性低阶二次方。对于后者,我有一个确定可以工作的想法,但我无法使其工作。俗话说:“你的宝宝不像你想象的那样美丽”。尽管有我们先前的信念,但大多数想法都不是好主意,因此,尽快消除想法很重要。

新兴企业已经普及了 快速失败,因为大多数商业想法也不是好主意。的想法 最低可行产品 已成为创业社区的中心教条。类似地,在测试机器学习思想时,最好从“最小可行算法”。此类算法使用尽可能多的现有语言和包(例如,Matlab,NumPy)以尽可能高级的语言编写(例如, CVX),并且不采取任何计算捷径来提高效率。

我开始在Matlab中研究用于矩阵分解的辍学正则化,当我看到它正在起作用时 电影镜头,然后我花了一些时间来实现以减少大众使用量。我的事实 知道了 它应该可以使我克服实施时引入的多个缺陷。短话甚至更短,结果在主分支中,您可以 查看演示.

我尝试的下一个想法是将学习低阶二次特征摆在一个交替的线性分数优化问题上。交替最小二乘的类比是如此强大,以至于从理论上讲,我确信它是赢家。对于二进制二进位示例上的多类预测任务(例如,没有附带信息的电影镜头),请执行以下操作:$ S = \ {\ {(l,r),y \} | l \ in \ {0,1 \} ^ m,r \ in \ {0,1 \} ^ n,y \ in \ {0,1,\ ldots,k \} \} $,一个预测变量潜在的MF风格功能看起来像\ [
f((l,r); w,p,q)= w ^ \ top(l,r)+(l ^ \ top p)(r ^ \ top q),
\]为了简单起见,忽略了常量功能。这里$ p \ in \ mathbb {R} _ + ^ m $和$ q \ in \ mathbb {R} _ + ^ n $是单个潜在特征。在没有附带信息的电影镜头上,$ l $和$ r $分别是用户ID和电影ID的指示变量,因此$ p $和$ q $由这些标识符索引,并分别生成一个标量,并将其乘积添加到预测变量中。

想法是选择潜在特征在$ i $类上高度活跃,而在另一个$ j $类上高度活跃,\ [
\ max_ {p \ in \ mathbb {R} _ + ^ m,q \ in \ mathbb {R} _ + ^ n} \ frac {p ^ \ top \ mathbb {E} [l r ^ \ top | y = i] q} {\ alpha + p ^ \ top \ mathbb {E} [l r ^ \ top | y = j] q}。
\]受$ p \ preceq 1 $和$ q \ preceq 1 $约束(否则它可以分开)。 $ \ alpha>0 $是一个正则化分母的超参数。当然,在实践中,期望值将转换为训练集的平均值。

对于固定的$ p $,这是$ q $的线性分数程序,反之亦然,因此从随机点开始,我能够快速切换到视觉上看起来不错的功能(在高收视率的用户电影对上产生高产品能量,低收视率的用户电影对产品能量较低)。但是,与没有交互作用的线性模型相比,这些功能对测试集的预测提升几乎不存在。然后,我尝试了增强型变体,其中首先拟合没有交互作用的线性模型,然后尝试区分正残差示例和负残差示例。这更有趣:除少数数据外,这些功能最终几乎都为零,这表明尽管原始功能在视觉上看起来不错,但它们大多为线性模型提供了冗余信息。

使用Matlab和CVX,我能够在短短几天之内解决这些负面结果(这有助于在假日期间不召开会议)。我可能会搞砸了,但实际上这个主意是个好主意吗?是的,但是在如此高的水平上进行工作消除了对优化器的担忧,这使它更有可能实际上是错误的策略。无论如何,我都有很多想法,我需要花时间在那些最有可能产生有趣结果的想法上。尽管不是确定的,但是这些快速的实验表明我应该将时间花在其他地方。

认为是 贝叶斯搜索理论 在思想空间上。