Archive for the ‘Our projects’ Category

------------------------------------

SocioPatterns at the 25C3 conference

Monday, December 29th, 2008

Until December 30th we will be deploying a new SocioPatterns experiment at the 25th Chaos Communication Congress in Berlin (25C3). This is the first large-scale deployment of our platform for sensing social interactions. We added to the visualization interface several ways of focusing on particular subsets of the real-time and cumulative contact networks. In line with the conference’s action line “nothing to hide”, we are making the live contact network available on the web, at the following URL: https://ssl.openamd.org/openamd/viz.php .

We thank the following persons for their work and support: Milosch Meriac, Brita Meriac, and aestetix, Janette Lehmann, Aurora Mazzone, Eric, Marco Perosa, Tomasz Rybak. We acknowledge the contribution of the OpenBeacon project and the OpenAMD project. We also thank the organizers of 25C3 for hosting our work at such a stimulating event!

Contact Patterns part 2

Friday, December 5th, 2008

The following movie visualizes the social interactions between the participants of a recent workshop at Villa Gualino. The visualized data is obtained through a distributed sensing platform. This platform uses active RFID technology to detect “contacts” during which participants are both near each other and are facing each other. If such configuration is sustained for longer than a few seconds, then this generally indicates that some form of social interaction is taking place. Next to the actual contacts, the platform also infers where these contacts take place. An earlier post in this blog provides more details on the technical set-up and the objectives of this project. Note however that we here use the peer-to-peer contact detection scheme detailed in this subsequent post. More details about this are provided in a manuscript available at arxiv.org/abs/0811.4170.

[movie]
Alternative versions: YouTube, Vimeo or QuickTime/MP4.

What this movie shows is a time-lapsed replay of some sections of a real-time visualization that was publicly displayed during the workshop, shown in the picture below. In this visualization, the RFID stations are represented as immobile labeled marks laid out in an oval configuration. Their labels name the areas in which the respective stations are located. There are two stations in sala A in which the workshop presentations took place, three in the bar next to sala A, two in the cafetaria in which lunch was served, and one in the lobby. The size of the round part of the station marks is proportional to the summed strengths of the signals received from beacons.

The publicly displayed visualization setup during the workshop in Oct 2008

The publicly displayed visualization. The left screen shows the instantaneous contact network, the right screen shows the cumulative network, which will be discussed in more detail in a future post.

The mobile circlets represent the beacons, which are the small RFID devices worn by the participants. Their size is proportional to their strength, which is the sum of the weights of the contacts they are involved in. Their situation in the visualization is controlled by a force-directed layout algorithm.

A first set of spring forces are applied between beacons and those stations that are within their radio signal range. Their length and tension is proportional to the strength of the respective signals. Stronger signals, which reflect closeness, are translated in shorter spring lengths and increased tensions. The relative location of the participants with respect to the stations is thus (flexibly) mapped to the abstract geography of the visualization. As the signal strengths change when the participants move around with their beacons, the mapping of their marks will be effected accordingly. A clear example of this is the “migration” of the bulk of the beacon marks towards the bar stations marks during the coffee breaks.

A second set of spring forces is applied between beacons that are in contact with each other. These contacts are furthermore explicitly represented as edges. The thickness and shade of these edges, and their spring length and tension, are all proportional to the weight of the contact.

The layout system also involves drag forces and n-body repelling forces. Unlike the spring forces, these do not reflect actual information, but solely serve to optimize the layout. The drag forces are applied to stabilize the spring driven movements, while the repelling forces, which are applied between all beacons marks, prevent overlap.

Comparing this new movie with the one in the first post clearly shows that the new peer-to-peer scheme produces much more precise contact data. The previous system only used proximity as a proxy for social interactions. However, when for example lots of people are seated in a conference room, then many of them are near each other, even though there is no real social interaction going on. In the old movie this is clearly visible. It shows a highly connected network, almost as if everybody is interacting with everybody else at the same time. While perhaps visually pleasing, it is not a truthful representation of reality.

In the new movie on the other hand, there are significantly fewer contact edges. This is because participants now also need to face each other for a contact to be detected. These contacts are therefore a much more reliable proxy of actual social interactions. This seems to be confirmed by the fact that there are now less contacts during the presentations in Sala A than during the breaks, as one would expect, or at least hope for. This particular observation is, by the way, discussed in more detail in the previous post.

Social interactions at a conference

Friday, November 7th, 2008

High-resolution localization of active RFID devices by means of triangulation is a non-trivial task. However, a more coarse-grained localization, by room for example, is easily feasible.

There were three main ‘rooms’ at the “Facing the Challenge of Infectious Diseases” conference: the conference room, the bar and the cafeteria. The following figure shows how many participants were in which of these three locations over the course of one day of the conference. It clearly shows the attendance in the conference room during the sessions (two in the morning and two in the afternoon) and the shifts to the bar during the coffee breaks and the cafeteria during breakfast and lunch. The social event taking place in the bar after 7.30 pm is also visible.

number of attendees in conference rooms

Correlating this location data with the contact data can offer a more interesting picture than the simple attendance figures for seminars or social events. One approach is to aggregate the contact data over discrete time intervals. For each interval we can then calculate measures such as the average number of contacts of each participant, or their average duration. When plotted over time, these measures provide insights into the temporal evolution of the social dynamics of the group as a whole. The following figure is an example of this. In it we compare the average number of contacts per participant, denoted <k>, measured over 20 seconds time windows, with the number of participants that are present in the conference room. Strikingly, the number of contacts per participant is low when the attendance in the conference room is high. A strong increase of the average number of contacts per participant is observed during each break. This clearly shows how most social interactions occur during the coffee and lunch breaks, while a lower level of interaction takes place during the talks: people talking to their immediate neighbor, typically.

Another more detailed approach is to gather for each interval the average number of distinct contact pairs, contact triangles, and contact cliques with four or more participants. In the following figure we again plot these measures over the course of one day. We see that triangles and cliques of 4 individuals almost exclusively occur during the breaks. A fluctuating number of pairs is observed during the session, corresponding most probably to participants turning towards their neighbors to chat or comment. Peaks are observed at the beginning and end of each session and in fact of each talk, when participants have indeed more activity. The small number of triangles observed during the sessions correspond to small groups of participants remaining in the coffee break area for discussions even after the beginning of the session.

That social interactions take place during breaks is certainly not a surprise nor a novelty: these results are clearly expected. Our aim here is to emphasize how our experimental setup is able to characterize face-to-face interaction and not simply spatial proximity. A simpler setup based on physical proximity alone would show a large number of cliques (or even a unique large clique) during the sessions, in which participants are indeed physically close. Here, in contrast, we are able to detect meaningful social contacts, and also discriminate between pair interactions or discussions in small groups of 3, 4 or 5 persons.

Contact duration

Tuesday, October 21st, 2008

We just completed a first experiment with our new contact-detection firmware for the OpenBeacon platform. The experiment was hosted at a conference on “Facing the Challenge of Infectious Diseases” and involved about 50 attendees over four days. The new firmware proved to be as much reliable in a real-world setting as it appeared to be in our preliminary experiments. In the next posts, we will report on different aspects of this new experiment.

As a first example of hidden patterns in the dynamics of social contacts, we display below the probability of observing a face-to-face contact of a given duration. The probability P(Dt) of observing a contact of duration Dt is shown as a function of the contact duration Dt. The probability distribution was computed using a few hours of data. The interval of time we analyzed was divided into slices of 20 seconds, and for each of these slices the contact graph of the attendees was computed and used to assess when a new contact was established, continued, or broken. As a consequence, the contact durations we measure are multiples of the interval used for temporal coarse-graining (i.e., contacts last 20 seconds, 40 s, 60 s, …)

Remarkably, this simple analysis exposes a clear pattern of social contact: the duration of face-to-face contacts is power-law distributed (straight line on a log-log plot) with an exponent close to -2 (black line). This behavior holds over different periods of time, and is robust across different groups of individuals.

Qualitatively, the figure above shows something obvious: there are comparatively few long-lasting contacts and a multitude of brief contacts. It is remarkable, however, that such a clear-cut pattern emerges when observing a few tens of persons over a few hours. Moreover, the specific value of the scaling exponent (-2) shows that the duration of social contact is scale-free, i.e., there is no “typical” duration for contacts. While one can always compute an average duration of contacts over a finite sample of data, the scaling properties are such that the computed average will increase without limit on increasing the length of the experiment.

We close by noticing that we are not the first to observe this regularity for the duration of social contacts (see for example the work by Scherrer et al. on “Description and simulation of dynamic mobility networks”). Our measurements, however, achieve higher spatial and temporal accuracy than previous studies, and reliably select face-to-face interactions at close range, which are a very good proxy for social interaction.

New firmware for contact detection

Thursday, September 4th, 2008

Detecting contacts between persons, in a reliable and accurate way, is a crucial requirement to achieve the scientific goals of SocioPatterns. In a variety of contexts, spatial proximity is a good proxy for social interaction. Spatial proximity of persons wearing an active RFID tag can be inferred by tracking the location of RFID tags, and by using the position information to decide whether two tags are nearby. Locating OpenBeacon tags in space, however, requires several receiving station and is subject to uncontrollable errors that limit both the spatial and temporal accuracy of contact detection. Because of this, we decided to move from contact inference to direct contact detection.

We rewrote the firmware of the OpenBeacon tags specifically targeting contact detection. We are now able to detect contacts between persons with a very good spatial (~ 1 m) and temporal (~ 10 s) resolution. We achieve this by operating the RFID devices in a bi-directional fashion, over multiple radio channels. Tags no longer act as simple beacons, emitting signals for the receiving infrastructure. They exchange messages in a peer-to-peer fashion, to sense their neighborhood and assess contact with other tags. The contact events detected by the RFID network are then relayed to the monitoring infrastructure. On suitably tuning the system parameters, we can easily discriminate who is talking with whom, in a small crowded room, with just one receiving station.

As an example, the figure below displays the results of a simple table-top contact detection experiment. We arranged 5 tags in different configurations, over three desks in a small room (5×3 m). Only one receiving station was used to collect the packets sent by the RFID tags. For each spatial arrangement of tags (described below each panel), the detected contact network is shown.

We are currently performing experiments with small groups of people (20-50) at the ISI Foundation and at the ENS in Lyon, to tune the system parameters and evaluate the performance of this new contact detection scheme. We will soon move to large-scale experiments.

We would like to point out that the open nature of the OpenBeacon project was crucial in allowing us to reprogram the tags. We also acknowledge help from Milosch Meriac.

contact patterns

Exposing contact patterns

Friday, June 13th, 2008

SocioPatterns.org aims to shed light on hidden patterns in social dynamics. A case in point is the study of contact patterns, which deals with such patterns in contacts among people. To date, little is known about these patterns. Although models can help in learning more, measuring real-world dynamics is indispensable for obtaining a complete picture. However, doing so manually is both laborious and intrusive, and tends to produce unreliable data - yet until recently it was the sole option we had. Fortunately, emerging technologies such as active RFID devices offer previously unfeasible means for collecting this much needed data. While collecting data is the first step, making sense of the resulting large amounts of data is the next. This is where insightful visualizations come into play, as these can expose otherwise invisible features and regularities.

The following movie gives an impression of a first contact patterns experiment and visualization we have been working on. It is followed by a detailed description.

[movie]
Alternative versions: YouTube, Vimeo or QuickTime.

Experiment set-up

We have been working on an experimental set-up in which we aim to measure the contact patterns of a group of people. To do so we asked volunteers to wear small tags with integrated active RFID technology, henceforth called the beacons. These beacons continuously broadcast small data packets. These packets are received by a number of stations and relayed through a local network to a server for further processing. The stations are installed in fixed locations in the environment. The beacons and stations we used were created by and obtained from OpenBeacon.org.

Schematic overview of the interactions between the beacons, the stations, and the server.

Schematic overview of the interactions between the beacons, the stations, and the server.

A first medium-sized test deployment of this experimental set-up took place recently (26-29 May, 2008) during the workshop “Sociophysics: status and perspectives” in Villa Gualino, in Turin, Italy. The workshop presentations took place in Sala A, while the participants lingered in the Bar during breaks, and had lunch in the Cafeteria. All three areas were covered by at least four stations each, as shown on the map below.

Map of the placement of the stations in Villa Gualino.

Map of the placement of the stations in Villa Gualino.

The packets from up to 50 beacons were collected continuously for about 75 hours at an overall rate of up to 100 distinct packets per second. In total about 25 million packets were collected, corresponding to about 200 Mb of compressed raw data.

On-line data analysis and visualization server

In addition to recording data for further analysis - whose results will be posted here in the future - we also developed a real-time visualization system to display some aspects of the observed dynamics. Our visualization involves a server component and a client component. The server component processes the beacon packets relayed by the stations. These packets are typically received by multiple stations at varying strengths (measured in terms of packet drop rate.) These reception patterns can be regarded as fingerprints. We can use fingerprint similarity as a proxy for the physical proximity of two beacons, i.e. beacons with similar fingerprints are bound to be close to each other. A related technique is used in the geo-location feature of the Apple iPod Touch and iPhone, or in services like PlaceEngine. In these cases, locations are approximately determined by comparing fingerprints made up by the nearby base stations’ signals against a database of fingerprints for known locations.

Two beacons at different position in the same room, yielding two different fingerprints based on the strengths at which the beacons' packet broadcasts are received by the stations.

Two beacons at different positions in the same room, yielding two different fingerprints based on the strengths at which the beacons’ packets are received by the stations.

In addition to estimating the distances between beacons using the above technique, the server also estimates the distances between beacons and stations. It does so based on the rate at which the stations receive the beacons’ packets. All calculations are performed in real-time over a sliding window of about two minutes. The post-processed data are dispatched to the visualization client at regular intervals, as an XML stream. The on-line data collection and analysis system is entirely coded in Python on top of the Twisted framework and the Numpy library.

Visualization client

The main visualization represents the beacons, the stations, and their relations of proximity as measured by the system. The beacons are shown as simple discs, which are optionally labeled. Two beacons are connected by a link if the system detected that they are close to each other. The length, thickness and transparency of a link are a function of the strength of the link: short, thick and more opaque links represent strong proximity; thin, transparent links indicate weak proximity. The size of the discs representing the beacons depends on the number and proximity of other beacons, and specifically is a function of the sum of link weights to other beacons. The stations are shown as labeled shapes and laid out in a circle that spans the main view. The size of these shapes varies according to the number of beacons that are close to them.

Stations and beacons in the main visualization view.

Stations and beacons in the main visualization view.

While the stations are laid out at fixed positions, the beacons are not. The network of their proximity relations is laid out by using a force-based model. Beacons repel each other, and the link between two beacons acts as a spring pulling them close to each other. The stiffness of the spring increases with the proximity of beacons. Beacons are also pulled towards the stations that see them more often, so that groups of nearby beacons are laid out in the vicinity of the stations that is closest to them.

The result is a first attempt to obtain a rather abstract yet comprehensive visualization of the proximity dynamics. The movie at the top of this post contains a time-lapse playback of the most interesting periods of one day of the workshop.

Visualization client interface

The visualization client is an Adobe Air application developed in Flex. The visualization and physics system use (a mildly modified version of) the flare visualization toolkit.

The application interface involves a visualization window, a control panel and a number of auxiliary windows. The visualization itself can be shown full-screen during presentations. The control panel provides various interfaces to manage the data-sources, the visualization and the physics engine.

The data source is either the server component for real-time visualizations, a simulation for off-line testing, or data files for time-lapse playback. When using a simulation, an additional window is provided in which the simulated stations and beacons are shown. When in time-lapse mode, one can activate the recorder, which saves a bitmap file for each rendered frame. These saved frames were for example used to create the movie at the top of this post.

The complete interface of the visualization client, including the simulation window.

The complete interface of the visualization client, including the simulation window.

Credits

visualisation: Wouter Van den Broeck

data analysis: Ciro Cattuto

music: Maps and Diagrams - Siaptik - Recorded by Tim Martin

experiment set-up: Alain Barrat, Ciro Cattuto, Vittoria Colizza, Daniela Paolotti, Jean-François Pinton, Wouter Van den Broeck, and Alessandro Vespignani

thanks to: Santo Fortunato, ISI administration, Ezio Borzani, Milosch Meriac (openbeacon.org), and the workshop participants

sponsoring institutions: Institute For Scientific Interchange Foundation (Torino, Italy), Laboratoire de Physique de l’École Normale Supérieure de Lyon (Lyon, France)