设计正点的数据产品(2)

在推荐系统上使用驱动系统

让我们看看可以在另一个行业使用这个步骤:市场推广。首先我们在我们熟悉的推荐系统上运用驱动系统,然后将它扩建成一个优化的市场策略。

推荐系统是一个常见的例子,它是一个基于预测模型的数据产品,但不是用来优化某个目标。目前的算法可以预测一个客户会喜欢什么产品,基于他的购买历史,以及类似客户的购买历史。像Amazon这样的公司,将每个购买记录写入一个大而稀疏的矩阵当中,以客户作为行,货物作为列。一旦有了这个矩阵,数据科学家就用某种协同过滤方法,将矩阵填满。比如说,客户A买了产品1和10, 而B买了1,2,4,10。 那么系统会推荐A买2和4。这样的系统用来预测客户会不会喜欢某个产品,有很好的效果,但也常推荐一些客户已知的产品,或者已经决定不买的产品。Amazon的推荐引擎也许是市面上最好的一个,但也很容易找到毛病。以下是一个“买了这产品的客户也买了以下产品”的页面截屏。之前我们搜索了Terry Pratchett的书“Discworld 系列”. 可以看到,所有推荐都是这个系列的其他作品,但是,懂得搜索这个书名的客户,恐怕早就知道这些书了。也许在后面的页面会有其他推荐,但有多少客户会点?

让我们采用“驱动系统”,设计另一种更好的推荐引擎。首先我们重新考虑我们的“目标”。推荐引擎的目标是带来销售,通过像用户推荐意想不到的书。我们真正想做的是模仿Zite的CEO Mark Johnson的经验那样。他最近在TOC talk里面给了一个完美的例子,告诉我们推荐系统应该是怎样的。他走进纽约的Strand书店,问一本类似于Toni Morrison的“Beloved”的书。柜台后的女孩推荐了William Faulkner的“Absolom Absolom”。 在Amazon,最靠前的推荐是Toni Morrison的另外一本书, 还有基本有色人种的女作家的书。Strand书店的店员作了一个聪明而又有深意的推荐,可能是基于Morrison书中的角色,而不是肤浅地基于Morrison跟其他作家的联系。她拨开肤浅的一层,做了一个推荐,不但让客户今天买一本书回家,而且今后还会不断光临。

这不是说Amazon的推荐引擎找不到类似的联系,只是这个推荐会在推荐的书目里石沉大海,被其他联系更加明显的书所掩盖。这里的目的是避开“推荐泡沫”,这个术语最早来自Eli Pariser,指新闻信息源倾向于推荐纯粹流行的文章,进一步加重用户的偏见。

仿照AltaVista-Google的例子,这里我们的手段是推荐的排行。新的数据必须搜集,以生成可以带来收入的推荐。这需要我们作许多随机实验,获得大量客户在大量产品上的信息。

最后一步是模型的组装线。一个办法避开“推荐泡沫”是建立两个模型,分别基于看过推荐和没看过推荐的前提(按:Bayes味道出来了)。两个模型之间的差异,衡量了推荐对客户的功用。如果是一本用户已经拒绝过的书,或者他早已知道甚至买了的书,这个功用会偏低。我们可以建立一个模拟器,测试所有书的推荐功用,或者是系统推荐的、类似客人买过的书。然后我们建一个优化器,用来建立基于上面功用的排行。一般而言,当我们要优化一个目标函数,应该聚焦的是目标而不是函数。用我们产品的用户的目标是什么?我们在为他们做怎么样的决定?

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: