2020,恭喜发财

2019上半年,我在关系很好的同学群里预测资本市场年底有可能会打破3500点,果然不出所料地被打脸了,而且2019年大盘整年的涨幅大部分在我预测3500点之前就已经完成了,不过幸好我在2700点左右建议朋友们加仓,3000点以后我虽然看多但还是建议保守操作。不过我还是想辩解两句,当时我判断的主要依据是我预判中美贸易战即将形成阶段性协议,而2018年资本市场探底很大的原因是中美贸易战所引发的连锁反应,但事实证明我对国际局势的看法还是过于阳春。

中美贸易摩擦现在看来是国际新老格局变动所带来的利益冲突的外在表现,中国的崛起已经是不争的事实,中国在各个领域也在不断渗透美国利益,我并非说这是一个零和游戏,但无论是主动的还是被动的,中国在国际上的影响力越来越大,无疑是对二战以来过去七十多年一超多极的国际格局的挑战,必然涉及到中美之间的摩擦或者更温和的讲——磨合。一年前我的看法还是过于简单,只是从Trump的民粹做事风格来简单的分析这场贸易战,这场“磨合”迟早要来,也注定是长期而艰辛的。

新旧十年之交,中美终于阶段性停火,资本市场毫无悬念的冲破了3000点,大家都在盘算着这是大盘第98次还是98次冲上3000点了,一些人雀跃打破关键点位,一些人赶紧解套,市场在3000点震荡。2020年我依然看多资本市场,主要有以下几个逻辑:

降息已经是确定性事件。中国的经济下行压力已经是非常大了。从微观层面的主观感受,身边的朋友很少有人说2019年过的很好的,企业的销售、现金流都不及预期;宏观层面上,虽然四季度的GDP数据还没公布,全年增速不会比6%高出太多,各项统计数据也不是很乐观。但是2019年由于猪肉带动的物价上涨,造成非常棘手的“滞涨”,大大掣肘了中央的货币政策,眼看着数据往下掉,又不能开仓赈粮。随着1月份猪肉价格和各项指标见顶回落,2020年的货币政策必然会更加宽松,市场普遍预期会有两次降准,各种逆周期调节政策也将会带来大量的资金入市,这无疑是对资本市场的巨大利好。除去自身逆周期调节的需求,放在更为宏观的视角,全球央行都是处在一个降息通道中,中国的利率相较于还是处于高位,2018年去杠杆之后也为现在的货币政策提供了空间。

中美贸易战暂告一段落。中美达成阶段性协议,后面至少会有一年左右的平稳期吧?时间我是这么估算的,协议文本的确定、翻译、签订这可能一个季度就过去了,刚签的协议至少要执行一段时间,前后算算一年时间也差不多。贸易战停火自然是利好,更多的是国家各个层面都对国际局势有了更深入的认识,也会对将来各种形式的中美摩擦有更为理性的预判,我想这个可能是一个影响更为深远的变化。

中国资本市场更加成熟。从90年代初设立资本市场,中国资本市场还是一个很年轻的孩子,我们亲眼目睹和听说了很多瞠目结舌的操作。随着国家法制的推进和资本市场的建设,尤其是资本市场的开放,资本市场越来越成熟,从2019年基金的销售就可以看出,机构投资者的份额越来越大,散户逐渐退居“三级”市场,这无疑是资本市场的巨大进步。如果说2019年是基金的元年,那么随后而来的2020年必定是资本市场的新纪元。散户的退出,可以说是资本市场多年来血亏进行的“投资者教育”的成果,暴涨暴跌没有人会在投机中始终获益,但受伤害最大的是资本市场。另外,由于中国的发审制度,中国资本市场无疑聚集着中国最为核心的优质资产,而且整体估值偏低,2019年外资净流入3500多亿再创新高,也印证了这一观点。另外,养老金等大资金也在逐步入场。资本市场越来越成熟、越来越开放、钱也越来越多,这是一个更长期的逻辑。

最后就要讲一个最长期也是最根本的逻辑,那就是我们国家的未来会不会更好。过去几十年,中国经历了高速发展,我们这几代人都习惯了明天会越来越好,也想当然的认为明天会越来越好,但是这并没有什么道理。明天凭什么会越来越好?尤其是在经历了最近这几年的经济下行,回想美国70年代开始长达20年的经济滞涨,很多人都在这一根本层面对国家、对自己的未来产生了怀疑。我,也不例外,看到了太多体制内的问题,也看到了太多商业里的蝇营狗苟。我对明天充满怀疑,但是对未来始终充满热烈的希望,没有什么道理,这或许是我的本性。

前两天在朋友圈看到文因互联的鲍总发的一条朋友圈,“二十多岁读《万历十五年》,觉得分析很深刻,深刻指出来‘体制问题’。三十多岁再读,觉得黄仁宇太过苛责,那个时代的世界上,哪里存在那种理想里的数目字管理。四十多岁,觉得它只是一个缺少实际管理经验的文人一厢情愿,他要是真的体会过那怕管过一个公司或者一个村庄,都不会那样想。”。正是作为企业家的角色,在我深恶痛绝批评社会问题的时候,更能理性地看待,也不至于失去希望。

回到标题,上面由短期到长期,由确定到不确定,我列举出来一是想分享一下我的观点,大家可以参考,二是希望到2020年底的时候,即使大盘跌了,有些逻辑还依然成立,也不至于错的太离谱。

那么2020年究竟怎么操作呢,以下不构成投资建议:ETF基金为主,大盘指数、银行证券、5G和科技板块根据自己的风险偏好配置,应该会有不错的收益。2020年5G大建设,半导体50等5G和科技板块收益应该会非常不错,但是科技股最大的风险就是——不是科技股 : )

祝大家2020年投资愉快!

觥筹交错的国企改革

昨天财经杂志发了一篇文章,缅怀国资委首任主任李荣融,并回顾了他力推的国企治理制度改革,但我认为文中过分强调了治理制度在国企改革中扮演的角色。国企尤其是央企,代理人问题在此类超大型企业中是普遍存在的,并非是“社会主义特色”,现代公司治理制度只能说是大大改善了这一问题,并没有彻底解决。国企的效率低于私营企业,这在全球的国有企业中也是普遍现象。

政企不分的主要问题在于国企承担了很多如国家安全、民生稳定等政策性负担,如果不能剥离这些政策性负担,国家也就必须对国企的这类亏损负责,加上信息不对称,国家要承担的亏损要远远更多。财政补贴,垄断保护,价格扭曲,金融畸形,这些都是国家为之付出的代价,这些领域往往也是寻租腐败的集中高发区和利益集团角逐的主战场。国企改革表面上看只是企业治理结构的转变,实际上是目前改革的核心区,也是利益交错的深水区。

明晰和剥离政策性负担,国家只对政策性负担买单,其余市场化运作,现代治理制度才有用武之地,财政资金效率,垄断保护都会有效解决。国企市场化程度提高,不再是拿着免死金牌的“铁憨憨”,金融改革中的核心问题,利率市场化改革也会迎刃而解,民营企业、中小企业的融资问题自然也会得到纾困。资金作为现阶段经济生产中最重要的要素,当其价格也就是利率实现市场化的时候,才能说我们的市场化改革真正取得了一些成果,我相信也一定会带来新一轮制度改革释放的红利。

虽然中美贸易战暂告一段落,但我对明年的经济形势仍然十分悲观。中美贸易摩擦是新旧国际秩序交替的一个外在表现,注定是一个长期而不确定的过程,我们是否能做好自己才是关键。但同时我又对国家的未来充满希望,因为正是改革中错综复杂的挑战,蕴育着明天生机盎然的机遇。

平民情怀

高铁途中看了呦呦鹿鸣关于北大附中空气质量的发声以及后续所引发的各界反应,看完之后总想说点什么。可我既不是教育专家,也没有为人父母,更像一个热衷于抹黑北大的南大人,但我确是对文中孩子们的反应感到震惊。我们到底需要什么样的教育?

我的高中母校的培养目标中说是“有平民情怀的人”。什么是平民情怀?我的一位老师是这么解释的,“莫春者,春服既成,冠者五六人,童子六七人,浴乎沂,风乎舞雩,咏而归。”,老师说,如果我们培养的每个人都是曾希而不是子路,那么世界将春暖花开。我想老师和我一样,都没有否认国家仍然需要商鞅一般的死士,用近乎冷酷的理性权衡取舍。但更多人,或者四舍五入下来,所有人,都是普通人吧。

前两天我看了周浩导演的《差馆》,是2009年广州火车站派出所的一个纪录片,没什么艺术加工,更像是一个旁观者随意的记录,一个派出所里的众生百态。09年的广州,火车站的派出所,这四个元素无疑让镜头里的每一个人都成为二十一世纪初中国底层奋斗者最典型的缩影,他们用力的活着,但仍旧摆脱不了生活的窘态。就像我喜欢贾樟柯的电影一样,我享受这种真实。我想将来我为人父母,无论她成绩如何,我一定要带她在我长大的小县城住上一段时间,带他去坐最廉价的火车来一次长途旅行,看看车上的人生百态。我当然也会带她去领略世界的美好,努力为她创造优渥的生活,但我希望她知道,北京上海并不是中国的全部,高铁的B面还有另外一个中国,两千八百多个县城和四万个乡镇才是沉默的大多数。生活不只有星巴克纪梵希,我希望我们在享受美好的同时保有一颗怜悯之心。

为什么我等的公交车总是迟到?

为什么我等的公交车总是迟到?这如果不是一种错觉,那我就像拥有了超能力一样,因为我的等待而产生了神秘的力量让公交车迟到。仿佛是量子力学在宏观世界的表现,因为我的观测而对公交车产生了扰动。如果不是衰神附体,那这股神秘的力量究竟是什么?本文将使用严格的数学证明来解释这一神秘的力量。

数学证明

要使用严格的数学证明,首先我们需要用数学语言来定义问题。

首先我们定义计数过程 \(N(t)\),表示直至 \(t\) 时刻为止(含)到达的公交车的数量;第 \(n\) 辆公交车到达的时刻记作 \(S_n\),第 \(n-1\) 辆公交车与第 \(n\) 辆公交车的到达间隔记作 \(X_n\);并且我们假设公交车到达的时间间隔 \(X_n\) 是相互独立的并且都服从相同的分布 \(F\),这样的假设也符合实际的生活经验。通过以上的定义,我们便得到了一个更新过程 \(\{N(t), t \geq 0\}\)。

下面我们证明 \( P\{X_{N(t)+1} \geq x\} \geq \bar{F}(x) \),包含 \(t\) 的区间长度大于 \(x\) 的概率比普通的区间大于 \(x\) 的概率更大,也即假设我们在 \(t\) 时刻到达公交车站开始等公交车,那么我们所处的这个区间,公交车的到达间隔相较于平常为更大的概率会更大。

$$\begin{align}
P\{X_{N(t)+1} \geq x\} &= \int_0^{\infty} P\{X_{N(t)+1} \geq x | S_{N(t)} = s \}dF_{S_{N(t)}}(s)\\
&= \int_0^{\infty} P\{X_{N(t)+1} \geq x | X_{N(t) + 1} > t – s \}dF_{S_{N(t)}}(s) \\
&= \int_0^{\infty} \frac{P\{X_{N(t)+1} \geq x, X_{N(t) + 1} > t – s \}}{P\{X_{N(t) + 1} > t – s \}}dF_{S_{N(t)}}(s) \\
&= \int_0^{\infty} \frac{1 – F(max\{x, t-s\})}{1 – F(t-s)}dF_{S_{N(t)}}(s) \\
&= \int_0^{\infty} min\{\frac{1 – F(x)}{1 – F(t-s)}, \frac{1 – F(t-s)}{1 – F(t-s)}\}dF_{S_{N(t)}}(s) \\
&= \int_0^{\infty} min\{\frac{1 – F(x)}{1 – F(t-s)}, 1\}dF_{S_{N(t)}}(s) \\
&\geq \int_0^{\infty} 1 – F(x)dF_{S_{N(t)}}(s) \\
&= \bar{F}(x)
\end{align}$$

如果更加具体的假设公交车的到达间隔服从均值为 \(\lambda\) 的指数分布,也即
$$F(x) = 1 – e^{-\lambda x}$$

那么我们可以得到:

$$\begin{align}
P\{X_{N(t)+1} \geq x\} &= \int_0^{\infty} \frac{e^{-\lambda x} }{e^{-\lambda(t-s)}}dF_{S_{N(t)}}(s) \\
&= \int_0^{t-x} dF_{S_{N(t)}}(s) + \int_{t-x}^t e^{-\lambda x} dm(s) \\
&= – e^{-\lambda t} + (1 + x/\lambda)e^{-\lambda x} \\
& = – e^{-\lambda t} > \bar{F}(x)
\end{align}$$

至此我们严格证明了我们等待公交车的时间更可能比一般公交车到达的间隔要长!这看起来似乎不可理喻,然而数学不会撒谎,这就是随机过程中的检验悖论(inspection paradox)

问题出在哪?

我们的等待区间倾向于更长,这似乎与我们初始的假设独立同分布相矛盾,那么问题究竟出在哪呢?下面我们用更加直观的方式去理解这个问题。

我们将公交车的到达想象为时间轴上的一系列点,我们到达公交车站的时刻就是随机的在这个时间轴上取一点,那么很显然,我们的到达时刻落在更长的区间里的概率更大。也就是说我们的到达实际上并没有等可能地落在所有区间中,而是更加倾向于较长的区间。那么我们等待的区间更长也就不足为奇了,因为这并非是一个无条件概率,本质是一个条件概率,即在我们“随机”选中某个区间进行等待的条件下,该区间长度的分布,而我们忽略的这个条件中的“随机”并没有真的随机,因为他实际上已经为我们筛选了更长的区间。

一个更加著名也更加易于理解的例子是“飞机问题”中的幸存者偏差。在二战期间,人们发现幸存的轰炸机中,机翼中弹的数量很多,而机身中弹的却很少。因此人们认为我们应该加固飞机的机翼。其实不然,就是因为机翼中弹多还能飞回来,所以机翼中弹并没有影响飞机返航;而机身中弹的少则说明了子弹打中机身对飞机的影响更大,导致飞机不能返航。

我更喜欢用另外一个更具哲学意味的例子去阐述这个问题。产生生命的条件是如此之苛刻和机缘巧合,人类这么精巧的生命产生是几乎不可能的,为什么又会有人类产生呢?那么正是因为产生了人类,才会有人去思考这样一个问题,那么这个概率也从不可能变成了必然。

经济学的困境

这就像量子力学的测不准原理一样,因为我们的观测而对被观测对象产生的影响,从而对观测结果产生了干扰。好在与这个不同是,我们可以在公交车站等一天甚至等一年的车,通过多次观测来保证采样的无偏性,大数定律会给你答案。

然而不幸的是,并非所有的实验都可以多次进行,尤其是在社会科学比如经济学的语境下。我们很多时候只能观测和解释,并不能设计和实施实验。经济学中很多理论都是基于对经济现象的观测,根据时间的先后关联和一系列的抽象和假设对现象进行解释。然而时间的先后关联并不能代表逻辑的因果关系,更何况我们的观测反过来又会影响其本身的概率分布。就像明代思想家王阳明的那朵花一样,“你未看此花时,此花与汝心同归于寂。你来看此花时,则此花颜色一时明白起来”。

虽然这样未免太过于唯心,周遭的世界并不会由于我们的意识而存在或消失或改变,然而我想没人可以证伪我们所感受到的一切只是心中的意识,我所唯一能确定的是此刻这个宇宙中有一个人正在思考这个问题,而当我不思考的时候,这个也变得不确定起来。这就是笛卡尔所言的“我思故我在”吧。


Reference:

Ross, S. M., Kelly, J. J., Sullivan, R. J., Perry, W. J., Mercer, D., Davis, R. M., … & Bristow, V. L. (1996). Stochastic processes (Vol. 2). New York: Wiley.

Mission Impossible:Rank类损失函数的直接优化

本文将对 Rank 类指标如 AUC-ROC,设计损失函数,从而实现直接优化。读到这我觉得就像当年学高数一样会有两类反应:这也要证?这也能证?如果你是第一种,那么文章的开头介绍了背景知识,看完你会变成第二种反应的。如果你是第二种,说明你对这个问题已经有了一些研究,那么可以直接从第三部分阅读。本文主要参考 Eban et al. (2016)

Background

对于分类问题,为了度量一个模型的性能,我们构造出了很多指标,比如准确率、查全率(recall,有些地方翻译为召回率,我觉得还是查全率更直观一些)、\(F_{\beta}\)、ROC曲线等等,根据应用场景的不同,我们使用不同指标进行衡量,比如疾病筛选的时候我们认为把病人诊断为健康人的代价要远远大于把健康人诊断为病人,我们会更加强调查全率,或者我们希望使用\(P@R\),在规定查全率下尽量提高准确率。同时为了比较不同的模型,标量我们可以直接进行数值比较,为了处理如ROC曲线之类的指标,我们又构造了如平衡点(Break-Even Point)、AUC(Area Under Curve)等指标。

当我们根据场景选定指标后,就会将指标转化为损失函数,通过对损失函数的优化来达到指标的最大化。比如我们希望对准确率进行优化,实际上我们希望最小化
$$\frac{1}{m}\sum_{i=1}^{m} \mathbb I (f(x_i) \neq y_i)$$
其中 \(m\) 是样本个数,\(x_i, y_i\) 分别是第 \(i\) 个样本和其真实标记,\(f\) 是我们的学习器。通常我们希望我们的损失函数是可微的,从而可以很方便的使用 BP 算法对整个学习器的参数进行梯度下降。所以这时候我们做一些近似,使用 Cross Entropy 等替代示性函数,这样我们就将实际应用场景的要求转化为对一个可微函数的梯度下降求最优解的数学问题。随着数据的增加,我们的训练集动辄几十万上百万数据,没有办法一次性计算出损失再进行下降,但是从上式可以看出,不同样本之间的损失计算并没有依赖关系, 所以我们使用 mini-batch 的方式,每次使用一部分数据进行梯度下降,我们通过局部最小,来期望达到累加的和最小,从而实现海量数据分批的梯度下降。将批大小设置在 GPU 的处理宽度内,通过GPU最擅长的矩阵运算,大大加快了模型的收敛速度。这也是机器学习最基本的套路。

当然,事情远没有那么简单。我们以 AUC-ROC 为例来看一下 AUC 类的指标。关于 AUC 的详细介绍可以参考 周志华. (2016). 网上也有很多资料,这个比较基础,我就不介绍了。我们假定任意两个样本的预测值都不相同,那么 ROC 之上的面积可以表示为
$$1 – AUC = l_{rank} = \frac{1}{m^+m^-}\sum_{x^+\in D^+} \sum_{x^-\in D^-}( \mathbb I (f(x^+) < f(x^-))) $$
其中,\(x^+, m^+, D^+\) 分别代表正样本、正样本个数和正样本集合。我们希望这个函数最小。 即考虑每一对正反例,若正例的预测值小于反例则记一个罚分。若一个正例在 ROC 曲线上对应的坐标点是 \((x,y)\),那么 \(x\) 恰是排序其之前的反例所占的比例。AUC 实际上是随机选取一个正例和一个反例,正例的预测值高于反例的概率。

那么问题来了,这个损失函数既不可微,而且跟所有样本的排序有关(所以我们叫 Rank 类指标),也就是讲他既不能使用BP算法进行梯度下降,也不能像准确率一样分成小批,因为每个样本的损失不是孤立的,而是需要全局的排序才能计算。这一类的指标我们称之为 Non-Decomposable Measure。那么如何进行优化呢?尤其是对海量数据进行优化呢?这似乎是一个 Mission Impossible。

现行的做法是什么呢?我称之为随缘优化。

业界普遍的做法是对准确率这一类 Decomposable 的指标进行优化,以期待准确率上表现较好的学习器在 AUC 这类指标上也表现较好。翻遍所有的框架,包括 Keras、Pytorch、TensorFlow 等等,都只提供了一个 AUC 的度量指标,也就是对学习好的模型进行评测一下,并没有提供直接对 AUC 优化的损失函数。实际上这种做法很随缘,我们假设训练集中有5个数据,三个正例两个反例,学习器1和学习器2对这个5个样本的打分分别为
$$S_1 = \{0.9, 0.8, 0.3, 0.7, 0.6\}\\ S_2 = \{0.8, 0.7. 0.6, 0.9, 0.3\}$$
以0.5为阈值,则学习器1的准确率为50%,学习器2为75%。但是很容易看出来,\(AUC_1 = \frac{2}{3}, AUC_2 = \frac{1}{2}\)

过去几十年,大家都是这么做的,并不直接对 AUC 类指标进行优化,默认准确率较高的分类器在AUC等指标上也表现较好,将精力集中在模型结构的创新上。当然也有一些工作,前期的工作主要集中在对函数的近似,也即示性函数近似成可微的函数,比如 Yan et al. (2003),但并没有解决数据之间的全局依赖,从而也就无法应对越来越多的大规模数据的divide and conquer,最近的一些工作如 Narasimhan, H., Kar, P., & Jain, P. (2015, June) 开始在一些特定模型,如广义线性模型上进行优化,下面我们介绍 Google 在最近发表的 Eban et al. (2016) 中的方法,通过分析损失函数的上下界,来对 AUC 构造出可微可分解的损失函数。

Preliminary

首先我们定义一个二分类学习器 \(f_b, f: X \to R, b \in R\),当\(f(x) \geq b\)时,样本被分类为正例。那么我们可以计算出真正例(tp, true-positive)和假正例(fp, false-positive)的个数 $$tp = \sum_{i \in Y^+} \mathbb I (f(x_i) \geq b)\\
fp = \sum_{i \in Y^-} \mathbb I (f(x_i) \geq b) $$
如果我们使用0-1损失函数,那么上式即
$$\begin{align} tp &= \sum_{i \in Y^+} 1 – l_{01}(f_b, x_i, y_i)\\
fp &= \sum_{i \in Y^-} l_{01}(f_b, x_i, y_i) \end{align}$$
如果使用hinge loss:\(l_h(f_b, x_i, y_i)\),那么很明显的\(l_h \geq l_{01}\)。所以我们定义 \(tp\) 的下界 \(tp_l\) 和 \(fp\) 的上界 \(fp^u\):
$$ \begin{align} tp_l &= \sum_{i \in Y^+} 1 – l_h(f_b, x_i, y_i) \leq tp\\
fp^u &= \sum_{i \in Y^-} l_h(f_b, x_i, y_i) \geq fp \end{align} $$
使用 log loss、smooth hinge loss 等其他的函数去构造 0-1 loss 的上界原理相同,都将 \(tp_l, fp^u\) 化为了凸函数,后面我们将利用他们的凸性,将AUC等指标转化为凸优化问题。

Maximize R@P

下面我们先对 \(R@P\) 进行优化,即在保证准确率的情况下最大化查全率。即:
$$R@P_{\alpha} = \max R(f) \quad s.t. \quad P(f) \geq \alpha$$
同时,我们看到
$$\begin{align} P &= \frac{tp}{tp+fp} \\
R &= \frac{tp}{tp + fn} = \frac{tp}{|Y^+|}
\end{align}$$
所以原优化问题变为:
$$\max \frac{1}{|Y^+|} tp \quad s.t. \quad tp \geq \alpha(tp + fp)$$
使用上面我们得到的上界和下界对优化问题进行缩放,我们得到缩放后的问题:
$$\overline{R@P_{\alpha}} = \max \frac{1}{|Y^+|}tp_l \quad s.t. \quad (1 – \alpha)tp_l \geq \alpha fp^u$$
不难看出,我们可以通过对 \(\overline{R@P_{\alpha}} \) 优化,来实现原问题的优化。

我们定义在所有正例上的loss:
$$\mathcal{L}^+ = \sum_{i \in Y^+} l_h(f, x_i, y_i)$$
同理定义\(\cal L^-\),并将 \(tp_l, fp^u\) 显式代入,我们得到:
$$ \overline{R@P_{\alpha}} = \max 1 – \frac{\mathcal{L}^+}{|Y^+|} \\ s.t. \quad (1 – \alpha)(|Y^+| – \mathcal{L}^+) \geq \alpha \mathcal{L}^- $$
忽略一些常数项,变形后得到:
$$\begin{align}&\min \mathcal{L}^+\\
&s.t. \alpha \mathcal{L}^- + (1 – \alpha)(\mathcal{L}^+ – |Y^+|)\end{align}$$
使用推广的拉格朗日乘数法,我们得到:
$$\min_{f} \max_{\lambda \geq 0} \mathcal{L}^+ + \lambda[ \alpha \mathcal{L}^- + (1 – \alpha)(\mathcal{L}^+ – |Y^+|) ]$$
整理后有:
$$ \min_{f} \max_{\lambda \geq 0} [1 + \lambda(1 – \alpha)]\mathcal{L}^+ + \lambda \alpha \mathcal{L}^- – \lambda(1 – \alpha)|Y^+|$$
这时候我们就可以分别对 \(f, \lambda\) 进行梯度下降和“梯度上升”进行优化。而当 \(\cal L^+, L^-\) 为凸函数时,Nedić, A., & Ozdaglar, A. (2009) 证明了这个过程会收敛到一个固定点。上式也可以看做分别对正例和反例添加了\( [1 + \lambda(1 – \alpha)]\),\(\lambda \alpha \) 两个权重,不同的是 \(\lambda\) 在一直进行梯度上升。

Here We Go

有了上面的基础,下面我们分析AUCPR。AUCPR实际上就是在 \(\alpha\) 上对\(R@P_{\alpha}\) 进行积分,即:
$$AUCPR = \max_f \int R@P_{\alpha} d\alpha$$
自然而然的我们想到使用分段求和进行近似,那么我们有:
$$ \min_{f,b_1,\dots, b_k} \max_{\lambda_1,\dots, \lambda_k \geq 0}\sum_{t=1}^k \Delta_t [1 + \lambda_t(1 – \alpha_t)]\mathcal{L}^+(f, b_t) + \lambda_t \alpha_t \mathcal{L}^-(f, b_t) – \lambda_t(1 – \alpha_t)|Y^+|$$
上式同样可以使用 (min-batch) SGD 进行优化,从而我们完成了Mission Impossible。将被积函数替换成true positive rate at fixed false positive rate,那么就可以实现文章前面我们所讲到的AUCROC。

Performance

作者对这个算法的性能进行了测试,并对比了传统的对准确率进行优化的loss函数,测试结果就特别好,然后收敛很快,这里我贴下图,就不详细解释了,可以阅读原文。

What’s More

之所以不对结果再详细解释,还有一个原因就是我在kaggle的一个任务上使用上述算法,性能非但没有提升,而是有显著下降。所以文章虽然提出了一个很好的算法,但是在性能的测试上是否有 data snooping?算法的稳定性或者适用条件(比如准确率已经高达95%以上是否还能通过这种优化达到一个提升)我认为是后续的一个研究方向。

Pytext Tensorflow Research 中实现了文中的算法。源码的注释非常完善,我这里就不做解读了,可以直接点开链接阅读。值得注意的是,TensorFlow Research 中对AUCROC的实现并非是按照原文的思路进行的,而是将AUCROC视为我们前面所讲的正确排序的概率,在每个 batch 中使得这个概率最大,以期达到全局最优。

另外,Sanyal et al. (2018) 是非常不错的延伸阅读材料。利用对偶理论提出了新的算法。

Some Thoughts

最后插些题外话,上个月参加了在南京举办的全球人工智能大会,我特别去听了下人工智能金融科技的分论坛,包括平安集团的技术负责人等很多业界大佬都参与了分享,目前人工智能在金融领域的发展更多的是应用场景的拓展,对人工的替代,对效率的提升,比如智能客服、保险欺诈预警等等。当然这些都是很棒的应用,但我觉得多少是令量化交易者有些失望,我们并没有看到人工智能选股、人工智能交易,诸如此类,是大家对此都秘而不宣吗?

在我看来,机器学习只是用计算机模型的形式降低了统计科学的应用门槛,使其更加便利地应用于各个行业,但是在数学或者所在的行业没有突破的前提下,不能指望机器学习成为解决所有问题的银弹。尤其对于量化的研究人员要更加警惕,看着机器学习在NLP、CV领域不断大放异彩,难免会产生错觉,就像和有钱人一起相处久了,总觉得自己也是有钱人了。人本身在语言处理和图像识别上就是专家,或者说人类证明了这些东西是有模式可循,机器朝着 Human-Baseline 去努力,而对量化交易而言,我们甚至不知道Human-Baseline在哪,我想这就是为什么很多人对于机器学习直接应用于量化交易而感到迷茫的原因吧。我也推荐一下之前很火的一篇文章,张钹院士关于人工智能的一个访谈

令人矛盾的是,对比宏观的时间跨度,在高频尺度下,数据的模式往往更加清晰,相对于使用高深的数学硬刚,我们或许可以通过机器学习训练出更加准确的模型来预测未来的方向,但这些优势又可能被笨重的模型带来的延时所拖累。如果能将模型的黑盒打开,精简出模型的精髓,那么一定会为高频交易交易翻开新的篇章,遗憾的是,这也是机器学习所面临的最大的瓶颈,倘若能打开黑盒,高频交易、机器学习乃至整个人类的科学认知都将进入一个完全不同的维度,这可能才是真的 Mission Impossible。


Reference:

Eban, E. E., Schain, M., Mackey, A., Gordon, A., Saurous, R. A., & Elidan, G. (2016). Scalable learning of non-decomposable objectives. arXiv preprint arXiv:1608.04802.
Narasimhan, H., Kar, P., & Jain, P. (2015, June). Optimizing non-decomposable performance measures: A tale of two classes. In International Conference on Machine Learning (pp. 199-208).
Nedić, A., & Ozdaglar, A. (2009). Subgradient methods for saddle-point problems. Journal of optimization theory and applications142(1), 205-228.
Sanyal, A., Kumar, P., Kar, P., Chawla, S., & Sebastiani, F. (2018). Optimizing non-decomposable measures with deep networks. Machine Learning107(8-10), 1597-1620.
Yan, L., Dodier, R. H., Mozer, M., & Wolniewicz, R. H. (2003). Optimizing classifier performance via an approximation to the Wilcoxon-Mann-Whitney statistic. In Proceedings of the 20th International Conference on Machine Learning (ICML-03) (pp. 848-855).
周志华. (2016). 机器学习. 清华大学出版社.