- x.com/DiscordPreviews/status/1790065494432608432
- Discord has been using ML to determine the gender and age of some of its users | Hacker News
- Introduction to the Children’s code | ICO
機械学習モデルを使用して一部ユーザーの性別と年齢層を判断。Privacy & SafetyからRequest all of my Dataでエクスポートを申請するとactivity/analytics/events-[…].jsonから見れる。Google広告だったりも性別や年齢、職業だったりをアルゴリズムで判断していたりする。
エクスポートされたJSONは私の場合4GB近くあったのでIDEでは開けなかった。catとjqでやるとよさそう。day_pt時点で私は15歳だったので、だいぶ外しているw
prob_male
(男性の確率)、prob_female
(女性の確率)、およびprob_nb
(ノンバイナリーの確率)がそれぞれ計算され、これらを合計して1.0になるように調整されます。しかし、浮動小数点の精度の問題で、合計が1.0ぴったりにはならないことがあります。
package/activity/analytics via 🐍 v3.12.5
💭 cat events-*.json | jq '. | select(.predicted_gender != null) | select(.user_id == "890908900520505354")'
{
"user_id": "890908900520505354",
"day_pt": "2024-07-01T00:00:00",
"gender": "male",
"predicted_gender": "male",
"probability": 0.93301993608474731,
"prob_male": 0.93301993608474731,
"prob_female": 0.0562388114631176,
"prob_non_binary_gender_expansive": 0.010741251520812511,
"prediction_type": "fixed",
"model_version": "v0"
}
package/activity/analytics via 🐍 v3.12.5
💭 cat events-*.json | jq '. | select(.predicted_age != null) | select(.user_id == "890908900520505354")'
{
"user_id": "890908900520505354",
"day_pt": "2024-07-01T00:00:00",
"age": "25-34",
"predicted_age": "25-34",
"probability": 0.47339025139808655,
"prob_13_17": 0.017502624541521072,
"prob_18_24": 0.44293686747550964,
"prob_25_34": 0.47339025139808655,
"prob_35_over": 0.066170245409011841,
"prediction_type": "fixed",
"model_version": "v0"
}
「Discordを改善するためにデータを使用する」をオフに切り替えることで、使用する情報を制限できます。
らしいので、オフにしておいた。こんな警告出るのにオフにする人いなそう。
matplotlibでplotするスクリプト書いてる人もいた
AIで名前、メールアドレス、ユーザー名を分析し、性別を特定するSaaSが炎上したこともあるのでこの辺りは慎重にやらないといけない。
Service that uses AI to identify gender based on names looks incredibly biased | The Verge
あとは単純にターゲティングではなくCOPPAの準拠だったり、年齢詐称ユーザーをAIで検知して子どもの保護をするための分類器を作る流れもある