Viral Marketing

Here’s another example from

  • G. Van den Broeck, I. Thon, M. van Otterlo and L. De Raedt. DTProbLog: A decision-theoretic probabilistic Prolog. Proceedings of the twenty-fourth AAAI conference on artificial intelligence, pp. 1217 - 1222, AAAI Press, 2010. PDF
  • In the viral marketing problem, a social network structure consisting of trusts(a, b) relations is given. A person may buy the product if s/he is marketed or someone his/her trusts has bought the product. The reward of marketing one person is -2. If somebody buys the product, a reward of 5 is gained. A DTProbLog problem for this problem is shown below.

    % Decisions ?::marketed(P) :- person(P). utility(buys(P), 8) :- person(P). utility(marketed(P), -2) :- person(P). % Probabilistic facts 0.2 :: buy_from_marketing(_). 0.3 :: buy_from_trust(_,_). % Background knowledge person(bernd). person(ingo). person(theo). person(angelika). trusts(X,Y) :- trusts_directed(X,Y). trusts(X,Y) :- trusts_directed(Y,X). trusts_directed(bernd,ingo). trusts_directed(ingo,theo). trusts_directed(theo,angelika). buys(X) :- marketed(X), buy_from_marketing(X). buys(X) :- trusts(X,Y), buy_from_trust(X,Y), buys(Y).

    To try this example, press the ‘Evaluate’ button. The decision set that leads to the highest expected reward is to market ingo and theo. The resulting score, i.e. expected reward, is 1.1584. You can modify the rewards in the program to see how the optimal decision changes. For example, by increasing the reward of buys/1 from 8 to 10, the optimal desicion will be to market everybody with score 3.324672.