メインコンテンツへスキップ
  1. 記事一覧/

アート評価アルゴリズムを作る:オークション価格を本当に予測しているのは何か

· loading · loading ·
仁才徳
著者
仁才徳
韓国ソウル在住のリーダー兼ソフトウェアエンジニア

ここ数週間、関連する2つのプロジェクトに取り組んでいました。1つ目は、2024年に Scientific Reports に載った Lee et al. の論文 “Social signals predict contemporary art prices better than visual features, particularly in emerging markets” の再現です。存命作家590人、34,200件のオークション記録でXGBoostモデルを学習させる内容です。2つ目は Art Evaluator というDjango + Expoのプラットフォーム作りで、作家・所有者・オークション記録をつなぐナレッジグラフが中心にあります。要するに、ああいうモデルで何か意味のあることをしようと思ったときに必要になるデータの配管です。

どちらのプロジェクトも、結局同じ問いに戻ってきました。作品がいくらで売れるかは本当に予測できるのか?答えは「できる」です。ただし、作品を見ても無理です。効く特徴量はほぼすべて社会的なものでした。

アートの値付けが難しい理由
#

コードを書く前に、鑑定士やオークションハウスが実際どう値付けしているのかを数日かけて読み込みました。考慮する要素は多く、そのほとんどはきれいに数値化できません。来歴(誰が所有し、どこで展示され、どのカタログに載ったか)。帰属と真贋──作家の財団が本物と認めた作品は、「〜の作と伝えられる」だけの作品より桁違いに高くなります。個展、ビエンナーレ、美術館収蔵、批評で積み上がる作家の評判。それに保存状態と修復履歴、作家の作品群の中での稀少性、媒体(キャンバスの油彩は紙の作品より、紙の作品は版画より高く売れる傾向があります)。MoMAやTate、ルーヴルが所蔵していれば、2次市場が信頼するお墨付きになります。タイミングも効きます。5年前の比較事例はもう古いのです。

サザビーズの専門家は「感情価値」の話もします。コレクターの欲望、入札合戦の力学、個人的な思い入れ。これらは合理的な見積もりをはるかに超えてハンマープライスを押し上げることがあります。直接モデル化はできませんが、オークションハウスの事前予想額を通じて間接的にその輪郭を捉えることはできます。

実務で主流の評価手法は比較売買分析です。同じ作家の類似作品の直近のオークション結果を探して、差分を調整する。XGBoostがやっているのも本質的には同じことで、ただ人間の鑑定士が手で追える範囲をはるかに超えた規模と特徴量でやっているだけです。

論文の中心的主張
#

Lee et al. の主張は直感に反します。作品の視覚的内容は、価格をほとんど説明しないというのです。視覚的特徴のみ(色、構図、エッジ密度、ResNet18の埋め込み)を使ったモデルはR²約0.055。平均値を答えるより少しマシな程度です。

一方、作家レベルの「社会的」特徴のみ(キャリアステージ、展示歴、過去のオークション価格、ArtFactsランキング)を使ったモデルはR² ≈ 0.73に達します。さらにオークションハウスの事前予想額を特徴量に加えると0.92まで上がります。

つまり、作品そのものはほとんど関係ないのです。重要なのは誰が作ったか、そして市場がその人物についてすでに何を語っているかです。

論文のもう一つの主張は、この差が新興市場でさらに開くというものです。新興市場とは、確立された中核であるアメリカ・イギリス・フランス・ドイツ以外のすべてを指します。そうした市場では社会的シグナルの効きが強まり、専門家の予想額の精度は下がるため、アルゴリズム予測が価値を出せる余地が大きくなります。

論文を再現する
#

依頼内容はシンプルでした。1人開発のMVPとして論文を再現する。本番デプロイなし、ライブのデータパイプラインなし。忠実な再実装と、プロトタイプ品質のコードと、所見をまとめたレポートです。

データ
#

論文は補足資料としてクリーニング済みのCSVを提供しています。

ファイル行数内容
Df_mloutfull.csv86,221500列以上を持つ生データセット
df_for_ml_improved_up_to_2012.csv34,200メインのクリーニング済みデータセット、1996–2012
df_for_ml_improved_old_market.csv29,853既存市場のみ
df_for_ml_improved_new_market.csv4,346新興市場のみ
transactions.csv114,283画像リンク付きの生オークション記録

全部で約5 GB。RAMに余裕で収まりますし、この規模のデータセットならXGBoostの学習はラップトップのCPUで5分もかかりません。コアモデルにGPUは不要です。この規模の表形式データに対する勾配ブースティング木は、学習コストがほぼタダみたいなものです。ニューラルネットの世界に数年浸かっていると、つい忘れてしまいますが。

特徴量
#

モデルは38個の特徴量を3カテゴリに分けて使います。

作家について(30個):

  • 属性: 年齢、性別、学歴、トップスクール出身フラグ。
  • キャリア: ArtFactsランキング、個展、グループ展、ビエンナーレ参加、受賞。
  • 収蔵: 個人・公的コレクションの数。
  • 価格履歴: 直近5回・10回の販売の平均、中央値、最高、最低。
  • サイズ調整済み価格履歴(平方インチあたり価格)。
  • 地理: 作家の活動・居住地を国フラグとしてエンコード。
  • マッチフラグ: 作品のジャンルは作家の通常のジャンルと一致するか?販売国は一致するか?

市場について(8個):

  • オークションハウスのティア(1–4)。
  • その年の国・地域の価格水準(最小、平均、中央値、最大)。

作品そのものについて(視覚以外):

  • 幅、高さ、平方インチ換算の面積。
  • 媒体カテゴリ(絵画、版画、写真、彫刻、その他)。

このリストに欠けているのは、作品の実際の視覚的内容に関するものです。それは別立てのアブレーション実験としてしか登場しません。

学習/テストの分割
#

ランダムではなく時系列です。2011年5月より前を学習用(約80%、約27,360件)、それ以降をテスト用(約20%、約6,840件)に回します。ランダムに分割すると、作家の価格履歴特徴量を通じて未来の情報がリークするからです。同じ作家のレコードを学習とテストにばらまくと、テスト行はローリングウィンドウ越しにお互いの価格をすでに「見て」いる状態になり、R²が人為的に膨らみます。

一度気づけば当たり前なのに、最初に組むときには見落としやすい類のものです。

モデル
#

XGBoost回帰で、log10(price_usd)を予測します。検証用スライスに対してmax_depthlearning_rateのハイパーパラメータ探索。モデルの変種は2つです。

  1. 専門家予想額なし。 目標R² ≈ 0.73。
  2. 専門家予想額あり。 目標R² ≈ 0.92。

「予想額あり」の変種は、オークションハウスの事前予想額の下限と上限を追加の特徴量として使います。実はこの2つだけを単独で使ってもR² ≈ 0.90が出ます。その上に社会的特徴を載せて、さらに0.02。絶対値としては小さいですが、専門家がすでに知っていることの先で、実際に予測の仕事をしている部分がここです。

どこまで狙ったか
#

論文を超えるつもりはありませんでした。全条件で彼らのR²値の±0.03以内に収めるのが目標です。ヘッドラインの数値(メタデータのみで約0.73、予想額込みで約0.92)は再現性が高いはずです。XGBoostはシードを固定すれば決定論的ですし、特徴量の定義も明確です。ズレを予想したのは2か所。PCAの次元数や画像前処理のわずかな差で結果が動く視覚特徴のアブレーションと、4,346件しかなくノイズフロアが高い新興市場の分割です。

視覚特徴がほとんど効かない理由
#

私にとっては、これが一番面白い結果でした。論文の視覚パイプラインは、画像1枚から8,971個の数値を抽出します。

  • GISTディスクリプタ(960次元): 全体的な空間レイアウト。
  • 方向勾配ヒストグラム(HOG)(2,915次元): エッジ構造。
  • カラーヒストグラム(4,096次元): パレットの内訳。
  • ResNet18特徴(1,000次元): 事前学習済みの高次埋め込み。
  • カラフルネス(1次元): 鮮やかさのスカラー。
  • 複雑度(1次元): エッジ密度のスカラー。

これをPCAで圧縮してXGBoostに入れると、R² ≈ 0.055。色だけで0.056、エッジ構造で0.029、ニューラルネット埋め込みに至っては0.009、実質ゼロです。

すっきりした説明はこうです。オークション価格は個々の作品ではなく、作家のレベルで決まる。同じ作家の絵は、キャンバスに何が描かれていようと似た値段で売れます。値付けされているのは署名だからです。

オークションカタログの解説を読んだことがあれば、腑に落ちるはずです。あの文章は来歴と展示歴と比較売買にほとんどの言葉を費やしていて、作品そのものの描写はごくわずかです。

この5%という数字を真に受けるなら、作品の美的内容は市場価値からほぼ切り離されています。市場が報いているものが何であれ、それはキャンバスの上にはありません。ピクセルレベルでアートを理解するモデルは、作家の経歴しか知らないモデルより価格予測が下手になる、ということです。

Phase 3は条件付きだった
#

論文の画像リンク列が指すURLは2012年時点で有効だったもので、2026年にはほとんど死んでいます。私が書いた計画では8日目にこのリスクを検証することにしていました。ランダムに100本URLを引いて、何本生きているか確かめる。半分以上死んでいたら視覚フェーズは丸ごとスキップして、理由を文書に残す。

そもそも視覚特徴が説明する価格分散は5%程度です。その程度の数字を確認するためにリンク切れと2週間格闘するのは、割に合いません。リンク切れの調査結果をレポートに書いて先へ進むほうがましです。

既存市場 vs 新興市場
#

論文は既存市場(アメリカ、イギリス、フランス、ドイツ)と新興市場(それ以外の19か国)で別々のモデルを学習させています。中心的な結果はこうです。

特徴セット既存市場 R²新興市場 R²
視覚のみ0.0530.056
メタデータ(社会的シグナル)0.6670.750
メタデータ + 予想額0.9160.859

目を引く点は2つ。まず、社会的シグナルは新興市場のほうが効きます。データが豊富な既存市場のほうが社会特徴の性能も高いだろうと思っていたのですが、逆でした。

次に、新興市場では専門家予想額の精度が落ちます。予想額を加えたときの0.916対0.859の差がそれです。既存市場でのアルゴリズム予測は、数十年分の比較売買データを背負ったサザビーズの専門家と競うことになります。新興市場ではその専門家の持ちデータが薄く、アルゴリズムが価値を出せる余地が広がります。

このモデルを商売にするなら、稼ぎ場所は新興市場でしょう。

明記しておくべき制約
#

これは論文の再現であって、本番システムではありません。ライブのデータパイプラインはなく、モデルは1996–2012年のオークションデータで学習したきり更新されません。デプロイもなし。成果物はノートブックとレポートで、予測APIではありません。ドリフト検出もないので、学習後のモデルは市場が変わったことに気づけません。データセットは凍結されていて、クリプトアートもNFTもコロナ後の市場変動も学習データには存在しません。K AuctionやSeoul Auctionの価格を予測したければ、オークションハウス固有の特徴量と、おそらく韓国市場専用のモデルが要りますが、そこまでの特化はしていません。

モデルは過去のパターンを映すものでもあります。現代美術市場が2015年前後に構造的に変わったのだとしたら(アートフェアが1次市場の主要な場になり、新しい世代のコレクターが参入したという議論があります)、1996–2012年のパターンは一般化しないかもしれません。

論文からプラットフォームへ
#

論文を読んだことで、2つ目のプロジェクトの見方が変わりました。Art Evaluatorはもともと、アート展覧会のクラウドファンディング・マーケットプレイスとして構想していました。作家はこれからの展覧会の資金を確保し、投資家はオークション市場が通常許すより早い段階で新興作家へのエクスポージャーを得る、というものです。

プロダクトの表面は意図的にシンプルにしています。作家は資金が必要な展覧会を投稿します(会場、日程、出展予定作品)。投資家は特定のショーを段階別の金額($100、$500、$1k、$5k)で支援し、作品が売れたら上振れ分を分け合います。作家と投資家のチャットの大部分はAIエージェントが受け持つので、どちらかがオフラインでも会話は止まりません。韓国のギャラリーが14時間の時差を挟んでアメリカのコレクターと話しているときには、これが特に効きます。

資産は作品ではなく作家だ、ということが腹に落ちると、データモデルもそれに合わせて変わります。押さえるべきは、各作品を誰が所有してきたか、どこで展示されてきたか、比較作品がいくらで売れたか、そして同じ作家の作品をほかに誰が持っているか。所有の連鎖、機関による承認、オークションのコンプ、コレクターのネットワーク──ナレッジグラフの出番です。

Djangoバックエンド(apps/artworks/models.py)は4つの基本型をモデリングしています。

  • Artist: 作品を作る人。
  • AuctionRecord: 価格・日付・ハウス付きの過去の販売記録。
  • OwnershipRecord: 誰がいつからいつまで何を持っていたか。
  • ScrapeLog: データ自体の来歴。全レコードの出どころを監査できるように。

モバイルアプリ(Expo + React Native + @shopify/react-native-skia)は、これら全部をforce-directedグラフとして描画します。useGraphDataがDjangoの/api/graph/エンドポイントを叩き、useForceLayoutが毎ティックJS上でd3-forceシミュレーションを回し、GraphCanvasが結果をSkiaで描きます。タイムレンジスライダーで年をスクラブすると、ネットワークが育っていく様子が見えます。どのコレクターがいつ入ってきたか、どの作家がどの美術館に拾われたか、2008年の下落局面でどの作品が持ち主を変えたか。

ノードタイプごとに形と色を分けています。

ノードタイプ
作家ダイヤ
作品角丸長方形
コレクター
ディーラーオレンジ
美術館
遺産ティール
オークションハウス六角形グレー

形は飾りではありません。数百ノードまでズームアウトしたとき、ラベルの描画を待たなくてもシルエットだけでエンティティの種類が分かります。円に囲まれたダイヤは、コレクターネットワークを持つ作家。多くのダイヤとつながる六角形は、作家を多数抱えるオークションハウス。市場の構造がひと目で読めます。

2つ目のタブでは、同じデータをvis-timelineの時間軸で見せます。所有期間は水平バー、売買は点イベント。同じグラフを別のレンズで見る形です。ある時点のネットワークの形ではなく、誰が何をどの順で持っていたかを見たいときに便利です。

Art Evaluator自体は価格予測ツールではありません。その下に敷くデータレイヤーです。凍結された2012年のCSVではなく、生きた最新データをLee et al. のようなモデルに供給したいなら、必要になるのはこういう構造です。

価値評価をゲームにする
#

まだ作っていないけれど一番興味があるのが、アート評価のゲーム化です。

Lee et al. の論文はオークションハウスの事前予想額を特徴量として使い、R²を大きく引き上げています。あの予想額に価値があるのは、何千件もの比較作品を見てきて、結果に責任を負う訓練された専門家たちの、集約された判断だからです。しかしオークションハウスの専門家は、狭くて高価なリソースです。世界に数百人しかおらず、特定の委託案件にしか関わらず、まだ誰も委託していない作家のロングテールには手が届きません。

私が何度も戻ってくる問いはこれです。もっと広くて安い判断のプールから、同等のシグナルを合成できないか?

ざっくりした設計はこうです。

  • ユーザーに作品を見せる。画像、寸法、制作年、作家名、簡単な経歴。
  • オークションでいくらで売れるかを尋ねる。
  • 価格帯を選ばせるか、ハンマープライスを直接当てさせる。
  • 回答を確定した後で、実際の落札価格を明かす。
  • Brierスコア方式の精度レーティングを時間をかけて付ける。
  • リーダーボード、デイリーストリーク、連続的中バッジを用意する。
  • 各ユーザーの今後の予測を、過去の精度で重み付けする。

アート価格の予測市場を、当てっこゲームの形にしたものです。ループはGeoguessrやchess.comのパズルレーティングと同じ。繰り返せて、採点できて、フィードバックを頼りに腕を磨けます。よく当てる人はリーダーボードを上がり、その人の今後の予測は集約シグナルの中でより重くなります。

これが本当に役立つのはモデル側です。重み付き集約された推測は、社会的シグナルと並べてXGBoostに入れられる特徴量になります。群衆の精度加重中央値がハンマープライスとよく相関するなら、本物の予想額が付いていない作品についても、合成オークションハウス予想額に近いものが手に入る。それこそ、Lee et al. のモデルが一番助けを必要としている作家ロングテールの穴です。

コールドスタートの観点もあります。モデルは価格履歴が豊富な作家ではよく学習できて、販売実績が3件しかない作家では苦しみます。販売3件+群衆の推測1,000件なら、少なくとも扱える材料にはなります。クラウドソーシングによる評価は、元データがカバーしていないケースのための学習シグナルを生成する手段なのです。

ここでゲーム化が重要なのは、群衆を信頼できるものにする唯一の方法が、参加を楽しくしてたくさんやってもらうことだからです。一問きりのフォームでは、一度クリックして通り過ぎた人たちのノイズだらけのデータしか得られません。デイリーストリークとリーダーボードとキャリブレーションバッジがあれば、同じ人が1年かけて500回、真剣に考えた予測をしてくれます。量に自己選別(当てられる人は残り、当てられない人は飽きる)が掛かって、ノイズではなくシグナルになります。

作る前に解いておくべき設計上の問題もいくつかあります。ユーザーに何をどこまで見せるか──画像と経歴だけか、文脈として比較売買も出すか。文脈が多いほど推測の質は上がりますが、行きすぎるとユーザーはこちらが見せたものを反芻しているだけになります。価格フィードバックの粒度はどうするか。落札額そのままか、レンジか、±20%以内だったかどうかだけか。細かすぎると特定の数字にアンカーする癖を付けてしまい、曖昧すぎるとキャリブレーションができません。リーダーボードの攻略問題もあります。プレイヤーは知っている作家に流れますし、Banksyの推測は実力というよりほぼ雑学です。おそらくDuolingoのレッスン選択のような強制ランダムサンプリングと、作家名を伏せた「ブラインド」ラウンド用の別ランキングが現実解でしょう。そして後知恵バイアスは避けられません。バスキアが1億1千万ドルで売れたと知ってしまったら、知らなかった状態には戻れない。ループの誠実さを保つのは、まだ誰も見ていない作品の供給で、その供給は週あたり有限です。

ゲーム化という枠組みは、プラットフォームの両半分をつなぐ役目も果たします。クラウドファンディング側はショーが財務的に成功したときに投資家に報い、当てっこゲーム側は、投資家であろうとなかろうと、価格を当てるのがうまい人に報います。どちらも同じアイデアの変奏です。群衆の集合的判断を、取引可能なシグナルに変える。一方は資本を、もう一方は注意を取引します。本物の腕を磨いたプレイヤーは、検証可能な価格予測の実績を引っ提げて、いずれ投資家側に「卒業」できるかもしれません。「いい画商を知っていた」よりよほどまともなフィルタです。

持ち帰ったこと
#

事前予想額は非常に優秀です。オークションハウスは不透明な値付けだと叩かれがちですが、あの予想額だけで価格分散の90%近くを捉えます。専門家が何をやっているにせよ、上手にやっている。その一方で、作品そのものは統計的にほとんど意味を持ちません。美的な理由でアートが好きな人間には居心地の悪い結論です。市場はあなたが見ているものに値段を付けていません。他の人たちが隣の作品にすでに払った金額に値段を付けています。

モデリング面で効いた習慣は2つ。時系列分割は価格モデルを評価する唯一の正直な方法で、ランダム分割が返すのは本番投入に耐えない見栄えのいいR²です。そして勾配ブースティング木は今でも正しい道具です。論文中でXGBoostはすべてのニューラルベースラインに勝っていて、この規模・この作り込まれた特徴構造の表形式データでトランスフォーマーに手を伸ばす理由はありません。

商売の観点では、面白い機会は新興市場にあります。専門家の値付けが最も薄く、アルゴリズム予測が埋められる差が最も大きい場所だからです。それから、群衆は使われていないデータソースです。Lee et al. のモデルで最大の単一特徴量はオークションハウスの事前予想額でした。キャリブレーションされた群衆が作家ロングテールについて同等のシグナルを作れるなら、それはモデル入力としても、それ自体プロダクトとしても、本物の商機です。

2つのプロジェクトは、当初の計画以上に補完的になりました。論文の再現は何が価格を予測するのかを教えてくれて、プラットフォームの作業はその知識を使うのに必要なデータ構造を教えてくれました。そしてゲーム化のアイデアが両者をつなぎます。ナレッジグラフが作品と過去の販売を供給し、当てっこゲームが群衆由来の予想額特徴を生成し、モデルがそれを社会的シグナルと並べて消費して、さもなければ見えなかった作家たちの予測を出す。

どれも完成はしていません。論文の再現はレポート付きの動くプロトタイプ、プラットフォームはシードデータ入りのデモ、クラウドソーシングのゲームはいま読んでもらった設計メモの中にしかありません。それでも、通底する筋は十分一貫していて、あるべき形はそれなりにはっきり見えていると思います。作品ではなく作家に値を付ける。専門家だけに頼らず群衆を集約する。評価を、専門家が上から手渡すものではなく、市場が集合的に作り出すものとして扱う。

時間さえ作れれば、次に作るのはこのバージョンです。