Presentation at Sonderborg Research Seminar

Invited by Alexander Brem, Kerstin Fischer, and Oliver Niebuhr I (Maurits) presented at the University of Southern Denmark yesterday in the MCI Seminar series (For more info see here).

The slides of my talk can be found here.

SDU is a great place, with cool research projects taking place. It was great to be there!

Thanks.

Wrapping up “Modern Statistical Methods for HCI”

Together with Professor Judy Robertson I (Maurits) am finishing the editing of a new book called: “Modern Statistical Methods for HCI”. The book will be published by Springer, and will be out before the end of the year.

I have just been editing the final Chapters of the book, and really love the contributions by all the authors. For an overview of the content see: http://software.mauritskaptein.com/StatisticsForHCI/content-overview/.

We will keep you updated as more info on the book becomes available.

Symposium on Customized Communication

We are hosting, together with Paul Ketelaar from Communication Science of the Radboud University, a symposium on customized communication. We will focus on research and applications of customized communication (with speakers from industry and from academia), and we will cover both (technological) methods to customize communication as well as the psychological aspects of customized communication.

For more info see: http://www.ru.nl/customized-communication

AI at a Webscale

For a new course that I am teaching together with Thomas Rost we just launched a practical assignment which involves, for all the groups participating in the course, solving an online contextual bandit problem. For more info see: http://krabspin.uci.ru.nl.

Once we get some results in we will share some of the solutions that the students came up with!

New project live!

Together with one of the worlds largest financial institutions we are setting up a trial to dynamically determine price elasticity. Here we are actually deploying Streampy (which we temporarily took in-house / private on github; however we are planning a new open release soon), regularized (ridge) logistic regression, and Bootstrap Thompson Sampling to balance exploration and exploitation. We are quite excited to have this running in a live environment after doing all the simulation work!

Work on STREAMPY progressing

With amazing help from Jules Kruijswijk we are heavily progressing with “STREAMPY” (not sure we are sticking to the name though). STREAMPY is a python module that allows easy setup of a REST server (using Tornado & Redis) to solve MAB problems in data-streams. Basically, the REST server provides two calls:

  1. BASE_URL/getAction.json: A call to retrieve the suggested action given a context and the current parameters.
  2. BASE_URL/setReward.json: A call to store the rewards and update parameters.

The code executed at each call (e.g., Thompson sampling to decide on an action, and an online update of a Bayesian probit model when rewards come in) is fully customizable. Hence, the module aims to make it very easy to test different policies to solve contextual MAB problems and evaluate them in (web) applications.

We are proud to have the first working examples going, but are putting in a bunch of effort to test the whole thing, and provide some interfaces.

More soon 😉

Paper accepted at IJEC

We are happy to announce that our paper: “The Danger of Engagement: Behavioral Observations of Online Community Activity and Service Spending in the Online Gaming Context” was accepted for publication at the International Journal of Electronic Commerce. The paper is a collaboration with Prof. Dr. Petri Parvinen, and Essi Poyry. The work also benefitted from the initial analysis and thought provided by Jerry Lindholm.

Lock in Feedback for Sequential Experiments

We have recently uploaded to arXiv a paper on Lock in Feedback for sequential experiments. Here is the abstract:

“We often encounter situations in which an experimenter wants to find, by sequential experimentation, $x_{max} = \arg\max_{x} f(x)$, where $f(x)$ is a (possibly unknown) function of a well controllable variable $x$. Taking inspiration from physics and engineering, we have designed a new method to address this problem. In this paper, we first introduce the method in continuous time, and then present two algorithms for use in sequential experiments. Through a series of simulation studies, we show that the method is effective for finding maxima of unknown functions by experimentation, even when the maximum of the functions drifts or when the signal to noise ratio is low.”

The paper presents a novel solution for the above problem. Here is a simple [R] function to makes this work (ugly using the for loop, but this is closest to the representation in the paper):


lif.2 <- function(x0, A, T, gamma, FUN, TT, sigma=0, plot=FALSE, ...){
# Logging:
xy <- matrix(NA, nrow=TT, ncol=3)

# params:
yws <- rep(NA, T)
w <- (2*pi)/T

# the loop:
for(t in 1:TT){
xt <- x0 + A*cos(w*t)
yt <- FUN(xt, sigma=sigma)
yws <- push(yws, yt * cos(w*t))

if(t > T){
yw <- sum(yws) / T
x0 <- x0 + (gamma / T) * yw
}
xy[t,] <- c(xt, x0, yt)
}

# A plot of x0 if needed
if(plot){
plot(xy[,2], type="l", ...)
}

# Return the data
return(xy)
}

For the paper see: http://arxiv.org/pdf/1502.00598.pdf