benchmark ภาษาอังกฤษเพื่อประเมินวิธีการอธิบายเชิงสาเหตุ
benchmark การวิเคราะห์ความเชื่อมั่นตามความเชื่อมั่นของมนุษย์ (ABSA)
Eldar David Abraham, Karel d'Oosterlink, Amir Feder, Yair Gat, Atticus Geiger, Christopher Potts, Roi Reichart, Zhengxuan Wu 2022. CEBAB: การประเมินผลกระทบเชิงสาเหตุของแนวคิดในโลกแห่งความเป็นจริงเกี่ยวกับพฤติกรรมของโมเดล NLP Ms. , Stanford University, Technion - สถาบันเทคโนโลยีแห่งอิสราเอลและ Ghent University
@unpublished{abraham-etal-2022-cebab,
title={{CEBaB}: Estimating the Causal Effects of Real-World Concepts on {NLP} Model Behavior},
author={Abraham, Eldar David and D'Oosterlinck, Karel and Feder, Amir and Gat, Yair Ori and Geiger, Atticus and Potts, Christopher and Reichart, Roi and Wu, Zhengxuan},
note={arXiv:2205.14140},
url={https://arxiv.org/abs/2205.14140},
year={2022}}
ไฟล์ชุดข้อมูลสามารถดาวน์โหลดได้จาก cebab-v1.1.zip V1.1 ของเราแตกต่างจาก v1.0 เฉพาะใน V1.1 นั้นมี ID ที่ไม่ซ้ำกันที่เหมาะสมตัวอย่างของเราและแก้ไขข้อผิดพลาดที่นำไปสู่ ID ที่ไม่ใช่ unique ในเวอร์ชันก่อนหน้า ไม่มีการเปลี่ยนแปลงในสาขาวิกฤตอื่น ๆ
โปรดทราบว่าเราขอแนะนำให้คุณใช้ไลบรารีชุดข้อมูล HuggingFace เพื่อใช้ชุดข้อมูลของเรา ดูด้านล่างสำหรับการโหลดข้อมูล 1 เชิงเส้น
ชุดข้อมูลประกอบด้วย train_exclusive/train_inclusive/dev/test splits:
train_exclusive.jsontrain_inclusive.jsontrain_observational.jsondev.jsontest.json แผ่นข้อมูลสำหรับชุดข้อมูลของเรา:
Cebab ได้รับการดูแลเป็นหลักโดยใช้ไลบรารีชุดข้อมูล HuggingFace:
"""
Make sure you install the Datasets library using:
pip install datasets
"""
from datasets import load_dataset
CEBaB = load_dataset ( "CEBaB/CEBaB" ) ฟังก์ชั่นนี้สามารถใช้ในการโหลดชุดย่อยของไฟล์ RAW *.json :
import json
def load_split ( splitname ):
with open ( splitname ) as f :
data = json . load ( f )
return data {
'id' : str in format dddddd_dddddd as the concatenation of original_id and edit_id ,
'original_id' : str in format dddddd ,
'edit_id' : str in format dddddd ,
'is_original' : bool ,
'edit_goal' : str ( one of "Negative" , "Positive" , "unknown" ) or None if is_original ,
'edit_type' : str ( one of "noise" , "service" , "ambiance" , "food" ),
'edit_worker' : str or None if is_original ,
'description' : str ,
'review_majority' : str ( one of "1" , "2" , "3" , "4" , "5" , "no majority" ),
'review_label_distribution' : dict ( str to int ),
'review_workers' : dict ( str to str ),
'food_aspect_majority' : str ( one of "Negative" , "Positive" , "unknown" , "no majority" ),
'ambiance_aspect_majority' : str ( one of "Negative" , "Positive" , "unknown" , "no majority" ),
'service_aspect_majority' : str ( one of "Negative" , "Positive" , "unknown" , "no majority" ),
'noise_aspect_majority' : str ( one of "Negative" , "Positive" , "unknown" , "no majority" ),
'food_aspect_label_distribution' : dict ( str to int ),
'ambiance_aspect_label_distribution' : dict ( str to int ),
'service_aspect_label_distribution' : dict ( str to int ),
'noise_aspect_label_distribution' : dict ( str to int ),
'food_aspect_validation_workers' : dict ( str to str ),
'ambiance_aspect_validation_workers' : dict ( str to str ),
'service_aspect_validation_workers' : dict ( str to str ),
'noise_aspect_validation_workers' : dict ( str to str ),
'opentable_metadata' : {
"restaurant_id" : int ,
"restaurant_name" : str ,
"cuisine" : str ,
"price_tier" : str ,
"dining_style" : str ,
"dress_code" : str ,
"parking" : str ,
"region" : str ,
"rating_ambiance" : int ,
"rating_food" : int ,
"rating_noise" : int ,
"rating_service" : int ,
"rating_overall" : int
}
}รายละเอียด:
'id' : ตัวระบุที่ไม่ซ้ำกันตัวอย่างนี้ (การรวมกันของ ID สองรายการที่แสดงด้านล่าง)'original_id' : ตัวระบุที่ไม่ซ้ำกันของประโยคดั้งเดิมสำหรับตัวอย่างที่แก้ไข'edit_id' : ตัวระบุที่ไม่ซ้ำกันของประโยคที่แก้ไข'is_original' : ระบุว่าประโยคนี้เป็นการแก้ไขหรือไม่'edit_goal' : ฉลากเป้าหมายสำหรับการแก้ไขหากเป็นตัวอย่างที่แก้ไขแล้ว None'edit_type' : แง่มุมในการแก้ไขหรือติดฉลากด้วยความเชื่อมั่นหากเป็นตัวอย่างที่แก้ไขแล้ว None'edit_worker' : MTURK ID ที่ไม่ระบุชื่อของคนงานที่เขียน 'description' สิ่งเหล่านี้มาจากตระกูล ID เดียวกันกับที่ใช้ใน 'aspect_validation_workers''description' : ข้อความตัวอย่าง'review_majority' : ฉลากระดับรีวิวสำหรับการแก้ไขที่เลือกโดยอย่างน้อยสามในห้าคนงานถ้ามีอย่างอื่น no majority'review_label_distribution' : การกระจายการจัดอันดับระดับรีวิวจากงานตรวจสอบความถูกต้องของ MTURK'review_workers' : การตอบสนองส่วนบุคคลสำหรับการให้คะแนนระดับรีวิวจาก Annotators คีย์เป็นรายการของ MTURK ID ที่ไม่ระบุชื่อซึ่งใช้อย่างสม่ำเสมอตลอดชุดข้อมูล'*_aspect_majority' : ฉลากระดับภาพสำหรับการแก้ไขที่เลือกโดยอย่างน้อยสามในห้าคนงานถ้ามีอย่างใดอย่างหนึ่ง no majority'*_aspect_label_distribution' : การกระจายการจัดอันดับระดับภาพจากงานตรวจสอบ MTURK'*_aspect_label_workers' : การตอบสนองของแต่ละบุคคลสำหรับการให้คะแนนระดับรีวิวจาก Annotators คีย์เป็นรายการของ MTURK ID ที่ไม่ระบุชื่อซึ่งใช้อย่างสม่ำเสมอตลอดชุดข้อมูล'opentable_metadata' : ข้อมูลเมตาสำหรับการตรวจสอบนี่คือตัวอย่างหนึ่ง
{
"id" : "000000_000000" ,
"original_id" : "000000" ,
"edit_id" : "000000" ,
"is_original" : true ,
"edit_goal" : null ,
"edit_type" : null ,
"edit_worker" : null ,
"description" : "Overbooked and didnot honor reservation time,put on wait list with walk INS" ,
"review_majority" : "1" ,
"review_label_distribution" : {
"1" : 4 ,
"2" : 1
},
"review_workers" : {
"w244" : "1" ,
"w120" : "2" ,
"w197" : "1" ,
"w7" : "1" ,
"w132" : "1"
},
"food_aspect_majority" : "" ,
"ambiance_aspect_majority" : "" ,
"service_aspect_majority" : "Negative" ,
"noise_aspect_majority" : "unknown" ,
"food_aspect_label_distribution" : "" ,
"ambiance_aspect_label_distribution" : "" ,
"service_aspect_label_distribution" : {
"Negative" : 5
},
"noise_aspect_label_distribution" : {
"unknown" : 4 ,
"Negative" : 1
},
"food_aspect_validation_workers" : "" ,
"ambiance_aspect_validation_workers" : "" ,
"service_aspect_validation_workers" : {
"w148" : "Negative" ,
"w120" : "Negative" ,
"w83" : "Negative" ,
"w35" : "Negative" ,
"w70" : "Negative"
},
"noise_aspect_validation_workers" : {
"w27" : "unknown" ,
"w23" : "unknown" ,
"w81" : "Negative" ,
"w103" : "unknown" ,
"w9" : "unknown"
},
"opentable_metadata" : {
"restaurant_id" : 6513 ,
"restaurant_name" : "Molino's Ristorante" ,
"cuisine" : "italian" ,
"price_tier" : "low" ,
"dining_style" : "Casual Elegant" ,
"dress_code" : "Smart Casual" ,
"parking" : "Private Lot" ,
"region" : "south" ,
"rating_ambiance" : 1 ,
"rating_food" : 3 ,
"rating_noise" : 2 ,
"rating_service" : 2 ,
"rating_overall" : 2
}
}เราโฮสต์รหัสการวิเคราะห์ของเราที่รหัสของเรา
ส่วนนี้มีลีดเดอร์บอร์ดสำหรับคะแนนที่ดีที่สุดที่ได้รับบนเซบาบเป็นงานการจำแนกความเชื่อมั่นห้าระดับ หากต้องการเพิ่มคะแนนโปรดพิจารณาคำขอดึง
| สถาปัตยกรรมแบบจำลอง | ตัวชี้วัด | ประมาณ | S-learner | inlp |
|---|---|---|---|---|
| เบิร์ต | L2 | 0.81 (± 0.01) | 0.74 (± 0.02) | 0.80 (± 0.02) |
| เบิร์ต | COS | 0.61 (± 0.01) | 0.63 (± 0.01) | 0.59 (± 0.03) |
| เบิร์ต | normdiff | 0.44 (± 0.01) | 0.54 (± 0.02) | 0.73 (± 0.02) |
| โรเบอร์ต้า | L2 | 0.83 (± 0.01) | 0.78 (± 0.01) | 0.84 (± 0.01) |
| โรเบอร์ต้า | COS | 0.60 (± 0.01) | 0.64 (± 0.01) | 0.58 (± 0.01) |
| โรเบอร์ต้า | normdiff | 0.45 (± 0.00) | 0.59 (± 0.01) | 0.81 (± 0.01) |
| GPT-2 | L2 | 0.72 (± 0.02) | 0.60 (± 0.02) | 0.72 (± 0.01) |
| GPT-2 | COS | 0.59 (± 0.01) | 0.59 (± 0.01) | 1.00 (± 0.00) |
| GPT-2 | normdiff | 0.41 (± 0.01) | 0.40 (± 0.01) | 0.58 (± 0.03) |
| LSTM | L2 | 0.86 (± 0.01) | 0.73 (± 0.01) | 0.79 (± 0.01) |
| LSTM | COS | 0.64 (± 0.01) | 0.64 (± 0.01) | 0.74 (± 0.02) |
| LSTM | normdiff | 0.50 (± 0.01) | 0.53 (± 0.01) | 0.60 (± 0.01) |
CEBAB มีใบอนุญาต Creative Commons Attribution 4.0 International