模型设定
让我们考虑这样一个商业情境:一家垄断企业向消费者提供某种具有网络效应的商品,消费者之间构成特定的社交网络邻接矩阵表示),且消费者对该商品的消费量受到其在社交网络中直接相连的其他消费者消费量的影响。具体来说,消费者的效用为
其中是消费者的消费量,和分别是(对econometrician来说)可观察和不可观察的要素,表示网络效应的程度,表示消费者和是否相连。如果消费者面对的价格是,那么其应当选择的消费量满足
将所有消费者的上述等式堆叠起来,即为于是最终的消费量(向量)可以写成上式成立的条件之一是矩阵可逆,根据文献,其充分条件为其中是邻接矩阵最大的特征值,而根据邻接矩阵的性质可知因此我们假定总有
问题描述
垄断企业想要解决的问题是,如何制定定价策略,能够使得自己的利润最大化(假设成本为0,则利润最大化等价于收入最大化)。我们允许垄断企业进行完全歧视性定价(discriminatory pricing),即对于每个消费者制定不同的价格,如果不考虑消费量必然为正的限制,则文献指出垄断企业的最优定价应当为但是,垄断企业无法直接观察到。进一步地,垄断企业通常也不知道网络效应的大小,甚至由于种种原因,垄断企业无法正确地观察到社交网络的真实状况,而只能观察到其中的一部分,记为。垄断企业所掌握的数据只有一次实验数据:当垄断企业采取统一定价(uniform pricing) ,即对所有消费者收取同样的价格时,它观察到消费者根据真实的信息选择的消费量。
如果垄断企业知道和,那么就能根据实验数据确定地反推出:
一个自然的想法是,如果垄断企业能够根据已有信息准确地估计和,那么也就能准确地估计和相应的最优定价。
现有文献对于上述问题的帮助较为有限:
在计量经济学方面,文献更关心如何正确地估计,而通常默认观察到的网络就是真实的网络,即使显然该网络是有缺失的,比如Add Health中的朋友数据:在调查时,该项默认只要求被调查者提供至多5个朋友的姓名。
而对真实网络进行估计或调整的文献,则往往依赖于对同一个网络中的行为的多次观察,也即通常需要面板数据。在现实中,多次试验可能受限于时间或资金的要求而无法做到,或者计量经济学家获得的数据本身就只是截面数据。而如果基于单次实验或截面数据进行估计,则面临着只有个个体却要估计个参数的不定方程问题。
计算机科学家则对网络估计问题有很多研究,这类问题被称为“link prediction”,但是美中不足的是许多相关研究同样依赖于多次重复观察,而且通常也不利用额外信息(比如我们这边的实验结果)。
另外,站在垄断公司的角度,其实公司并不在意对参数和进行正确估计;反之,如果参数估计并不准确,但是仍然能够准确估计,也就是说定价策略是正确的,进而能够最大化利润,那么对企业来说这样的估计就是足够好的。反过来说,通常我们判断对和的估计是否“准确”的标准,比如p值或者与真实值的差的范数等等,反而是缺乏实际意义的。
估计方法
我们先考虑一个非常简单的估计值作为基准,这种估计我们称为Naive Estimator。
首先,假设公司能够观察到真实的邻接矩阵,那么它应该如何估计呢?
将之前的最优反应等式改写为并令 那么我们就得到了其中和都是已知的。我们发现这在形式上非常接近线性回归(然而实际上这并不满足线性回归的一些要求),所以考虑使用类似线性回归的估计
进一步地,公司错误地认为实际观察到的网络就是真实的网络,那么我们就获得了Naive Estimator: 接下来我们看如何在这个问题上运用机器学习。在我之前提的这个问题中:机器学习在理论经济学研究中有哪些可能的应用前景?https://www.zhihu.com/question/320514976
我提到最近了解到哈佛大学Pakes教授利用强化学习来求解拍卖问题的最优投标函数的做法。
对于强化学习,我粗浅的想法是这样的:只要知道游戏规则,那么我们就可以通过不断玩游戏,并通过游戏给予的正负反馈调整玩游戏的方式,来学会如何正确地玩这个游戏。对于我们的模型设定,我们要玩的“游戏”就是从观察到的网络和参数中反推正确的网络和参数,而正负反馈则是根据我们反推/估计的网络和参数所获得的利润而定,接下来就是如何“不断玩游戏”了。如果我们相信我们的模型正确地描述了这个问题(或者说,消费者确实是按照上述是最优反应结合真实参数选择自己的消费量的),那么我们的就可以模拟大量的真实网络和真实参数,然后计算出相应的单次实验结果,然后手动“损坏”网络,并将损坏后的网络和实验结果作为输入,真实网络和真实参数作为输出,通过监督学习的方式训练我们的模型(当然并不一定要用机器学习,一些非参估计的计量方法也是可以的)。
这和以往的计量做法有什么样的区别呢?我的理解是这样的:
利用面板数据进行估计,就好比是和同样的对手玩某个游戏(比如狼人杀),只要玩足够多次,你总能玩得越来越好;但是如果你只能和这个对手玩一次,你想要把这一次玩好该怎么办呢?一个当然的做法就是和不同的对手玩这个游戏,只要玩足够多次,你充分理解这个游戏,那无论对手是谁你都能玩得不错,这就像是强化学习。
具体来说,我们考虑一个朴素神经网络,包括输入层,两个全连接隐藏层(每层8个神经元并采用ReLU激活),最后一个全连接输出层(采用Sigmoid激活),损失函数为自定义的
优化器采用带默认参数的Adadelta优化器。此外考虑两个变种:
如果真实网络很稀疏,而观察到的网络和真实网络的差距较小,那意味着两者之差大部分为0。仿照ResNet的想法,我们考虑在输入层和输出层之间直接加一个shortcut path。
为了和基准的Naive Estimator作对比,我们假设神经网络不对 作更新而只对网络效应进行估计,但是采用上述自定义损失函数。
结果与讨论
(由于我们的参数设计似乎有点问题……)即使是Naive Estimator,垄断公司也能够实现超过95%的利润,但神经网络的表现更优一筹,无论是否加上shortcut path,神经网络能够实现99.5%以上的利润(而神经网络只对进行估计的话则和Naive Estimator大致相当)。最极端地情况下,如果我们完全没有网络信息,此时Naive Estimator无法使用,而神经网络仍然能够实现相当的利润(事实上神经网络的表现几乎不随观察到的网络中丢失的连接数量而变化)。
但是我们注意到一些奇怪的现象:
1、事实上,上述非常低的利润损失几乎总是伴随着非常不准确的网络和参数估计,估计出的网络和真实网络之间可以有一半以上的结点不同(采用平均绝对误差)。相反,任何试图改善网络和参数估计的做法,比如在损失函数中对网络和参数的错误估计增加惩罚项,都只能轻微地改善估计(甚至还不如直接用观察到的网络)并伴有较高的利润损失。另外,如果只估计参数 ,并且用该估计的均方误差作为损失函数,则我们可以获得非常好的参数估计,而利润损失仍然很大。
我们认为这一现象的根源是,我们估计的是一个non-identification的问题。回到上文:由于我们有太多的未知参数,实际上对于任意的和,都存在使得上式成立。
Naive Estimator的做法是,选择最小的那个,但这种选择是有问题的,因为我们的主要目的就是要估计,没有任何理由认为离原点越近的就越正确。
反过来,采用神经网络的这些做法又缺乏一个“如何判定哪种估计更正确”的“真实规则”,这导致了其最终学到的是一个混合了所有可能性的“四不像”。
2、一开始我们尝试了每层128个神经元,结果训练结果要差得多,而且随着epochs增加,loss反而上升了。这可能主要是因为上面所说的identification的问题,但我猜测是否随着神经元数量增加,待训练参数增加,损失函数上出现了更多鞍点或局部极值的情况。
3、如果我们将邻接矩阵看作是二进制图象,那么我们这里的问题相当于根据额外信息恢复一个破损/带有噪音的二进制图像。我们尝试加上了卷积层和池化层,但是和上一条类似,训练结果反而变差了。另外,邻接矩阵本身和一般的二进制图像也并不相同,比如邻接矩阵中某个结点的一些拓扑信息和邻接矩阵在局部的表现(比如,个别点之间的连接情况无关),而是跟某个结点和其它所有结点的连接情况有关(比如度)。我注意到BrainNetCNN可能更适用于这个问题。
总结
尽管我们开始于一个非常具体的案例,但本文的重点并不在于如何帮助垄断公司定价,而是以此为例说明,机器学习在商业(或者其它社会经济)情境中可能的运用方法和问题。
类似于我们所举的场景的例子在现实中很常见,它包含有以下要素:
存在一些信息丢失,可能是无法观察,也可能是测量误差;
可以通过某些手段来间接探测这些信息,但是由于自由度太多导致无法完美复原信息;
这些手段存在使用次数的限制,因此不能不断重复。
丢失的信息将会被进一步利用,并且在利用时会伴随产生明确的评判标准。
我们相信我们的模型正确地描述了信息探测的过程和进一步利用信息的过程。
许多商业上的试运营或是政策的定点实验都符合这些特征。在这些要素,特别是5)的基础上,我们可以考虑采用类似本文的做法,利用模型模拟数据,手动“丢失”一部分信息,并利用监督学习来训练模型学会如何“重建”丢失信息以达成我们的目的(而不仅仅是重建“正确”信息——有时候“错误”的信息反而更好)。
-----END-----
@Richard Xu
版权声明
本文版权归《Richard Xu》,转载请自行联系。
用法律武器,痛击腾讯侵权行为!!!湾区人工智能可以改善知识产权现状吗?
【免费】某机构最新3980元机器学习/大数据课程高速下载,限量200份