7/28/2010

Book Notes - The Long Tail

这是一本为互联网经济摇旗呐喊的著作,早几年互联网从业者几乎言必称“Long Tail”,否则都不好意思在道上混。但短短几年间,原本的流行畅销书几乎快变成一本古典经济学著作了。作为此书的伪读者,最近总算真正抽了点时间来好好 通读一遍,就花的时间精力而言,估计阅读真正的经济学专著也就这样了。

下面是一点 读书笔记:

Part I - 什么是长尾现象(What's Long Tail?)


经济学和市场营销中的长尾现象是指:市场销售额不再仅 由少数几个热门商品(Short Head)霸占,越来越多的大量非热门(Long Head)商品按照幂次律开始分享市场份额,并且非热门商品的市场份额总有超越热门商品市场份额总和的趋势。

长尾现象的另一个特点:分形 特性(fractal):长尾曲线的任一连续部分依然是个长尾现象(self-similarity at multiple scales.)。

Part II - 为什么是长尾经济(Why Long Tail?)


1. 前长尾时代:大热门经济

大热门 经济(Hit Driven Economics)是指市场主要由品种不多,但是销量巨大的热门商品构成。背后的实质是工业革命带来的规模化生产理念。在工业化时代,商品制造能力空前提高,但边际生产成本只有在生产 达到一定规模的时候才会降到普通消费者能够接受的范围。除了生产制造, 在物理世界中运输营销单件商品的成本受其销售额的影响也很大。

这个时代经济活动的 关键词是:规模。任何一件商品,如果市场需求的预期规模达不到一个相 当的额度,制造和流通部门都无法从中获得利润,市场上自然也就只有大热门商品才能形成良性循环。

在这样的经济中,生产者自然将精力放在了 大众主流市场,消费者得到了价格实惠,但是选择范围很窄。而极少数的利基市场(Niche Market)往往都是由精英上流社会人士构成的奢侈品市场。

在这样的时代里,人们进行交流的渠道主要是以广播模式进行信息传播的大众媒 介,比如报纸、杂志、电台和电视台。在这样的社会中的芸芸众生,虽然有着各种不同特点,但其得到的产品和服务,获取到的社会信息,都不会差别太多(指针对 社会普通大众而言)。个人追求个性的代价非常高昂。

2. 长尾经济

1)对个性化商品的巨大需求

作为人类社会的一员,我们虽然有众多的共同点,但也有诸多的 个性特点和需求。毕竟不论从生物属性和社会属性来看,我们生来就是不同的。物质生产的极大丰富使得人类基本需求得到满足,而教育事业的发展、社会文明的进 步和交流手段的改进都加强化了我们对自身个性的追求。所以,对小规模、个性化商品的需求是早就隐藏在我们的内心深处的。

2)个性化商品生产成本的降低

科技的不断发展,特别是在信息科技的推动下,制 造业的生产成本不断降低,小规模个性化定制产品成为可能。

电脑、网络以及各类数码硬件设备和软件产品的出现,极大提高了社会大众的制造能 力,也降低了创意产业产品的制造成本。

商品总类和数目极大丰富,可以按照个性定制非热门商品,价格可以承受

3)商品营销成本显著降低

网络技术的出现的普及,使得商品的零售成本急 剧降低。商家不再需要在繁华地段租赁昂贵的写字楼,铺设光鲜华丽的货柜,雇佣众多销售管理人员,产品实物也不用运送到城市每个角落的实体商店。

交 通工具和道路的不断完善,使得运输物流成本不断降低,使得单件产品递送的费用下降到可以接受的范围。

在这两个前提下,商家只要建立货品目 录网站和低成本的集中货物仓储中心,加上相对较少的发货人员就能开始商品零售业务。

和传统实物卖场相比,单件商品的营销成本急剧下降,盈 利对商品销售额的要求也自然下降。对于某些特殊数字产品,比如mp3音乐和电子书,由于其单品营销成本微乎其微,哪怕只有一条出售记录,商家也能从中获 利。

4)消费者的购买成本降低

有了 Amazon这样的网上商城(Online Aggregator),消费者不用浪费时间去实体店浏览挑选。

各种过滤器(Filter) 降低了用户的选择成本:
- 搜索技术的出现,使得人们从众多 商品中进行个性化挑选变得方便
- 用户对商品的打分评论的方便分享,为用户购买活动的选择提供了权威参考
- 利用信息技术跟踪用户的商业行为,加上智能的算法,能为用户自动做出合乎情理的商品推 荐
- 个人出版(Blog, Twitter)业和网络社区(Facebook)的繁荣,使得网络营销大行其道,也成为帮助消费者过滤长尾中杂音的有力工具

在 这样的市场环境中,关键词从规模变成了个性。只要有独特的地方,满足 哪怕只是极少数人的需求,都能从中获利。所以从生产商到营销渠道开始关注规模不大但是数目众多的小众市场(Niche Market)。这些Niche Market虽然每个带来的利润较少,但是由于数目众多,其累积总数已经可以同Short Head中大热门商品的利润相提并论。
- 这就是所谓的Long Tail: Selling Less of More

Part III - 深入浅出长尾(More About Long Tail)

1. Long Tail VS Short Head

虽然长尾的出现,让我们把注意力也放到了市场上长长的尾部,但我们同时也不能忽视了热门的头部。

因为作为人 类,“不管我们之间有多少不同之处,我们之间的相似之处总是更多”("For each way that we differ from one another, there are more ways that we’re alike")。所以我们大部分基本需求还是相似的,这些相似性在长尾时代依旧会形成Short but Big Head,它们是市场上的Low Hanging Fruit,要首先把握住。

从另外一方面说,缺少了Short Head仅剩Long Tail的Aggregator是很难吸引并留住客户的,我们都只是基本共性和少数个性的混合体。

不过既然Long Tail市场上依旧有Short Head,那本书的副标题似乎从"Why the Future of Business IS Selling Less of More"改成""Why the Future of Business INCLUDES Selling Less of More "更为恰当。

2. Long Tail VS Power Law VS Zipf's Law VS Pareto Distribution

帕累托分布(Pareto Distribution): 一个国家内个人收入X不小于某个特定值x的概率与x的常数次幂存在简单的反比关 系:P[X≥k]~x^(-k)。

齐 普夫法则(Zipf's Law): 对于某语言,如果把单词出现的频率按由大到小的顺序排列,则每个单词出现的频率与它的名次(r)的常数次幂存在简单的反比关系:P(r)~r^(-α)。

其 实不论Pareto Distribution还是Zipf's Law都是理论上的Power Law Distribution分别在经济和语言领域的应用,另外Pareto Distribution是从累积分布函数(Cumulative Distribution Function)的角度进行描述的,而Zipf's Law是从概率密度函数(Probability Density Function)的角度进行描述的。

幂次分布(Power Law Distribution)说的是随机变量X的概率密度函数与另一个变量X数值的幂次成比例(通常是反比), i.e., f(x) = http://upload.wikimedia.org/math/2/b/b/2bbff8a3c0be71b037045b90981d611b.png。Long Tail只是直观描述了Power Law Distribution变量的分布特点。

而所谓80/20 Principle,也就是所谓的重要的少数法则(The Vital Few),只不过是Power Law Distribution的一个自然的逻辑推论,这里的具体数字并不是那么重要,这是个定性而不是定量的法则。另外,一个常见的误解认为:如果这里具体的 数字变了,两者的和必须要达到100。其实这里的80和20是描述的不同对象,并非一定要满足求和为100。

既然前面已经说明 了,Long Tail依然是符合Power Law Distribution,也许具体的数字从80/20变成了50/10,但具体的数字并不重要,性质、趋势更加重要,其中The Vital Few的特性并未有本质的改变,依旧存在Short but Big Head。所以本质上Long Tail的发现和帕累托The Vita Few的发现并不冲突。

3. Long Tail VS Choosing Cost

长尾市场给消费者带 来的主要问题是选择的代价。对于选择过多的问题,有两个有趣的结论:
1. 更多的选择是会促进总体市场规模的扩大(蛋糕做大)
2. 人们需要选择,但是排斥复杂的选择过程

对于在长尾市场的经营者,如何帮助用户快速方便做出选择是个重要的话题。

4. Long Tail: Economic VS Culture

作者也谈到了Niche Economics和Niche Culture的相互关系,这些观察其实并不新鲜,与另一本畅销书Micro Trends(小趋势)的观察和结论基本一致:现代社会不再是几个阶层或者集团的简单构成,已经被分隔成了一个个有着不同特征的小群体。

这 个结论是从消费者需求的角度理解长尾经济出现的基础。

5. 一些争议

Anderson的理论也遭受了一些质疑和讨论。

1) Anderson 与哈佛商学院教授的激辩:

2) Long Tail Challenge in Search Query
- http://www.seomoz.org/blog/the-long-tail-theory-gets-challenged-just-not-in-search-query-demand

3) Rethinking the Long Tail Theory
http://knowledge.wharton.upenn.edu/article.cfm?articleid=2338

4) Why Chris Anderson's theory of the digital world might be all wrong

http://www.slate.com/id/2195151/

Part IV - 长尾的商业启示(Guidelines for Long Tail Business)

1. 降低成本,尽可能提供品种丰富的商品
- 鼓励和利用顾客参与生产
- 利用网络社区的群体智慧
- 集中仓储或者利用合作伙伴的分散仓储
- 尽可能将商品数字化,降低传输、存储成本

2. 处处为顾客着想
- 吸引用户主动对商品进行打分和评论
- 易用并且客观的搜索、推荐界面
- 全方位详细的货品展示方式
- 认识到并尊重你的顾客是多种多样的

Part V - Notes on Book Notes

书 中的观点在其刚面世的时候还是很有启发意义的。但其写作论证还是显得不很严密,给的例子都很精彩,叙述得娓娓道来,但往往和其相应章节的观点逻辑上有点脱 节。比如第三章长尾简史,里面讲的是零售商业的发展历史,而不是长尾经济现象的历史,再比如第五章新生产者,讲的那些所谓新生产者创造的东西和书中长尾市 场的案例中涉及的商品没几毛钱的关系。

不过这好像是美国畅销书的特点:提出一个吸引眼球的观点,然后在这个大旗下夹带私货,把逻辑关联不 是那么强,但比较有趣的案例靠其出色的文笔加入进去。不细心的读者一看,哇,观点新颖有启发意义,案例精彩有趣,读得相当过瘾。

另外,现 在的互联网经济和营销其实值得深入探讨学习的话题很多,有很多具体的技术活,但Anderson基本还是站在社会学的角度远远的观察,太过理论、太过社会 化,不够经济化、不够可操作化。在这点上,日本人管谷义博的长尾经济学更胜一 筹。

[Reference]

01. http://en.wikipedia.org/wiki/Long_Tail
02. http://en.wikipedia.org/wiki/Power_law
03. http://en.wikipedia.org/wiki/Zipf%27s_Law
04. http://en.wikipedia.org/wiki/Pareto_distribution

11. http://www.longtail.com/
12. http://longtail.typepad.com/
13. http://www.thelongtail.com/
14. The Long Tail @ Wired

21. Power Laws, Pareto Distributions and Zipf's Law
22. Zipf, Power-laws, and Pareto - a Ranking Tutorial
23. 幂律分布研究简史

7/17/2010

Load Test: An Overview

Part I - VSTT Load Test


= Concepts =

Terms Compared with xUnit (xUnit/VSTT):
- Test Suite/Test Class
- Test Case/Test Method
- Test Runner/Test Runner
- Test Fixture Setup/Test Init
- Test Fixture Teardown/Test Cleanup
- Suite Fixture Setup/Class Init
- Suite Fixture Teardown/Class Cleanup

The load simulation architecture consists of a Client, Controller, and Agents:
  • The Client is used to develop tests, select tests to run, and view test results.
  • The Controller is used to administer the agents and collect test results.
  • The Agents are used to run the tests.
  • The controller and agents are collectively called a Rig.
When conducting load test, each Unit Test/Web Test is independent of other tests and of the computer on which it is run.

When you create a load test, Visual Studio Team System Test Edition lets you specify a Counter Set. A counter set is a set of performance counters that are useful to monitor during a load test run.

During a load test run, the performance counter data is collected and stored in the Load Test Results Repository, , which is a SQL database. The Load Test Results Repository contains performance counter data and any information about recorded errors.

= Practices =

1. Compose Test Cases

- 1.1 Install VSTT + Team Explorer(the Later one is required for Web/Load Test)
- 1.2 Write Web/Unit Test
- 1.3 Compose Load Test
The most complicated thing may be specifying load pattern.

2. Setting Up Test RIG

- 2.1 Install Load Test Controller [LoadAgent]
- 2.2 Install Load Test Agent
- 2.3 Admin Test RIG
== Click Visual Studio Menu: Test -> Administer Test Controller, you can now Add / Remove / Config test agents in the dialog box.

3. Run Test

- 3.1 Config Test [Specify Test Run Configuration, Setup Load Test on Rig]
- 3.2 Run Load Test [Conduct Test Using Mstest.exe]

4. Analysis Result

- 4.1 View a Test Run on a Rig: http://msdn.microsoft.com/en-us/library/ms243178.aspx
- 4.2 Monitoring and Analyzing a Load Test Result: http://msdn.microsoft.com/en-us/library/aa730850(VS.80).aspx

[VSTT Load Agent - http://msdn.microsoft.com/en-us/teamsystem/aa718815.aspx]
[Controller/Agent/Rig - http://msdn.microsoft.com/en-us/library/ms182634.aspx]

[Reference]
1. Report Visual Studio Team System Load Test Results Via A Configurable Web Site - http://msdn.microsoft.com/en-us/magazine/cc163592.aspx
2. Considerations for Large Load Tests - http://msdn.microsoft.com/en-us/library/ms404664.aspx
3. Real-World Load Testing Tips to Avoid Bottlenecks When Your Web App Goes Live - http://msdn.microsoft.com/en-us/magazine/cc188783.aspx


Part II - LoadRunner


LoadRunner Architecture:
http://test-soft.blogspot.com/2007/06/loadrunner-architecture.html

LoadRunner contains the following components:
- The Virtual User Generator captures end-user business processes and creates
an automated performance testing script, also known as a virtual user script.
- The Controller organizes, drives, manages, and monitors the load test.
- The Load Generators create the load by running virtual users.
- The Analysis helps you view, dissect, and compare the performance results.
- The Launcher provides a single point of access for all of the LoadRunner
components.

The Controller controls load test runs based on "Scenarios" invoking compiled "Scripts" and associated "Run-time Settings". Scripts are crafted using Mercury's "Virtual User script Generator" (named "V U Gen"), It generates C-language script code to be executed by virtual users by capturing network traffic between Internet application clients and servers.

At the end of each run, the Controller combines its monitoring logs with logs obtained from load generators, and makes them available to the "Analysis" program, which can then create run result reports and graphs for Microsoft Word, Crystal Reports, or an HTML webpage browser.


III Other Tools

1. Web Application Stress Tool
2. Apache Benchmark

[Reference]

General:
1. http://en.wikipedia.org/wiki/Stress_testing_(software)
2. http://en.wikipedia.org/wiki/Portal:Software_Testing
3. http://en.wikipedia.org/wiki/Category:Load_testing_tools
4. http://en.wikipedia.org/wiki/Load_testing

7/07/2010

Mechanical Turk, Crowdsourcing and Amazon MTurk Service

I. Mechanical Turk

Mechanical Turk(土耳其下棋傀儡) 是十八世纪晚期一位奥地利人制作的自动下棋装置。这套装置看似一套全机械操作的自动化系统,实际上却是由躲在这些复杂的表面系统后面的真人操作。因为装置精巧,识破其骗局的人不多,加之操作的人棋术不错,在当时的欧洲颇风靡了一阵。这套系统在一个机械的、自动化的接口下,使用了人力操作的实现方式;用今天的流行话来说,这是一台“人肉下棋机器人”。

II. Crowd Sourcing

Crowd Sourcing(众包)是连线杂志的编辑Jeff Howe在2006年发表的文章"The Rise of Crowdsourcing" [3]中创造的一个词汇。按照他的定义: Crowdsourcing is the act of taking a job traditionally performed by a designated agent (usually an employee) and outsourcing it to an undefined, generally large group of people in the form of an open call.

和一般意义上的Outsourcing(外包)相比:
1. 问题的解决方案提供者是一大群未知的公众群体,而不是预先已知的小团队或个人
2. 在多个方案存在时,最终方案的选择也由群体来做出
可以说最后的解决方案完全依赖于群体的智慧和力量。

Jeff Howe认为形成Crowdsourcing现象主要得益于:
1. 现代科技的发展使得专业事务的门槛降低,初学者和专业人士界限模糊。人们能够完成的工作能力变得前所未有的强大
2. 互联网技术的发展使得人们交流手段变得快速而强大

而Crowdsourcing的优势在于:
1. 由于面向的人群不限于专业人士,解决方案的最终成本更低廉
2. 提交者能接触到更多的问题解决者,选择面更宽,能利用到的资源更丰富,得到的结果更好

但也有人指出了这种模式的诸多不足:
1. 对方案提供者了解和控制太少,不确定性太大
2. 缺乏法律规范和保障,一旦出现纠纷,解决起来比较麻烦
3. 质量和持续性难以保证

III. Amazon Mechanical Turk

受这两个想法的启发,Amazon在推出了一项叫做Amazon Mechanical Turk的互联网服务。

Amazon 的认为:虽然科技的发展让计算机系统变得越来越智能,但是在可以预见的将来,依然有很多数据处理任务,人的处理速度和质量都是计算机系统不能比拟的 - 这就是所谓的HIT(Human Intelligence Task)。Amazon MTurk就是要为这类问题提供一种快速、简单、廉价同时又可扩展的基于的互联网的解决方案(make accessing human intelligence simple, scalable, and cost-effective)。

常见的Human Intelligence Task:
- Identify Object in Photo/Video
- Audio/Video Transcription

这类任务还有一个特点:往往可以分成数量巨大的小任务;用专业点的术语表达:都是些data parallel的任务。

从 技术实现上Amazon Mturk只不过是一个典型的web based distributed job system:Requester通过Amazon提供的接口发送任务描述,Worker从任务队列挑选自己感兴趣的条目,处理完后返回给系 统,Requester再从系统获取任务结果。

这和前几年的OGF搞的Basic Execution Service, JSDL那套没什么本质区别,只不过里面的Worker不再是被动接受调度的机器,而是拥有完全自主权的人类。值得一提的是,为了提高结果的质 量,Amazon MTurk允许HIT Requester指定一段测试任务,只有通过这个测试的Worker才有资格处理相应的任务。

从技术上看:
1. Amazon MTurk将人类智能包装成了易于与更大规模的信息系统集成的Web Service接口
2. 促进了机器和人类智能的融合,向着Licklider所描绘的Man-Computer Symbiosis又前进了一步。
3. 非常适和解决Data Parallel/Task Parallel的大规模智能问题

从商业、社会意义上看:
1. Amazon MTurk实质上是通过规避法律、人权、流程上的风险来降低完成一项大规模智能问题的成本。因为你将不再需要为这些大量临时需求的worker签订合同文书、关注其劳动环境和社会福利。
2. Requester完全掌握着评判结果和实施支付的主动权,使得Requester/Worker处于完全不平等的地位

和前面的Crowdsourcing相比:
1. Amazon Mturk的Requester通常需要更多的参与:负责任务的划分和结果的最后组装呈现
2. Worker要做的事情比较机械单一,通常不需要和其他Worker之间相互交流沟通
3. Crowdsourcing看中的是群体智慧,是广泛自主和1+1>2的效应,对参与者要求较高;而Mturk常常只是利用人类大脑的基本功能,对参与者要求往往并不高
4. Crowdsourcing适合处理一些比较复杂的任务;而Mturk则适合处理比较简单但是规模比较大的任务
5. Crowdsourcing中,经济利益往往并不是参与者主要的推动力,成就感、社区认可往往也能激励人们参与其中;而Mturk中,经济利益往往是唯一的诱惑因素

至于为什么Amazon Mturk推出这么多年却未能见到持续的发展,在我看来主要有几点原因:
1. 适合的Worker未能广泛存在
- Mturk中的Worker说穿了就是互联网上自由的廉价劳动力,但互联网技术在世界范围内还没普及到最廉价的劳动力能够自由方便访问的程度
- 互联网上最廉价的劳动力往往并不在英语区,但目前Requester提交的HIT,全是英语描述,内容往往也和英语能力相关
2. 结果验证的自动化依旧是个问题
- Requester需要检查结果是否符合期待,以付出报酬。但这个结果是人类智能处理的结果,计算机很难自动化地作出判断。如何大规模自动化地作出公正客观的判断,视乎又是另外一个HIT
3. Requester和Worker间缺乏良好的互动模式和监管措施
- Requester在HIT交易过程中掌握了太多的主动权,Worker处于不公平的位置,正当的权益得不到适当的保障,使得Worker的积极性受到影响
- Amozon完全可以将e-commerce中的互动监管模式引入到Mturk服务中,确保交易的公平公正

[Reference]
1. http://en.wikipedia.org/wiki/The_Turk
2. http://en.wikipedia.org/wiki/Crowdsourcing
3. Wired: The Rise of Crowdsourcing (中文版: 1, 2, 3, 4)

4. http://en.wikipedia.org/wiki/Amazon_Mechanical_Turk
5. Amazon MTurk Home
6. Amazon MTurk Web Service