From f58804ebfc5a41f7b26b96575a5115e74b1cc56a Mon Sep 17 00:00:00 2001 From: Daniel Rosel Date: Sun, 14 Dec 2025 11:17:41 +0100 Subject: [PATCH] forgot about tables and graphs --- paper/src/chapters/03-methodology.tex | 1 + paper/src/chapters/feature_table.tex | 65 +++++++++++++++ paper/src/chapters/loop_figure.tex | 112 ++++++++++++++++++++++++++ 3 files changed, 178 insertions(+) create mode 100644 paper/src/chapters/feature_table.tex create mode 100644 paper/src/chapters/loop_figure.tex diff --git a/paper/src/chapters/03-methodology.tex b/paper/src/chapters/03-methodology.tex index ca1ec99..fc5d8f5 100644 --- a/paper/src/chapters/03-methodology.tex +++ b/paper/src/chapters/03-methodology.tex @@ -8,6 +8,7 @@ We consider a business across time during which we have an evolving vector $p_t + \subsection{Cost of Information Framework} Mathematical demonstration and validation of the COI and citation backed evidence, and framework overview + show harm to user via other cost distortions. Maybe split into 3.2.1 (COI Theory) and 3.2.2 (Framework Design) diff --git a/paper/src/chapters/feature_table.tex b/paper/src/chapters/feature_table.tex new file mode 100644 index 0000000..302f2db --- /dev/null +++ b/paper/src/chapters/feature_table.tex @@ -0,0 +1,65 @@ +\begin{table}[ht] +\centering +\small +\resizebox{\columnwidth}{!}{% +\begin{tabular}{p{4.5cm}p{1.5cm}p{6cm}} +\hline +\textbf{Feature} & \textbf{Type} & \textbf{Description} \\ +\hline +\multicolumn{3}{l}{\textit{Session Identifiers}} \\ +sessionId & object & Unique identifier for user session \\ +experimentId & object & Experiment run identifier \\ +\hline +\multicolumn{3}{l}{\textit{Temporal Features}} \\ +session\_duration\_sec & float & Total session duration in seconds \\ +avg\_time\_between\_events & float & Mean inter-event time \\ +std\_time\_between\_events & float & Standard deviation of inter-event times \\ +min\_time\_between\_events & float & Minimum time between consecutive events \\ +session\_start\_hour & int & Hour of day when session started \\ +\hline +\multicolumn{3}{l}{\textit{Interaction Metrics}} \\ +total\_interactions & int & Count of all user interactions \\ +total\_events & int & Total number of tracked events \\ +interaction\_velocity & float & Rate of interactions per time unit \\ +max\_velocity\_5min & int & Peak interaction count in any 5-minute window \\ +\hline +\multicolumn{3}{l}{\textit{Navigation Behavior}} \\ +unique\_pages & int & Number of distinct pages visited \\ +page\_views & int & Total page view events \\ +\hline +\multicolumn{3}{l}{\textit{Product Engagement}} \\ +item\_views & int & Number of product detail views \\ +unique\_products\_viewed & int & Count of distinct products examined \\ +product\_view\_depth & int & Repeat views of same products \\ +\hline +\multicolumn{3}{l}{\textit{Conversion Funnel}} \\ +cart\_adds & int & Number of items added to cart \\ +purchases & int & Completed transactions \\ +cart\_to\_view\_ratio & float & Ratio of cart additions to item views \\ +conversion\_rate & float & Purchase to view conversion \\ +\hline +\multicolumn{3}{l}{\textit{Interaction Quality}} \\ +hover\_events & int & Mouse hover event count \\ +hover\_intensity & float & Hover events per interaction \\ +\hline +\multicolumn{3}{l}{\textit{Price Behavior}} \\ +avg\_price\_seen & float & Mean price across viewed products \\ +min\_price\_seen & float & Lowest price encountered \\ +max\_price\_seen & float & Highest price encountered \\ +price\_range & float & Difference between max and min prices seen \\ +\hline +\multicolumn{3}{l}{\textit{Technical Fingerprinting}} \\ +is\_headless & bool & Headless browser detection flag \\ +is\_automation & bool & Automation framework detection flag \\ +browser\_family & object & Browser type classification \\ +\hline +\multicolumn{3}{l}{\textit{Experimental Labels}} \\ +is\_agent & bool & Ground truth agent classification \\ +xp\_human\_only & bool & Human-only experiment indicator \\ +xp\_market\_mode & object & Market context (hotel/airline) \\ +\hline +\end{tabular}% +} +\caption{Feature matrix schema for session-level behavioral classification (32 features total).} +\label{tab:features} +\end{table} diff --git a/paper/src/chapters/loop_figure.tex b/paper/src/chapters/loop_figure.tex new file mode 100644 index 0000000..9e167e2 --- /dev/null +++ b/paper/src/chapters/loop_figure.tex @@ -0,0 +1,112 @@ +\definecolor{mygreenfill}{RGB}{169, 234, 186} +\definecolor{mygreenborder}{RGB}{29, 145, 61} +\definecolor{mybluefill}{RGB}{204, 222, 255} +\definecolor{myblueborder}{RGB}{66, 106, 189} +\definecolor{mygray}{RGB}{150, 150, 150} + + + +\begin{tikzpicture}[ + node distance=2cm, + % Style for Green Nodes + greenbox/.style={ + rectangle, + draw=mygreenborder, + fill=mygreenfill, + line width=1.2pt, + align=center, + minimum height=1cm, + font=\sffamily + }, + % Style for Blue Nodes + bluebox/.style={ + rectangle, + draw=myblueborder, + fill=mybluefill, + line width=1.2pt, + align=center, + minimum height=1cm, + font=\sffamily + }, + % Style for Arrows + myarrow/.style={ + ->, + >={Stealth[length=3mm, width=2mm]}, + draw=black!80, + line width=1.2pt, + rounded corners=5pt + }, + % Style for Background Dashed Circles + dashedloop/.style={ + dashed, + draw=mygray, + line width=1pt + } +] + + % --- Coordinate Layout --- + % Defining a grid relative to the center + + % Left Loop (Green) Nodes + \node[greenbox, minimum width=3.5cm] (commerce) at (-3.5, 2) {Commerce Experiment}; + \node[greenbox, minimum width=1.5cm] (raw) at (-6.5, 0) {Raw\\Logs}; + \node[greenbox, minimum width=1.5cm] (features) at (-4, -2.5) {Features}; + \node[greenbox, minimum width=2.5cm] (classification) at (-1, -0.5) {Classification\\Training A/H}; + + % Right Loop (Blue) Nodes + \node[bluebox, minimum width=2.5cm] (trainedpricing) at (2.5, 2) {Trained Pricing}; + \node[bluebox, minimum width=2.5cm] (policy) at (5.5, 0) {Trained Pricing\\Policy}; + \node[bluebox, minimum width=2.5cm] (rlgym) at (2.5, -2.2) {RL Gym\\Training}; + + % --- Background Dashed Loops --- + \begin{scope}[on background layer] + % Left Loop Circle + \draw[dashedloop] (-3.5, 0) ellipse (3.5cm and 2.8cm); + % Right Loop Circle + \draw[dashedloop] (3.5, 0) ellipse (3.5cm and 2.8cm); + \end{scope} + + % --- Arrows: Loop One (Green) --- + % Commerce -> Raw Logs + \draw[myarrow] (commerce.west) to[out=180, in=90] (raw.north); + + % Raw Logs -> Features + \draw[myarrow] (raw.south) to[out=270, in=180] (features.west); + + % Features -> Classification + \draw[myarrow] (features.east) to[out=0, in=250] (classification.south); + + % Classification -> Commerce (Closing the loop) + \draw[myarrow] (classification.north) to[out=110, in=0] (commerce.east); + + % --- Arrows: Loop Two (Blue) --- + % Classification (Green) -> RL Gym (Blue) - Crossing over + \draw[myarrow] (classification.east) to[out=0, in=180] (rlgym.west); + + % RL Gym -> Policy + \draw[myarrow] (rlgym.east) to[out=0, in=270] (policy.south); + + % Policy -> Trained Pricing + \draw[myarrow] (policy.north) to[out=90, in=0] (trainedpricing.east); + + % Trained Pricing -> Commerce (Crossing back) + \draw[myarrow] (trainedpricing.west) -- node[above, font=\sffamily\small, yshift=2pt] {New Pricing} (commerce.east); + + % --- Text Labels --- + + % Loop One Label + \node[font=\sffamily, align=center] at (-3.8, 0) {Loop One:\\Data \textit{(Online)}}; + + % Loop Two Label + \node[font=\sffamily, align=center] at (3.5, 0) {Loop Two:\\Defense Gym \textit{(Offline)}}; + + % Bottom Legend + \node[font=\sffamily\small] (taskA) at (-4, -4) {Dynamic Pricing Task A}; + \node[font=\sffamily\small] (taskB) at (4, -4) {Dynamic Pricing Task B}; + \node[font=\sffamily\small] (indep) at (0, -4) {Independent}; + + % Arrows for bottom legend + \draw[->, >=Stealth, thick, darkgray] (indep.west) -- (taskA.east); + \draw[->, >=Stealth, thick, darkgray] (indep.east) -- (taskB.west); + +\end{tikzpicture}