Bubble Trouble

「信息茧房」现象的视觉化设计

项目介绍

我们使用的数字产品和服务几乎都嵌入了个性化推荐算法。这些算法可以根据我们的偏好方便地展示信息,但也可能缩窄视野,强化偏见,导致「信息茧房」(Filter bubble)。这个项目旨在探索如何将「信息茧房」视觉化,希望用互动的形式让大家了解其运作机制,反思自身、媒体与推荐算法的关系。

🏆 此项目曾被 Italian Festival of Complexity 2021 引用

👾 Open-soured on Github

Side Project / 2019

担任角色

设计师,开发者

关键词

数据可视化,D3.js

如何解释「信息茧房」?

Eli Pariser 称推荐算法「为每个人创造了一个独特的信息宇宙...从根本上改变了我们与信息互动的方式」。在前期调研中,我分析了一些已有的项目并展示给身边的朋友。我发现这些项目大多基于学术研究,需要海量数据处理。而对于非学术背景的用户,「信息茧房」这一概念显得既熟悉又陌生。她们更关心日常的信息获取如何受到影响。破解信息茧房的第一步是明白它的存在和原理。

因此,我决定借用 Nicky Case 的探索式解释(Explorable Explanations),用互动游戏化的方式来解释这一复杂的理论,给非学术的受众提供动态、趣味的体验。

破解信息茧房的第一步是明白它的存在和原理

故事版与纸质原型

明确目标后,我开始制作体验脚本和纸质原型来测试我的想法。在一次次迭代中,我发现难以将所有细节都解释清楚,而连贯的模型和简单的规则有利于强化受众的理解。最后我采用了契合「filter bubble」隐喻的气泡视图代表用户的信息茧房,不同颜色的点代表信息类型。

Storyboard of filter bubble explanation
#1 用户点击信息后,将阅读过的信息移出
#2 模拟「相关推荐」,增加两个同类型的信息
#3 最后,随机移出一个其他类型的信息,保持总信息量不变

互动编程与视觉设计

在设计与开发阶段,我以阅读新闻为例建立了故事线,并选择了黑色背景和亮色的搭配来呼应 Eli Pariser 关于「信息宇宙」的描述,以颜色区分不同的信息类型。为了达到互动效果,我摸索着学习了 D3.js,一个针对数据可视化的 JavaScript 库,逐渐实现增减节点、模拟引力,最终达到自动运行「长时间接触信息推荐」的模拟效果。

Counting the types
Adding and removing nodes
Automatic calculating

最终设计 Demo

以下是此项目的最终 Demo,欢迎在电脑端试玩或在新标签页打开

总结

这是我的第一个 side project,和工作项目有着明显差别。在项目里最大的挑战是如何找到一个易于理解但模型,并将其转化成故事脚本和可实现的原型。这绝非易事,但通过不断访谈、试错、快速制作原型,我还是找到了满意的方向。探索过程中学到的编程知识,让我有自信尝试更多数据可视化和创意编程的设计。持续寻找效果和能力之间的平衡也锻炼了我对项目中不确定性的把控力。

非常感谢 Massimo Conte 在 Italian Festival of Complexity 2021 中介绍此项目,希望能为研究设计、媒体、科技的社区带来一点贡献。

Bubble Trouble

Visualizing how the filter bubble works

Overview

Nearly every products and service we used had embed personalized algorithm. It selectively presents information based on our preferences and therefore creates “filter bubble”. his experimental project is an exploration to visualize the “filter bubble”, to get us thinking about our relationship with the online media and algorithms.

🏆 Cited project in Italian Festival of Complexity 2021

👾 Open-soured on Github

Side Project / 2019

My Role

Designer, Developer

Keywords

Data visualization, D3.js

How to explain the “Filter Bubble”?

Eli Pariser, descripes that personalized algorithms create “a unique universe of information for each of us … which fundamentally alters the way we encounter ideas and information.” My first instinct was to design a product to solve it, but only to find some existing conceptual projects that require massive data processing. However, although those projects are amazingly inspiring, I found them rather incomprehensible for most people around me, especially without explaining what a filter bubble is.

Therefore, I decided to appropriate Nicky Case's Explorable Explanations to interactively explain this complex theory, providing a dynamic experience for a non-academic audience.

The first step to burst the filter bubble is to know how it works.

Storyboard and Paper Prototype

After clarifying the goal, I started creating scripts and paper prototypes to test my ideas. In one iteration, I found that it was difficult to explain all the details, and that a coherent model and simple rules would help reinforce the audience's understanding. I finally adopted a bubble view that fits the "filter bubble" metaphor to represent the user's information cocoon, with colourful dots representing information types.

Storyboard of filter bubble explanation
#1 Move info out after user’s click
#2 Add two info of the same type to simulate “recommendation”
#3 Randomly remove an info of other type to maintain the total number

Coding and visual design

I built the storyline with an example of reading news, and combine a black background with bright colours to echo Eli Pariser's description of the 'information universe'. To achieve the interactive effect, I learned D3.js, a JavaScript library for data visualisation, to implement nodes, gravity, and eventually running the automated simulation of “mere exposure effects”.

Counting the types
Adding and removing nodes
Automatic calculating

Final Design Demo

Here’s the project demo. Feel free to play around on desktop end or open in new tape

What I learned...

This was my first side project and it was significantly different from a work! The biggest challenge was to find a comprehensible model and translated it into a script and a realizable prototype, which is not an easy task. I was luck to find a satisfactory direction via interviews, making mistakes and rapid prototyping. The coding knowledge I learned gave me the confidence to try more data visualisation and creative coding designs. I also learned how to manage uncertainty from finding a balance between creativity and realisation

Many thanks to Massimo Conte for presenting this project at the Italian Festival of Complexity 2021. I hope this could make a small contribution to the research community of design, media and technology.