Duzhengyi commited on
Commit
732c7a6
·
1 Parent(s): 3311798

Add failure mode analysis

Browse files
Files changed (1) hide show
  1. analysis/failure_mode_analysis.md +300 -0
analysis/failure_mode_analysis.md ADDED
@@ -0,0 +1,300 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Failure Mode Analysis: Custom Argument Role Evaluation
2
+
3
+ ## Evaluation Setup
4
+
5
+ We evaluated the trained argument role classifier on a custom 48-example test
6
+ set. Each example contains:
7
+
8
+ - `parent_text`: the previous comment in the discussion, empty for root claims
9
+ - `current_text`: the comment being classified
10
+ - `gold_label`: the manually assigned argument role
11
+ - `rationale`: a short explanation for the label
12
+ - `probe_type`: the linguistic or discourse pattern being tested
13
+
14
+ The test set is balanced across the four labels:
15
+
16
+ | Label | Count |
17
+ |---|---:|
18
+ | claim | 12 |
19
+ | counter_claim | 12 |
20
+ | premise | 12 |
21
+ | unknown | 12 |
22
+
23
+ Most examples are controlled debate probes written to test clear argument-role
24
+ distinctions. Eight additional examples use more informal forum-style language
25
+ about vibe coding and creativity, drawn from real online discussion.
26
+
27
+ The evaluated model is the trained RoBERTa classifier used by the group demo.
28
+
29
+
30
+ ## Quantitative Results
31
+
32
+ | Metric | Score |
33
+ |---|---:|
34
+ | Accuracy | 0.6875 |
35
+ | Macro-F1 | 0.6774 |
36
+
37
+ Per-class scores:
38
+
39
+ | Label | Precision | Recall | F1 | Support |
40
+ |---|---:|---:|---:|---:|
41
+ | claim | 1.0000 | 0.5000 | 0.6667 | 12 |
42
+ | counter_claim | 0.7500 | 1.0000 | 0.8571 | 12 |
43
+ | premise | 0.7143 | 0.8333 | 0.7692 | 12 |
44
+ | unknown | 0.4167 | 0.4167 | 0.4167 | 12 |
45
+
46
+ Confusion matrix (rows = gold label, columns = predicted label):
47
+
48
+ | Gold \ Predicted | claim | counter_claim | premise | unknown |
49
+ |---|---:|---:|---:|---:|
50
+ | claim | 6 | 0 | 0 | 6 |
51
+ | counter_claim | 0 | 12 | 0 | 0 |
52
+ | premise | 0 | 1 | 10 | 1 |
53
+ | unknown | 0 | 3 | 4 | 5 |
54
+
55
+ ## Main Findings
56
+
57
+ The model performs best on `counter_claim` (F1 0.86) and `premise` (F1 0.77).
58
+ This is encouraging for the debate-mining use case because these two labels
59
+ capture the most common reply-level argument moves in online discussions.
60
+
61
+ The weakest label is `unknown` (F1 0.42): many questions, acknowledgements,
62
+ hedging replies, and vague comments are still interpreted as argumentative
63
+ content. Root and reply-level `claim` detection is the second weakest area
64
+ (recall 0.50): the model misses half of all genuine claims, almost always
65
+ defaulting to `unknown` when the claim lacks a clear argumentative parent or
66
+ reply context.
67
+
68
+ ## Summary of Documented Errors
69
+
70
+ | Example | Gold | Predicted | Probe type |
71
+ |---|---|---|---|
72
+ | eval_001 | claim | unknown | root_claim |
73
+ | eval_004 | unknown | premise | evidence_request |
74
+ | eval_005 | claim | unknown | root_claim |
75
+ | eval_016 | unknown | premise | agreement_only |
76
+ | eval_020 | unknown | counter_claim | vague_reply |
77
+ | eval_025 | claim | unknown | root_claim |
78
+ | eval_028 | unknown | counter_claim | question |
79
+ | eval_032 | unknown | premise | uncertain_reply |
80
+ | eval_037 | claim | unknown | root_claim |
81
+ | eval_039 | premise | counter_claim | example_support |
82
+ | eval_041 | claim | unknown | root_claim |
83
+ | eval_042 | claim | unknown | reply_claim |
84
+ | eval_046 | premise | unknown | supporting_explanation |
85
+ | eval_047 | unknown | premise | clarification_question |
86
+
87
+ ## Failure Modes
88
+
89
+ ### 1. Root Claims Without Parent Context Classified as Unknown
90
+
91
+ Six of twelve gold `claim` examples were predicted as `unknown`. Five of these
92
+ were root-level claims with an empty `parent_text`, and one was a reply-level
93
+ claim introduced within an ongoing thread.
94
+
95
+ Representative example:
96
+
97
+ | Field | Value |
98
+ |---|---|
99
+ | Example | `eval_001` |
100
+ | Parent | *(empty)* |
101
+ | Current | Universities should allow students to use generative AI tools in coursework. |
102
+ | Gold | claim |
103
+ | Predicted | unknown |
104
+
105
+ Other misclassified root-level claims: `eval_005`, `eval_025`, `eval_037`, `eval_041`.
106
+
107
+ **Hypothesis:** The training data (IBM Debater) frames every argument as a
108
+ reply to a topic motion. When the parent field is empty the model receives no
109
+ contrastive signal and may interpret a standalone sentence as low-information
110
+ content rather than a debate-opening position. Root claims require a different
111
+ representational cue — the absence of a parent — but the model was not
112
+ explicitly trained to treat that absence as a signal.
113
+
114
+ ---
115
+
116
+ ### 2. Reply-Level Claims Confused with Unknown
117
+
118
+ The model predicts `claim` almost exclusively at root level. When a genuine
119
+ claim appears as a reply inside a thread it is often misclassified as `unknown`.
120
+
121
+ Representative example:
122
+
123
+ | Field | Value |
124
+ |---|---|
125
+ | Example | `eval_042` |
126
+ | Parent | I think we will also see more and more designs of these apps/experiences become increasingly similar. |
127
+ | Current | Creativity shouldn't be sought in coming up with unique UIs, but in the functionality. |
128
+ | Gold | claim |
129
+ | Predicted | unknown |
130
+
131
+ **Hypothesis:** The model has learned to associate `claim` with the absence of
132
+ a parent. A comment that introduces a new debatable position mid-thread — a
133
+ reply claim — lacks that surface cue. Without it, the model falls back to
134
+ `unknown`, which is the most common non-argumentative label in online
135
+ discussion data.
136
+
137
+ ---
138
+
139
+ ### 3. Clarifying and Evidence-Request Questions Over-Interpreted as Arguments
140
+
141
+ Some questions that request evidence or clarification were classified as
142
+ `premise` or `counter_claim` even though they do not themselves advance an
143
+ argument.
144
+
145
+ Representative examples:
146
+
147
+ | Field | Value |
148
+ |---|---|
149
+ | Example | `eval_004` |
150
+ | Parent | Detection systems have produced false positives against students who did not use AI. |
151
+ | Current | Do you have evidence for that claim? |
152
+ | Gold | unknown |
153
+ | Predicted | premise |
154
+
155
+ | Field | Value |
156
+ |---|---|
157
+ | Example | `eval_028` |
158
+ | Parent | Several pilot programs reported stable productivity and higher employee satisfaction. |
159
+ | Current | Which pilot programs are you referring to? |
160
+ | Gold | unknown |
161
+ | Predicted | counter_claim |
162
+
163
+ **Hypothesis:** Both questions are topically close to their parent and share
164
+ surface patterns with argumentative replies (they respond to a specific
165
+ factual claim). The model appears to use topical relevance and reactive stance
166
+ as proxies for argumentative role, without reliably distinguishing between
167
+ producing evidence and requesting it. The question mark is insufficient as a
168
+ signal because rhetorical questions and leading questions do appear in genuine
169
+ `counter_claim` and `premise` turns.
170
+
171
+ ---
172
+
173
+ ### 4. Acknowledgements and Agreement Replies Treated as Premises
174
+
175
+ Short agreement-like replies with no new content are sometimes classified as
176
+ `premise`.
177
+
178
+ Representative examples:
179
+
180
+ | Field | Value |
181
+ |---|---|
182
+ | Example | `eval_016` |
183
+ | Parent | They may reduce visible clothing differences, but they do not address deeper income inequality. |
184
+ | Current | Exactly, that is what I meant. |
185
+ | Gold | unknown |
186
+ | Predicted | premise |
187
+
188
+ | Field | Value |
189
+ |---|---|
190
+ | Example | `eval_032` |
191
+ | Parent | A strict ban would also block students from using accessibility tools and translation apps. |
192
+ | Current | Maybe, but I am not sure how that would work in practice. |
193
+ | Gold | unknown |
194
+ | Predicted | premise |
195
+
196
+ **Hypothesis:** The model has learned that supportive and responsive replies
197
+ are typically premises, but it does not require the current text to contain a
198
+ new reason, example, or piece of evidence. Pure acknowledgements ("Exactly")
199
+ and hedging responses ("Maybe, but I am not sure") satisfy the surface
200
+ condition of replying supportively without actually contributing argumentative
201
+ substance.
202
+
203
+ ---
204
+
205
+ ### 5. Hedging and Vague Qualifications Mistaken for Counter-Claims
206
+
207
+ Short uncertain replies that qualify or partially push back were sometimes
208
+ predicted as `counter_claim`.
209
+
210
+ Representative example:
211
+
212
+ | Field | Value |
213
+ |---|---|
214
+ | Example | `eval_020` |
215
+ | Parent | Building new nuclear plants takes too long to help with urgent emissions targets. |
216
+ | Current | That depends on the country and the project. |
217
+ | Gold | unknown |
218
+ | Predicted | counter_claim |
219
+
220
+ **Hypothesis:** Hedging phrases such as "that depends" carry a weak
221
+ contrastive signal that the model treats as disagreement. Without a threshold
222
+ for argumentative strength, the classifier cannot distinguish a genuine
223
+ counter-claim — one that asserts an opposing position — from a vague
224
+ qualification that leaves the original claim largely intact.
225
+
226
+ ---
227
+
228
+ ### 6. Evidence for a Claim Confused with a Counter-Claim
229
+
230
+ One premise was predicted as `counter_claim` when the supporting example could
231
+ be read as introducing a new dimension to the debate.
232
+
233
+ Representative example:
234
+
235
+ | Field | Value |
236
+ |---|---|
237
+ | Example | `eval_039` |
238
+ | Parent | Online anonymity is necessary for free expression. |
239
+ | Current | Whistleblowers may only speak publicly if their real identity is protected. |
240
+ | Gold | premise |
241
+ | Predicted | counter_claim |
242
+
243
+ **Hypothesis:** The current comment introduces a concrete case (whistleblower
244
+ protection) that the model may read as a new argumentative move rather than
245
+ evidence for the parent claim. When a premise is specific and concrete it can
246
+ resemble a counter-claim if the model does not correctly anchor the supporting
247
+ relation. The error may also reflect ambiguity in the label itself: one could
248
+ argue the comment shifts the frame slightly while still supporting anonymity.
249
+
250
+ ---
251
+
252
+ ### 7. Informal and Speculative Forum Language Is Harder to Classify
253
+
254
+ The vibe coding examples use longer, more speculative discussion language drawn
255
+ from actual online forums. Premises in this subset that develop a point
256
+ indirectly were more likely to be misclassified.
257
+
258
+ Representative example:
259
+
260
+ | Field | Value |
261
+ |---|---|
262
+ | Example | `eval_046` |
263
+ | Parent | I think that is actually the opposite: vibe coding drastically reduces the level of expertise needed to prototype and implement ideas. The creativity will come from people using the tools as they try new and varied things. |
264
+ | Current | Right now people are still figuring out how to use these tools, but the more people get comfortable, the more they will figure out how to guide towards unique and interesting results. |
265
+ | Gold | premise |
266
+ | Predicted | unknown |
267
+
268
+ Also affected: `eval_047` — a clarification question in the same thread
269
+ predicted as `premise`.
270
+
271
+ **Hypothesis:** The training data (IBM Debater) consists of clean, argument-
272
+ style text written for a formal debate corpus. Informal forum replies are
273
+ longer, hedge more frequently, and develop a supporting point through
274
+ implication rather than explicit statement. The model may not have enough
275
+ exposure to this register to distinguish a speculative supporting explanation
276
+ from a non-argumentative comment.
277
+
278
+ ---
279
+
280
+ ## Implications
281
+
282
+ The classifier is usable as a prototype for surfacing argumentative structure
283
+ in online debates. It is strongest when a reply clearly attacks or supports a
284
+ parent comment using language close to formal argument style. The main
285
+ limitation is boundary detection: the model struggles to separate genuine
286
+ argument components from conversational moves that look superficially
287
+ argumentative (questions, hedges, acknowledgements).
288
+
289
+ Two structural weaknesses stand out. First, the model conflates the absence of
290
+ a parent with the absence of argumentative content, making root and reply-level
291
+ claims the hardest category. Second, the `unknown` class is under-served: the
292
+ model has learned that topical relevance to a parent implies an argumentative
293
+ role, and it does not reliably fall back to `unknown` when the current comment
294
+ fails to contribute substance.
295
+
296
+ Practical improvements would include augmenting the training set with more
297
+ `unknown` examples covering questions, acknowledgements, hedges, and meta-
298
+ comments; experimenting with an explicit signal for empty parent context; and
299
+ using informal forum data (Reddit, CMV) alongside IBM Debater to reduce the
300
+ register gap between training and real online discussions.