Consider a setting in which a company wants to increase the visibility of its products by using social influence techniques to reach possible customers. Then, it has to match the reached customers with some of its products.
We assume that a round corresponds to one day. The network of customers is organized in a graph defined by:
- a set of 30 customers;
- a set of edges connecting the customers. These edges describe the influence among the customers; we assume that only ~10% (50) of the possible edges are present;
- each edge has a possibly different activation probability;
- for each user, two binary features can be observed by the company, call them F1 and F2;
- customers can be of three different classes according to these features, call them C1, C2, C3;
- these three classes differ in terms of the reward of matching the customer with the items;
- at each round, the company can choose three seeds to activate in the social network.
Moreover, the company has three classes of products D1, D2, and D3, and:
- for every product of type Dj and class of customer Ci, specify a reward distribution F(Dj, Ci) of matching the product “j” with the customer “i”;
- each reward distribution is a Gaussian distribution;
- for every product of type Dj, specify the number of units of this product; each type of product has 3 units;
- each unit of product can be matched only with one customer, and each customer can be matched with a single product.
The time horizon to use in the experiments is 365 rounds long. At each round, after the set of seeds is selected, the information cascade and matching is repeated sufficiently many times.
Consider the case in which the company can directly observe the type of each customer Ci. The objective function to maximize is defined as the sum of the expected reward of the couples of matched customers to products. In particular, for each influenced customer of type Ci matched with a product of type Di the reward is the expected value of the distribution F(Dj, Ci).
The optimization algorithm that we suggest is divided into two steps:
- Find the node that, when it is a seed, gives the highest marginal increase in the number of total activated nodes. Then, fix it as a seed and find the one among the remaining ones that, when added, gives the highest increase. Repeat the same procedure also for the last node. This is called the greedy algorithm. When looking for the nodes that give the highest increase in the number of total activated nodes, simulate the social influence process by using a Monte Carlo technique with a sufficiently large number of runs.
- When the optimal set of seeds is fixed, compute the value of the optimum by simulating multiple runs of the social influence process and, for each set of activated nodes, compute the value of the optimal matching. The value of the optimum is computed as an expectation over these runs. If there are more activated users than products, define an opportune number of dummy items such that the total number of items equals the number of users. There is no reward when a user of any class is matched with a dummy item. The case in which there are more items than users can be handled in a similar way.
- Fix regret computation (cap inst regret at 0)
- Compute optimal on influence clairvoyant +matching clairvoyant
- Try different parameters for step 5