algorithm - 以概率最大化社交网络中的预期 yield

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

我需要解决一个特定的问题。 我得到了一个社交网络的表示。 每个节点是一个人,每条边是两个人之间的连接。该图是无向的(如您所料)。 每个人都有购买产品的个人“亲和性”(为简化起见,假设整个问题只涉及一种产品)。

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

  1. 他对产品的个人亲和性,
  2. 他的 friend 中已经购买该产品的百分比

购买该产品的人的 yield 是 1 美元。

问题是指出 X 个人(假设 5 个人)将在第 0 步收到产品,并在 Y 步(假设 10 步)后最大化 yield 的总期望值

网络很大。不可能以天真的方式模拟所有选项。

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

谢谢。

附言 在google和wikipedia查这件事的时候,不断冒出几个名词:

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

但这并没有帮助我找到答案

最佳答案

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

因此,我的启发式方法是首先按照他们拥有的邻居数量(降序)对人们进行排序,然后按照每个邻居拥有的邻居数量(从高到低的顺序),依此类推。您最多需要 Y 级的邻居计数,尽管在实践中更少可能就足够了。然后只需选择此列表中的前 X 个人即可。

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

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

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

关于algorithm - 以概率最大化社交网络中的预期 yield ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15911440/

相关文章:

php - 电子商务网站 build 需要注意哪些问题?

sql - 对于社交网站(使用 Ruby on Rails 开发)来说,MongoDB 会是一个好主意吗?

algorithm - 不同ElasticSearch相似度算法的简单解释

javascript - 在 JavaScript 中遍历一个对象

Ruby 搜索树示例混淆

java - 找到 3 个整数的最高乘积的最简单实现

php - 哪些 PHP 开源购物车解决方案具有让 Web 开发人员受益的功能?

database - 当生产中有 "sales"更新时,如何保持测试和生产电子商务数据库同步?

database - 高性能网站

ios - 如何在应用程序购买中通过 iOS 使非消耗品可用于多次购买?