Simulated Shopping

Tom Slee has a fun dishpan model (term) of the effect of recommendation systems on product diversity.    The short form is that introducing a recommendation system drives the market toward reduced diversity.  He launches off from a paper that shows much the same result.  He builds a little simulation.

His model is straight forward.  Buyers and products are situated in a feature space.  Buyers are most satisfied when they acquire a product close to them in this space.  His model runs in two modes: with and without a recommendation system.  The products and buyers are drawn randomly from a normal distribution.  I guess we could label the buyers on the tails of that distribution eccentric, and the products on the tail as niche.

Absent the recommendation system buyers find products with some tendency to find ones nearby in the feature space.  Those products satisfy them to some extent and that knowledge can then be rolled up into a recommendation system.  Naturally, once the recommendation system is turned buyer choice is effected, to some degree, by this pooled knowledge.

There are lots of affordances to play with on a model like this.  For example if we assume that the buyer’s position in the feature space is known to the recommendation system it can vary it’s advice.    Alternatively we could imagine changing buyer’s minds by moving their preferences in the feature space or changing how they weigh one or anther dimension of the space.

It is conventional in discussions of markets to rant about the evils of the intermediary, i.e. the agent.  In Tom’s model the agent is the recommendation system.  Tom’s conclusion is that the recommendation system leads to a sharp decrease in the diversity of products cleared through the market.  (I am reminded of how the real estate agent has a strong preference for bathrooms in white.)  I suspect that if he did the sums it would also show a decrease in the overall buyer satisfaction – but that’s less clear.

Dishpan models, particularly coupled with a simulation, are extermely powerful tools for thinking about problems like this.  Valuing their outputs can be trouble, but ignoring them is worse.

Moral Hazard Pay

Once working for a big firm they decided to shift our compensation plans away from simple salary toward something a larger emphasis on an individual bonus.  During the many meetings where the HR people outlined the new plan one of my more amusing colleagues slowly maneuvered the presenter into realizing that the scheme created strong incentives for us to game the system.

My colleague began by revealing that he was puzzled: would not this create incentives for him to ignore his professional expertise in preference for short term advantages.  From there he began, with a bit of help from others in the audience, to introduce other hypotheticals where one might be tempted to set aside this or that goal that was outside the reach of the incentive’s scoring system.  At which point the CEO chimed in that that would be unethical.  Surprisingly that invoked a wide spread chuckle from the audience.

But, of course, one function of an incentive system is to shift behaviors away from things the employee might do otherwise.  Possibly because he’s easily distracted, possibly because he is more loyal to his profession than the firm’s next quarter, possibly because he is too risk adverse.  The list goes on.

I recalled that story after reading something in the most excellent blog at footnoted.org.  Footnoted recently highlighted a perverse example of how incentive design can play out.  One of Bank of America’s recent filings reveals that they paid out 1.2 Billion dollars to Merrill Lynch associates.    Payments triggered by a “change in control” clause in their contracts.

The change of control clauses in executive contracts are part and parcel of the “bribe the pirate” pattern seen in publicly traded companies.  Given the desire of shareholders to have executives to take large amounts of risk, since that shareholders can diversify away most of that, you do two things: let them share the upside, remove the down side.  In this case the change of control clause is like a life insurance policy for the pirate.

Having mused for while that 1.2 Billion dollar pay out was the insurance policy these guys were given to take risks that might destroy the company it has finally occured to me that this is that movie plot; i.e. evil person murders for the insurance money.  So this isn’t about how incentive plans always create moral hazard, which they do, but rather this is actually a kind of adverse selection.  But unlike the insurance company afraid that the only people who will buy life insurance are those soon to die in this case the incentive designer was intentionally trying to attract actors to take life threating risks.    I now recall.  Many many years ago a VC who very much wanted to entice me into working on an idea of his said to me – “We can structure this so you needn’t take any risk.”

Daisy Chains of IOUs

In the big book of Folktales for money managers you’ll find this delightful story.  It begins, as folktales do, when a stranger comes to town.  As he checks into the hotel he asking Albert the desk clerk to store ten thousand dollars the money safely in the hotel safe.  But Albert takes the money and pays off a debt to Bob.  This triggers a cascade.  Bob pays off a debt to Charlie, Charlie to Dave, etc.  Later that evening Zed steps into the hotel and pays off a debt he owes to Albert.  Greatly relieved Al then places the money into the safe.  The next morning the stranger is chatting with Albert and reveals he’s a Fed.  As he is retrieving his cash he jokes: “Man, these are lousy these counterfeit notes!”

Apparently this town was entangled in $270,000 worth of debt, but it took only $10,000 to unwind the problem.

When I originally read this story in a fun pamphlet on local script currency systems it triggered a reminding of an old Mad Magazine bit.  Kids in high school all trying to act like the next coolest kid.  They too were caught in an analogous cycle.  It’s delightful the way the mind works; Mad Magazine, Mad Money…  tis a slight relief: after skimming this piece.  Apparently the global village is entangled in a similar cascade of interlocking debt.  Sum it all up, divide by the village population, and what do you get?  Every human on the planet has $190,000 of derivatives debit.

In the folktale the $270,000 of debt is unwound in a few hours with no transaction costs, no friction, and apparently no interest payments.  We should be so lucky.

What a mess!

One of the many functions that standards (and open source) play is that they provide a forum for cutting through patent thickets so that an industry can grow.  But it’s hard.  Players that stay out of the standards making process, but who are active in the industry, are well positioned to poison the well.  Of course you do that after the standard is widely deployed.  The only defense is to acquire patents in the spaces around the standard.  That can be done defensively by the supporters of the standard, or offensively.  There should be a term of art for this tragedy – where in the attempt to cut a path through the thicket triggers the sudden growth in the  surrounding  thicket.

Recently I’ve been quite interested in an emerging standard, AMQP (a high speed enterprise message bus). AMQP lacks, as far as I can tell, any association with a mature standard’s body.  There is an AMQP project at the Apache Software Foundation, but that is not a formal standard’s body.  The AMQP working group’s governance is a bit ad hoc; but they do have an stated IP policy[1].

Today I learn that RedHat has at least one patent application in this space (patent #20090063418).  This has got the makings of a shit storm.  For quite a few reasons.  RedHat is a key member of the adhoc standards group working on AMQP.  RedHat is a members on the Apache Software project tied to the AMQP ‘standard.’  RedHat donated much of the code to that project.

I assume their donation to the ASF is part of a very typical open source busines model.  One encouraged by the Apache licence; i.e. there is a Apache licenced open source product that lots of people adopt for zero licensing costs.  That creates a market and then vendors offer enhanced versions of on top of that.  Redhat has a very extensive offering in the AMQP space.

Standards create opportunities to do stuff.  These opportunities may well be patent worthy.  So if you want to grow out the thicket around the emerging standard you just lock some smart guys in a room and start them brain storming.  Some of what they come up with will be obvious, but that hardly means you won’t be able to capture a patent for it.    Just to add to fire to the shit storm it appears that Redhat’s patent is for the mind bogglingly obvious idea of transfering XML data over AMQP.  Of course any patent worth it’s lawyering starts with some broad claim and then get’s more focused.

Some other links:

  • Good posting, more pissed than mine.
  • Red Hat – a statement on this issue.  This serious bull:  “Although there have been some recent questions about one of our patent applications relating to the AMQP specification, they appear to originate in an attempt to spread FUD. There’s no reasonable, objective basis for controversy.”
  • Well written note from one of the other firms implementing AMQP.  “… We are however very annoyed about the Fear, Uncertainty and Doubt that  actions like this cause.  We are astonished…”

[1]: I’m happy to report that the AMQP working group’s IP Policy is not as ad hoc as I earlier guessed.  See here: svn link, but you may need to poke your way thru some ssl cert complaints.

Amazon Plays with their Prices

I shamed Amazon into lowering their prices. Just kidding.  You recall my recent posting asked why Amazon’s prices aren’t tracking the cost of hardware etc.

If you are feeling extremely generous you might say that that Amazon cut prices by half, or maybe a third.  It’s confusing.  Not surprising, that’s the way you play with prices.    Nobody every lowers prices!  Instead you play pricing games.  Coupons, sales, special offers for special customers.    You don’t lower prices you increase the options for negotiation.

The pricing game Amazon picked was to add subscriptions; which are good for increasing lock-in.  Under the subscription plans the cost per hour is lower.  It’s about a third of the pay as you go price.  Your overall cost is higher because you have to buy the subscription.  Considering the one year subscription your better off staying with pay as go if until you run a machine half time.

It’s a clever pricing move.  This should significantly increase the lock-in while making it harder for competitors to price match.  A competitor would have to buy out any existing subscription.

I just love this quote: “An allocution in such a high stakes case is closely lawyered.”    So too with pricing design.

Book or Blog Posting?

I’m amused…

Over a year ago … inspired … to contemplate a book-magnitude project on the topic… talking to trusted friends about approaches to the project and topic, and contemplating the necessary ‘field work’, when I was rudely interrupted … didn’t interfere with my net access, so I continued the pursuit virtually. But what I learned caused me to drop the project … consigned that effort to the “some things don’t work out” category, until a recent dinner with one the aforementioned friends persuaded me that the experience and my conclusions might be worth a blog essay …

so many books have I read, if only!

Franchising Local Currency Systems

What do Milford Ct, Fairfield CT, Ann Arbor MI, Muskegon MI, and Palestine TX have in common?    To encourage local business they all set up little private currency systems.  Usually organized through the local chamber of commerce they sold what were effectively gift checks or gift certificates.    Local citizens could buy those and later redeem them at local businesses.

You can set up similar things for charitable purposes.  For example First Energy in Akron Ohio sells gift checks that you can give to poor families.  You can buy gift checks to send to soldiers overseas.  Redeem at the commissary.  “$20 million … since 2002 … more than $3.9 million in fiscal 2008” (navytimes).

All these systems have another thing in common.  They all blew up a few days ago.  CertifiCheck, a company in Ohio, shut down; and it turns out all these good spirited organizations signed up with these guys to run their little micro-currency system.  Browsing Google’s cache it looks like there are hundreds of towns, charities, and thousands of small businesses have been affected.  “A Catholic hospital in Illinois says its employees have $30,000 worth of unredeemed gift certificates.” ().

I wonder what it said on these gift checks: “Backed by the full faith and credit of a couple dudes in Dayton, Ohio.”

How you feeling about that PayPal account?

Python Twisted’s inlineCallBacks

The folks in the twisted community found the most wonderful trick.  Consider this typical example of event driven code.  Consider this example (proabably easier to read bottom to top).  The function enqueueTaskToDisplayURL depends on three callbacks to handle the usual eventualities (good, bad, wrapup).


from twisted.web import client
from twisted.internet import reactor
import sys

def shutdown(*whatever): reactor.stop()

def printPage(data): print data

def printError(failure):
    print >> sys.stderr, "Error:", failure.getErrorMessage()

def enqueueTaskToDisplayURL(url):
    get = client.getPage(url)
    get.addCallbacks(printPage,
                     errback=printError)
    get.addBoth(shutdown)

 if __name__ == "__main__":
    enqueueTaskToDisplayURL("http://example.com/")
    reactor.run()

The trick they found was to use generators of their promise abstraction (aka defer).  So we can write that example as so:

from twisted.internet import defer
from twisted.web import client
from twisted.internet import reactor
import sys

@defer.inlineCallbacks
def enqueueTaskToDisplayURL(url):
    try:
        data = yield client.getPage(url)
        print data
    except Exception, e:
        print >> sys.stderr, "Error:", e
        return;
    finally: reactor.stop()

if __name__ == "__main__":
    enqueueTaskToDisplayURL("http://example.com/")
    reactor.run()

The clever hack is done by @defer.inlineCallbacks, which works because this function (notice the yield) is a generator.  That just made be giggle.

I’ve only gotten into Python and Twisted in a part time way over the past few months.  I’m probably committing all kinds of sins here.

The Misery of Opportunity

Fun video by Barry Swartz author of “The Paradox of Choice – Why More is Less”.

Why choice makes people miserable:

  1. regret over the choice not taken, and fear of that future regret,
  2. the cost of managing a portfolio of options,
  3. the benchmark for success is raised higher, i.e. expectations escalate
  4. self blame, when the choices made later appear to have been the wrong ones

He reports a study they did: those who maximize a job choice did in fact capture significantly more income, but at a cost.  They are more: pessimistic, anxious, stressed, worried, tired, overwhelmed, depressed, regretful, and disappointed.  They are less: content, optimistic, elated, excited, and happy.

Adds something to my thinking about option spaces, but still I regret not having the option of seeing the copyrighted cartoons.

Data center as 4H project

In a replied to my posting which ended with the question why EC2’s pricing trends seem uncorrolated with rapid fall in the cost of goods Alex Muffet uses a metaphor: “most EC2 users are not paying for compute performance, but instead to have their time freed up from feeding and watering a farm of computers”.  He followed up in his blog.

Delightful.  I always like reframing a problem as a coordination problem; but better yet – that’s the herding cats metaphor applied to the data center.    Data centers :: 4H project!  Log analysis :: cleaning the stables.  Autoscaling :: animal husbandry.  Cloud computing :: factory farm.  My basement :: the family farm.  It’s so damn funny because it’s so true.

Where are the populist voices speaking out in defense of our family run farms of computers?  Where are the sepia documentaries reporting on how these farmers are packing up their possitions and moving into the cities.  20-30 years of expertise in milking those damn digital cows has been displaced.

The larger analogy – farming :: Moore’s law – has legs.  Each farmer in the US feeds say 200 people.  Like Moore’s law that rate has been doubling.  Not every 2 years but every 20.  The displacing forces play out more slowly.  Which means a man can learn to farm and spend decades doing it before his expertise is displaced.  In the computer industry we regularly make the choice not to even bother to develop an expertise under the presumption it will be displaced so quickly.    Back in the 19th century a large enough portion of the population was being displaced from farming by these forces that it was a major topic of the political conversation. Economic downturns regularly triggered another round of farm consolidation (aka failures).

I’d love to find a book about productivity growth rates across a wide range of economic sectors.  Something with a mess of data, an attempt to tease out the structural reasons, a peak at how it happens in fits-and-spurts, and finally a modicum of sympathy for the resulting displacement.  Such a thing would be, one would think, be required reading in schools of historical economics, business and politics.  Pointer please?