以概率最大化社交网络中的预期收益

时间:2013-04-09 20:03:33

标签: algorithm e-commerce social-networking graph-algorithm

我需要解决一个特定的问题。 我有一个社交网络的代表。 每个节点都是一个人,每个边缘是两个人之间的连接。图表是无向的(如您所料)。 每个人都有购买产品的个人“亲和力”(简化事情,假设只有一个产品涉及整个问题)。

在每个“步骤”中,每个人独立地选择是否购买产品。 这里有概率。考虑了一些参数:

  1. 他个人对产品的亲和力,
  2. 已经购买该产品的朋友的百分比
  3. 购买该产品的人的收益是1美元。

    问题是要指出将在步骤0中接收产品的X人(比如说5人),并且在Y步之后最大化增益的总预期值(比方说,10步)

    网络非常庞大。无法以天真的方式模拟所有选项。

    我应该使用什么工具/库/算法?

    谢谢。

    P.S。 在谷歌和维基百科上调查此事时,一些条款不断出现:

    • 动态网络分析
    • 流行病模型

    但它没有帮助我找到答案

2 个答案:

答案 0 :(得分:1)

一般来说,拥有最多邻居的人在购买东西时影响最大。

因此,我的启发式方法是先按照他们拥有的邻居数量(按降序排列),然后按每个邻居的邻居数量(按从高到低的顺序)排序,依此类推。您将需要最多Y级别的邻居计数,但在实践中可能更少。然后只需将此列表中的第一个X人。

这只是一种启发式方法,因为例如如果一个人有很多邻居,但他们中的大部分或全部可能已经通过其他联系购买了产品,那么它可能会更高的期望选择一个拥有较少邻居的不同的人,但其邻居不太可能已经拥有产品

您不需要构建整个列表然后对其进行排序;你可以构建列表,然后将每个项目插入heap,然后只提取得分最高的X人。如果X很小,这将会快得多。

如果X和Y低到你建议的那么低,那么这个计算会非常快,所以重复运行是值得的,而不是从拥有该产品的前X人开始,每次运行你随机选择初始X所有者根据概率取决于他们在列表中的位置(列表越靠后,概率越低)。

答案 1 :(得分:1)

查看submodularity的概念,这是一个非常强大的数学概念。特别是,请查看幻灯片19 ,其中子模块用于回答问题“给定社交图,谁应该获得免费手机?”。如果您有权限,也请阅读corresponding paper。这应该让你开始。