dataesr/scientific-paragraphs-categorization huggingface dataset:
(2018a) ). It can be used to display complex data and provide new ways to interact with it in a 3D environment that supports operator reasoning as well as collaboration. In order to assess the interest of Immersive Analytics for cybersecurity, we present a user study on IA for investigation of alerts raised on datasets with periodic events. In section 2, we present the context of application of our representation. In section 3 we present the related work on interactive and immersive visualizations for periodic signals, as periodic signals can be indicators of malware activity in a network  (Huynh et al. (2017) ). In section 4, we present the concept of Cybercopters swarm: inspired by the work from Delcombel et al. (Delcombel et al. (2021) ) that uses a helix metaphor to display periodic signals, we implemented multiple Cybercopters to represent different sensors of a dataset at the same time.
We present the evaluation protocol in section 4. 3, we compared our representation to a 2D visualization based on the state of the art with an alarms triage task on a real-world data set. Then we present our results in section 5, we assessed the effectiveness, efficiency, usability, induced flow and workload of each prototype with cybersecurity laymen, in addition we collected feedback from domain specialists. In sections 6 and 7, we discuss these results and open to future work. Our first contribution to the field of Visual Analytics is to demonstrate that the third dimension makes it possible to display and link together attributes of a dataset more efficiently than 2D visualizations. Indeed, the third dimension helps correlate several representations in the 3D space by grouping them spatially along a common axis in ways that 2D visualizations cannot offer.
However, there are few solutions to detect attacks on OT networks, one way to do it is to use already available data, such as those from physical sensors. Indeed, suspicious behavior could indicate an attack (although they can also be due to a mechanical malfunction). To detect these suspicious values, Lofhink et al. (Lohfink et al. (2020) ) describe a visualization system based on spirals visualizations to sort alarms raised by matrix profiles on the sensors of a water treatment plant. We choose this use case to evaluate the usefulness of a swarm of Cybercopters as the sensors display periodic signals. In order to provide insights on this use case, we describe in this section the dataset used, how the anomaly detection algorithm works, and what are the requirements of the visual sorting system.
Secure Water Treatment (SWaT) dataset The SWaT 1  dataset  (Inoue et al. (2017) ) describes the data (IT and OT) of a testbed of a water treatment plant over a period of eleven days. The water plant operates normally during the first seven days of the dataset. On the eighth day, cyberattacks are launched against the plant and may perturb its operations. We are interested in the data coming from sensors and actuators of the physical part of the dataset (Table  1 ). They cover the 6 processes of the plant, from the water arrival to its distribution in the circuit. The 51 sensors and actuators display periodic behavior that can be modified during attacks that aim to disrupt the nominal operation of the plant. For this experiment, we took 10000 seconds (2 h 50 min) of the nominal operation of the plant and 27700 points (7 h 40 min) of the operation under attacks (Figure  2 ).
Matrix Profiles Matrix profiles are pattern discovery and anomalies detection algorithms. They don't require to be trained before being used on a dataset and have few parameters to tune  (Anton et al. (2019) ). Matrix profiles algorithms create time windows for each time step of the dataset. Each window is compared to the others, resulting in a similarity score between 0 (the pattern present in this window can be found somewhere else) and 1 (the pattern present in this window is the only one that exists in the dataset). The closer to 1 is the score of an event, the more likely this event is an anomaly  (Yeh et al. (2017) ). (Lohfink et al. (2020) ) define three categories of score: type I were an anomaly is unlikely, type II where the the score is higher than normal but not enough to be considered as a sure anomaly, and type III where the score is high enough to be a sure anomaly.
RELATED WORK To highlight periodic signals in the displayed data, some people use classical representations such as histograms to display the network activity over time, such as Gove et al. (Gove and Deason (2019) ). Others use specific representations for this task, such as spirals or concentric circles. Interactive spirals are used to highlight patterns within a temporal dataset  (Tominski and Schumann (2008) ), using the Gestalt laws of similarity and continuity, the position of data of similar values is used to link them together in groups  (Leslie Reiser and Koffka (1935) ). These spirals have been used in cybersecurity by  (Lohfink et al. (2020) ) to represent SWaT data. Foresti  (Foresti et al. (2006) ),  Legg (Legg (2015) ), and Ngoc Anh  Huynh (Anh Huynh et al. (2016) ) use concentric circles to highlight periodic patterns within a dataset.
Second prototype : Cybercopters Swarm The first difference between the two prototypes is the use of a virtual reality headset for our second prototype. The motion head parallax helps to better understand 3D visualizations. Moreover, this prototype actually displays alerts raised on a dataset from the cybersecurity community. In Cybercopters Swarms case, the third dimension is used to represent the time axis on which alerts and periodicity breaks can be compared. This way, the operator can easily identify the probable zone of the breaks without modifying the view of the data, and can then search for the breaks in the data without looking at the alert. If one break is found, the operator can verify that it is at the level of the alert. Indeed, one data point of a helix stays at the same height whatever the period chosen, hence the vertical axis of a helix can be used as a temporal axis.
SWaT representation using multiple helices We used the Cybercopters swarm to visualize the SWaT data, each sensor and actuator has periodic patterns and can be associated with alerts. For this purpose, each sensor is represented by a Cybercopter with its own period. We chose to represent 10h30min of the dataset based on  (Lohfink et al. (2020) ), more data points could be displayed if needed. The period of the helix can be set by the user with the slider on the side of the helix, or by pointing the helix with their hand while using the joystick of a controller, to allow them to be more precise without moving their arms. By moving a hand through the helix, the user can obtain the timestamp of this point to determine the time of an event. Each sensor has its own legend that depends on these values over the entire data range.
(2021b). We used the fact that other representations can be linked spatially to a helix to represent the timeline of alerts raised on each sensor next to them (Figure  3 ). When an alert is raised on a sensor, the alert bar turns red at the corresponding timestamps. Thus, the user can link a suspicious break in patterns to the alert at the same height. This representation ensures that we don't use the same visual dimension to represent two different dimensions of the data: the sensor values and the alert values. Thus, the user always has access to both information, and the thickness of the line can be used to represent another dimension of the dataset. To develop Cybercopter, we did two pilot experiments where participants helped us improve the usability and interface of our prototype. The size of the helices and their distance from the user were the preferred ones by these early participants, they also suggested adding a rotation feature to the helix without rotating the alert bar.
2D prototype Figure  5. The five sensors of set1 represented with the 2D interface. In the middle, the timeline, which enables users to select the period displayed. At the bottom, the interface to answer alerts. We can see a false negative on MV303 as there is a clear break within the periodic pattern. A click on the red button at the center of the spiral of DPIT301 highlights the two alerts present in the selected time frame. When they are not highlighted, the thickness of the spirals indicates the presence of alerts. The 2D interface is separated in two parts: the timeline that displays alerts on the dataset and allows selecting the window of time displayed on the spirals plots (Figure  5 ). Alerts displayed on the timeline represent alerts on all the sensors. Inspired by  (Lohfink et al.
(2020) ), the time window covers a maximum of 14,400 values, equivalent to 4 hours of logs. This maximum can be changed if needed. To navigate through the dataset, users can drag either side of the slider or simply click on their area of interest to relocate the time window. The period of each spiral can be changed separately with the slider to the right and the mouse wheel for more precise changes. To simplify the understanding of the interface by the participants, the color of the data points follows a heatmap according to the sensor value over the whole dataset and not just the window. Legends are always visible and display the minimum and maximum values of each sensor. For the experiment, we represented only five sensors at a time, but 10 can be displayed at the same time on the same window without causing performance issues.
Data collection At the beginning of the experiment, each participant answered a demographic questionnaire. In this study, the independent variable is the method of representation of the data. This factor has two possible values in this context: 2D with spirals (2DSpirals) and 3D with helix (3DHelix). Dependent variables are split in two categories: quantitative objective measures (response times to alerts and percentage of good answers) and qualitative subjective measures coming from questionnaires (System Usability Scale (Brooke (2020)), Raw NASA TLX  (Hart and Staveland (1988) ), and SHORT Flow State Scale  (Jackson et al. (2010) )).
Protocol Presentation The participant was given an explanation of the context of the experiment, the data used and their periodic characteristics. For the participant to understand why there are false alerts, s/he was given a brief description of how the matrix profile algorithm works and of its limitations. The participant learned that his/her goal during the experiment is to process alerts and to distinguish true from false positives. The participant was free to ask any questions s/he felt were necessary to clarify any doubts. S/he then signed the informed consent form. Tutorial: the participant performed a training session in order to become familiar with the first interface used. For both interfaces, the same data are used. The participant was first asked to find a periodic pattern in a simple dataset.
The first 4 alerts had similar patterns and were used to compare completion time. It was not possible to find the fifth alert for set 1 in other sensors of the dataset. However, we kept it to verify that participants were able to detect an alert causing a surge instead of a break in periodic patterns (Figure  6 ). Set 1 alerts where all raised on DPIT301 and set 2 alerts where all raised on MV301 (Figure  6 ). Participants answered to alerts by pressing the button True Positive or False Positive of the corresponding alert. The timer began when they pressed the start button on top of the 5 alerts. Participants were asked to answer as fast as possible while providing necessary explanation to their result in order to simulate a situation where a SOC operator has to answer fast but correctly to alerts.
We compared our prototype with a state-of-the-art prototype based on spiral representations through a user study with cybersecurity laymen and experts. Participants answered to alerts raised by a pattern recognition algorithm on data of sensors and actuators of an OT dataset. Our results show that the helical representation is as efficient as the spiral-based one, and in some complex cases, that it reduces the response time of the participants, which validates our approach. In addition, participants are more confident and more in a flow-like state with the immersive solution, despite the higher physical demands. For our future work, we will seek to improve our helical prototype based on feedback from participants and experts, particularly the interactions with the time period of the representations as well as tools to filter data intuitively.
ACKNOWLEDGMENTS This work was supported by the industrial chair Cybersecurity for Critical Networked Infrastructures (https://CyberCNI. fr) with support of the  FEDER development fund of the Brittany region. This work was supported by  French government  funding managed by the  National Research Agency  under the  Investments for the Future program  ( PIA ) grant  ANR-21-ESRE-0030  (CONTINUUM).
Program sensitivity measures the distance between the outputs of a program when run on two related inputs. This notion, which plays a key role in areas such as data privacy and optimization, has been the focus of several program analysis techniques introduced in recent years. Among the most successful ones, we can highlight type systems inspired by linear logic, as pioneered by Reed and Pierce in the Fuzz programming language. In Fuzz, each type is equipped with its own distance, and sensitivity analysis boils down to type checking. In particular, Fuzz features two product types, corresponding to two different notions of distance: the tensor product combines the distances of each component by adding them, while the with product takes their maximum. In this work, we show that these products can be generalized to arbitrary L p distances, metrics that are often used in privacy and optimization.
Introduction When developing a data-driven application, we often need to analyze its sensitivity, or robustness, a measure of how its outputs can be affected by varying its inputs. For example, to analyze the privacy guarantees of a program, we might consider what happens when we include the data of one individual in its inputs  [11]. When analyzing the stability of a machine-learning algorithm, we might consider what happens when we modify one sample in the training set  [7]. Such applications have spurred the development of several techniques to reason about program sensitivity  [23, 9]. One successful approach is based on linearlike  [14]  type systems, as pioneered in Reed and Pierce's Fuzz language  [23]. The basic idea behind Fuzz is to use typing judgments to track the sensitivity of a program with respect to each variable.
Distances for Differential Privacy Among many applications, sensitivity is a useful notion because it provides a convenient language for analyzing the privacy guarantees of algorithms-specifically, in the framework of differential privacy  [11]. Differential privacy is a technique for protecting the privacy of individuals in a database by blurring the results of a query to the database with random noise. The noise is calibrated so that each individual has a small influence on the probability of observing each outcome (while ideally guaranteeing that the result of the query is still useful). Formally, suppose that we have some set of databases db equipped with a metric. This metric roughly measures how many rows differ between two databases, though the exact definition can vary. Let f : db → DX be a randomized database query, which maps a database to a discrete probability distribution over the set of outcomes X.
We say that f is ϵ-differentially private if it is an ϵ-sensitive function from db to DX, where the set of distributions DX is equipped with the following distance, sometimes known as the max divergence: MD X (µ 1 , µ 2 ) = x∈X ln µ 1 (x) µ 2 (x). (2) (Here, we stipulate that ln |0/0| = 0 and ln |p/0| = ln |0/p| = ∞ for p ̸ = 0. ) To understand this definition, suppose that D 1 and D 2 are two databases at distance 1-for instance, because they differ with respect to the data of a single individual. If f is ϵ-differentially private, the above definition implies that f (D 1 ) and f (D 2 ) are at most ϵ apart. When ϵ is large, the probabilities of each outcome in the result distributions can vary widely. This means that, by simply observing one output of f , we might be able to guess with good confidence which of the databases D 1 or D 2 was used to produce that output.
Conversely, if ϵ is small, it is hard to tell which database was used because the output probabilities will be close. For this reason, it is common to view ϵ as a privacy loss-the larger it is, the more privacy we are giving up to reveal the output of f. Besides providing a strong privacy guarantee, this formulation of closeness for distributions provides two important properties. First, we can compose differentially private algorithms without ruining their privacy guarantee. Note that DX forms a monad, where the return and bind operations are given as follows: η(x) = y → 1 if x = y 0 otherwise (3) f † (µ) = y → x∈X µ(x) • f (x)(y). (4) Intuitively, the return operation produces a deterministic distribution, whereas bind samples an element x from µ and computes f (x). When composing differentially private algorithms, their privacy loss can be soundly added together: Theorem 1.
Suppose that f : db → DX is ϵ 1 -differentially private and that g : db → X → DY is such that the mapping δ → g(δ)(x) is ϵ 2 -differentially private for every x. Then the composite h : db → DY defined as h(δ) = g(δ) † (f (δ)) is (ϵ 1 + ϵ 2 )-differentially private. The other reason why the privacy metric is useful is that it supports many building blocks for differential privacy. Of particular interest is the Laplace mechanism, which blurs a numeric result with noise drawn from the two-sided Laplace distribution. If x ∈ R, let L(x) be the distribution with density 4  y → 1 2 e -|x-y|. Theorem 2. The mechanism L is a non-expansive function of type R → DR. 5 Thus, to define an ϵ-differentially private numeric query on a database, it suffices to define an ϵ-sensitive, deterministic numeric query, and then blur its result with Laplace noise.
Sensitivity as a Resource Because differential privacy is a sensitivity property, techniques for analyzing the sensitivity of programs can also be used to analyze their privacy guarantees. One particularly successful approach in this space is rooted in type systems inspired by linear logic, as pioneered by Reed and Pierce in the Fuzz programming language  [16, 23]. At its core, Fuzz is just a type system for tracking sensitivity. Typing judgments are similar to common functional programming languages, but variable declarations are of the form x i : ri τ i : x 1 : r1 τ 1 ,. , x n : rn τ n ⊢ e : σ. The annotations r i ∈ R ≥0 ∞ are sensitivity indices, whose purpose is to track the effect that changes to the program input can have on its output: if we have two substitutions γ and γ ′ for the variables x i , then the metric preservation property of the Fuzz type system guarantees that d(e[γ/⃗ x], e[γ ′ /⃗ x]) ≤ i r i • d(γ(x i ), γ ′ (x i )), (5) where the metrics d are computed based on the type of each expression and value.
This means that we can bound the distance on the results of the two runs of e by adding up the distances of the inputs scaled by their corresponding sensitivities. When this bound is finite, the definition of the metrics guarantees that the two runs have the same termination behavior. When r i = ∞, the above inequality provides no guarantees if the value of x i varies. Fuzz includes data types commonly found in functional programming languages, such as numbers, products, tagged unions, recursive types and functions. The typing rules of the language explain how the sensitivities of each variable must be updated to compute each operation. The simplest typing rule says that, in order to use a variable, its declared sensitivity must be greater than 1: r ≥ 1 Γ, x : r τ, ∆ ⊢ x : τ As a more interesting example, to construct a pair (e 1 , e 2 ), the following rule says that we need to add the sensitivities of the corresponding contexts: Γ 1 ⊢ e 1 : τ 1 Γ 2 ⊢ e 2 : τ 2 Γ 1 + Γ 2 ⊢ (e 1 , e 2 ) : τ 1 ⊗ τ 2.
More precisely, suppose that (X i ) 1≤i≤n are metric spaces. The following defines a metric on X = X 1 ×• • •×X n : d p (⃗ x, ⃗ x ′ ) = ||(d X1 (x 1 , x ′ 1 ),. , d Xn (x n , x ′ n ))|| p Proposition 3. For 1 ≤ p ≤ q we have, for ⃗ x, ⃗ x ′ ∈ X 1 × • • • × X n : d q (⃗ x, ⃗ x ′ ) ≤ d p (⃗ x, ⃗ x ′ ) ≤ n 1 p -1 q d q (⃗ x, ⃗ x ′ ) (9) d 2 (⃗ x, ⃗ x ′ ) ≤ d 1 (⃗ x, ⃗ x ′ ) ≤ √ n d 2 (⃗ x, ⃗ x ′ ) ( 10 ) 3 Bunched Fuzz: Programming with L p Distances As we discussed earlier, the L 1 distance is not the only distance on products with useful applications. In the context of differential privacy, for example, the L 2 distance is used to measure the sensitivity of queries when employing the Gaussian mechanism, a method for private data release that sanitizes data by adding Gaussian noise instead of Laplacian noise.
In this case, we could then convert from τ ⊗ p σ ⊸ q ρ to τ ⊗ q σ ⊸ q ρ (note the variance), and then curry to obtain a function of type τ ⊸ q σ ⊸ q ρ. Precise sensitivity for functions with multiple arguments Another useful feature of Bunched Fuzz is that its contraction rule allows us to split sensitivities more accurately than if we used the contraction rule that is derivable in the original Fuzz. Concretely, suppose that we have a program λp. let (x, y) = p in f (x, y) + g(x, y), where f and g have types f : (! 2 R) ⊗ 2 R ⊸ R and g : R ⊗ 2 (! 2 R) ⊸ R, and where we have elided the wrapping and unwrapping of ! types, for simplicity. Let us sketch how this program is typed in Bunched Fuzz. Addition belongs to R ⊗ 1 R ⊸ R, so by Proposition 6 it can also be given the type ! √ 2 (R ⊗ 2 R) ⊸ R.
By symmetry, we also know that d X (x ′ , y ′ )-d X (x, y) ≤ d 1 ((x, y), (x ′ , y ′ )). Combined, these two facts show d R (d X (x, y), d X (x ′ , y ′ )) = |d X (x, y) -d X (x ′ , y ′ )| ≤ d 1 ((x, y), (x ′ , y ′ )), which proves that d X is indeed a non-expansive function. Calibrating noise to L p distance Hardt and Talwar  [17]  have proposed a generalization of the Laplace mechanism, called the K-norm mechanism, to create a differentially private variant of a database query f : db → R d. The difference is that the amount of noise added is calibrated to the sensitivity of f measured with the K norm, as opposed to the L 1 distance used in the original Laplace mechanism. When K corresponds to the L p norm, we will call this the L p -mechanism, following Awan and Slavkovich  [1]. Definition 2.
Given f : db → R d with L p sensitivity s and ϵ > 0, the L pmechanism is a mechanism that, given a database D ∈ db, returns a probability distribution over y ∈ R d with density given by: )dy This mechanism returns with high probability (which depends on ϵ and on the sensitivity s) a vector y ∈ R d which is close to f (D) in L p distance. Such a mechanism can be easily integrated in Bunched Fuzz through a primitive: LpMech : ! ∞ (! s dB ⊸ ⊗ d p R) ⊸ ! ϵ dB ⊸ ⃝ P (⊗ d p R) (Strictly speaking, we would need some discretized version of the above distribution to incorporate the mechanism in Bunched Fuzz, but we'll ignore this issue in what follows. ) The fact that LpMech satisfies ϵ-differential privacy follows from the fact that this mechanism is an instance of the exponential mechanism  [18] , a basic building block of differential privacy.