モデル概要
モデル特徴
モデル能力
使用事例
🚀 WRAPresentations -- Twitterにおける推論と情報駆動型議論マイニングのためのTACOベースの埋め込みモデル
WRAPresentationsは、最先端のsentence-transformersモデルです。768次元の高密度ベクトル空間を活用して、ツイートをReason(理由)、Statement(主張)、Notification(通知)、None(なし)の4つのクラスにマッピングします。この強力なモデルは、Twitter上の議論マイニングに特化しており、Twitterデータで事前学習されたBERTweet-baseアーキテクチャをベースにしています。TACOデータセットでの微調整を通じて、WRAPresentationsはツイート内の推論と情報を効果的にエンコードすることができます。
✨ 主な機能
🔍 クラスの意味論
TACOフレームワークは、Cambridge Dictionaryで定義された議論の2つの重要な要素に基づいています。「推論」を「持っている情報に基づいて行う推測または形成する意見」とエンコードし、「情報」を「人、会社、製品などに関する事実または詳細」と定義を活用しています。
WRAPresentationsは、ある程度まで、これらの重要な要素の意味論をその埋め込み空間に捉えています。
その結果、以下のクラスの意味論も学習しています。推論と情報は、これらの要素を含む異なるクラスに関連付けて集約することができます。
- Statement(主張):「推論」のみが「誰かが公式に言うまたは書くもの、または意見を表明するために行われる行動」として提示される独特なケースを指します。
- Reason(理由):「推論」がツイート内で言及された直接の「情報」(ソース参照や引用など)に基づいている完全な議論を表し、著者の「実際的な事実に基づいて理解しようとし、判断を下そうとする動機」を明らかにします。
- Notification(通知):メディアチャンネルが最新の記事を宣伝するように、「情報」の提供に限定されたツイートを指します。
- None(なし):「推論」も「情報」も提供しないツイートです。
全体として、WRAPresentationsはツイートに対して以下の階層をエンコードします。
🌟 クラスの意味論の埋め込みへの転送
WRAPresentationsの埋め込み空間内で後の分類のためにCLS
トークンを使用したツイートの分布を観察すると、対照学習による事前分類の微調整により、BERTweetの埋め込みと比較して、予想されるクラスセクターがより密集して出現することがわかりました。以下の図に示す通りです。
📦 インストール
💻 sentence-transformersを使用する場合
sentence-transformersをインストールすると、このモデルを簡単に使用できます。
pip install -U sentence-transformers
💻 HuggingFace Transformersを使用する場合
sentence-transformersを使用せずにモデルを使用することもできます。まず、入力をTransformerモデルに渡し、その後、文脈化された単語埋め込みの上で適切なプーリング操作を適用する必要があります。
💻 使用例
🔰 sentence-transformersを使用する場合
from sentence_transformers import SentenceTransformer
tweets = ["This is an example #tweet", "Each tweet is converted"]
model = SentenceTransformer("TomatenMarc/WRAPresentations")
embeddings = model.encode(tweets)
print(embeddings)
⚠️ 重要提示
BERTweet-baseの仕様に従って、ツイートを前処理する必要があります。
🔝 HuggingFace Transformersを使用する場合
from transformers import AutoTokenizer, AutoModel
import torch
# Mean Pooling - Take attention mask into account for correct averaging
def mean_pooling(model_output, attention_mask):
token_embeddings = model_output[0] # First element of model_output contains all token embeddings
input_mask_expanded = attention_mask.unsqueeze(-1).expand(token_embeddings.size()).float()
return torch.sum(token_embeddings * input_mask_expanded, 1) / torch.clamp(input_mask_expanded.sum(1), min=1e-9)
# Tweets we want embeddings for
tweets = ["This is an example #tweet", "Each tweet is converted"]
# Load model from HuggingFace Hub
tokenizer = AutoTokenizer.from_pretrained("TomatenMarc/WRAPresentations")
model = AutoModel.from_pretrained("TomatenMarc/WRAPresentations")
# Tokenize sentences
encoded_input = tokenizer(tweets, padding=True, truncation=True, return_tensors="pt")
# Compute token embeddings
with torch.no_grad():
model_output = model(**encoded_input)
# Perform pooling. In this case, mean pooling.
sentence_embeddings = mean_pooling(model_output, encoded_input["attention_mask"])
print("Sentence embeddings:")
print(sentence_embeddings)
さらに、WRAPresentationsモデルはAutoModelForSequenceClassification
に非常に適した埋め込みコンポーネントであり、Reason、Statement、Notification、Noneの4つのクラスに特化したツイート分類タスクのさらなる微調整を可能にします。微調整プロセス中に、ReasonとStatementを議論クラス、NotificationとNoneを非議論クラスとしての分類が暗黙的に学習されます。この設定により、ツイート内の議論的コンテンツと非議論的コンテンツの効率的な識別と分析が可能になります。
🔧 技術詳細
📈 学習
WRAPresentationsモデルは、6つのトピックをカバーするTACOデータセットからの1,219件のゴールデンツイートで微調整されました。最適化のために5つのトピックが選択され、925件のツイート(75.88%)が含まれています。これらのトピックは#brexit(33.3%)、#got(17%)、#lotrrop(18.8%)、#squidgame(17.1%)、#twittertakeover(13.8%)です。モデルは、最適化データに対して60/40の層化分割を使用してトレーニング/テストを行いました。 さらに、#abortionのトピックに関連する294件のゴールデンツイート(24.12%)が、最終評価のためのホールドアウトセットとして選択されました。
微調整の前に、各ツイートを拡張することでデータセットのコピーを作成しました。拡張は、ツイート内のすべてのトピックワードとエンティティを置き換え、その後、ツイート内の10%の単語をランダムにマスクし、BERTweet-baseをfill-mask
モデルとして使用して一致させることで構成されています。10%の単語を省略することで、ツイートとその拡張間の平均コサイン距離が約0.08と最小になり、事前分類の微調整中の拡張自体が、後のテストデータとの過学習の前に調整要因となります。
微調整中に、各ツイートを同じデータ分割(トレーニング、テスト、ホールドアウト)内の残りのすべてのツイートと、類似または異なるクラスラベルでマッチングさせてペアを形成しました。微調整プロセス中のトレーニングセットとテストセットには拡張を利用し、ホールドアウトツイートには元のテキストを使用して、微調整プロセスと拡張の実際のツイートに対する有用性をテストしました。
すべてのペアについて、それぞれのデータ分割のすべてのツイートをカバーしながら、類似および異なるペアが均等に表されるように、可能な限り最大のセットを選択しました。
このプロセスにより、トレーニング用に162,064ペア、テスト用に71,812ペアが作成されました。さらに、ホールドアウトデータを使用した最終評価には53,560ペアが使用されました。また、微調整にはMEAN
プーリングを利用し、文の表現を強化しました。
⚙️ モデルの学習パラメータ
DataLoader:
torch.utils.data.dataloader.DataLoader
の長さは5065で、以下のパラメータが使用されました。
{'batch_size': 32, 'sampler': 'torch.utils.data.sampler.RandomSampler', 'batch_sampler': 'torch.utils.data.sampler.BatchSampler'}
Loss:
sentence_transformers.losses.ContrastiveLoss.ContrastiveLoss
は以下のパラメータで使用されました。
{'distance_metric': 'SiameseDistanceMetric.COSINE_DISTANCE', 'margin': 0.5, 'size_average': True}
fit()
メソッドのパラメータ:
{
"epochs": 5,
"evaluation_steps": 1000,
"evaluator": "sentence_transformers.evaluation.BinaryClassificationEvaluator.BinaryClassificationEvaluator",
"max_grad_norm": 1,
"optimizer_class": "<class 'torch.optim.adamw.AdamW'>",
"optimizer_params": {
"lr": 4e-05
},
"scheduler": "WarmupLinear",
"steps_per_epoch": null,
"warmup_steps": 2533,
"weight_decay": 0.01
}
📊 評価結果
CLS
またはMEAN
プーリングを使用していくつかのBERTweetモデルを最適化し、SBERTのBinaryClassificationEvaluator
を使用して、標準のCLS
トークンを使用して分類を評価しました。
モデル | 精度 | 再現率 | F1値 | サポート |
---|---|---|---|---|
Vanilla BERTweet-CLS |
50.00% | 100.00% | 66.67% | 53,560 |
Augmented BERTweet-CLS |
65.69% | 86.66% | 74.73% | 53,560 |
WRAPresentations-CLS |
66.00% | 84.32% | 74.04% | 53,560 |
WRAPresentations-MEAN (現在のモデル) |
63.05% | 88.91% | 73.78% | 53,560 |
WRAPresentations-MEAN
の結果は、テスト中にCLS
プーリングを使用したことに影響を受けていますが、微調整中にはMEAN
プーリングが使用されました。それにもかかわらず、微調整プロセス中にMEAN
プーリングを使用することで、特に再現率の点でCLS
表現が改善されました。WRAPresentations-MEAN
をMEAN
プーリングでテストすると、得られるF1スコアは74.07%となります。
📐 完全なモデルアーキテクチャ
SentenceTransformer(
(0): Transformer({'max_seq_length': 128, 'do_lower_case': False}) with Transformer model: RobertaModel
(1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': False, 'pooling_mode_mean_tokens': True, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False})
)
🌱 環境への影響
属性 | 詳情 |
---|---|
ハードウェアタイプ | A100 PCIe 40GB |
使用時間 | 2h |
クラウドプロバイダー | Google Cloud Platform |
コンピュートリージョン | asia-southeast1 (シンガポール) |
排出された二酸化炭素量 | 0.21kg CO2 |
📄 ライセンス
WRAPresentations © 2023は、CC BY-NC-SA 4.0のライセンスの下で提供されています。
📚 引用
@inproceedings{feger-dietze-2024-bertweets,
title = "{BERT}weet{'}s {TACO} Fiesta: Contrasting Flavors On The Path Of Inference And Information-Driven Argument Mining On {T}witter",
author = "Feger, Marc and
Dietze, Stefan",
editor = "Duh, Kevin and
Gomez, Helena and
Bethard, Steven",
booktitle = "Findings of the Association for Computational Linguistics: NAACL 2024",
month = jun,
year = "2024",
address = "Mexico City, Mexico",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2024.findings-naacl.146",
doi = "10.18653/v1/2024.findings-naacl.146",
pages = "2256--2266"
}







