ダイナミックプライシングの課題と最新技術動向


前回の記事ではダイナミックプライシングへの入門として、ダイナミックプライシングとは何かを事例を交えながら、メリットや導入方法について解説しました。今回はより技術的な部分を、できるだけわかりやすい言葉で解説したいと思います。

いきなり最適化問題、という難しそうな言葉が出てきましたが、これは簡単に言えば「ベストを計算すること」です。ダイナミックプライシングで言えば、「店の売上を最大化する価格を計算すること」になります。しかし実はダイナミックプライシングと一口に言っても「ベスト」の定義によって色々な種類があります。多くの人は「ダイナミックプライシング=価格計算」と認識していますが、実は単に価格を決めるだけの技術ではありません。生産のリードタイムに合わせて在庫量を調節するといった、サプライチェーン全体を最適化するような高度な問題を解くこともできるのです。この記事では異なる種類のダイナミックプライシングの例をいくつか紹介します。

これはダイナミックプライシングの最も単純なものです。「ダイナミックプライシング」というキーワードで検索すると色々な情報が出てきますが、そのほとんどがこの説明をしていると思って良いでしょう。通常、商品の売れ行きは価格によって変わります。安ければ多く売れますし、高ければ少ししか売れません。この価格と販売数量(需要)の関係をグラフにすると図1のように曲線になります。これを需要曲線といいます。

sales

図中の点Aでは価格を安く(100円)設定してあり、そのためたくさん(100個)売れています。一方点Bは価格を高く(1000円)に設定してあり、5個しか売れていません。さて、どちらの価格のほうが良いでしょうか?

売上最大化を考えてみましょう(図2)。点Aの売上は100円*100個=10000円になるのに対し、点Bの売上は1000円*5個=5000円です。よって点Aのが売上が多いので、点Bの価格1000円よりも点Aの価格100円のほうが良いということになります。

図のように、各点の長方形の面積が売上を表しています。ですので、一時点売上最適化は長方形の面積を最大にする点を探すことで、売上が最大となる価格を計算します。

前回の記事で、ダイナミックプライシングに向いているのは「時間とともに価値が変化する商品」だと説明しました。その場合、先ほど説明した一時点売上最適化には問題があります。例えば、飛行機のチケットの価値はフライト時刻を過ぎると0になります。仮にフライト前の最適価格が一万円だとしても、ずっとその価格で売り続けることはできません。フライト前にチケットを全て売りさばいてしまわないと、余ったチケットはムダになってしまいます。そのため、フライト直前にチケットが余っている場合は、価格を下げてでも売り切ったほうが売上は増えることになります。

つまり、この場合は販売期限と在庫量を見ながら、商品が売れ残らないように価格を調整する問題になります。より正確には、「現時点から販売期限までの総売上を最大化する」問題になります。価格を極端に安くすれば全ての商品を売り切ることはできますが、総売上は少なくなってしまいます。販売期限にちょうど売り切れるような、ギリギリの価格を狙わないと総売上を最大化することはできません。さらには日々の販売数と在庫数をチェックして、その都度価格を調整する必要があります。先ほどの一時点売上最適化と比べて、価格だけでなく、在庫量と販売期限というサプライチェーンの変数が含まれており、より難しい問題であることがわかります。

この問題を解くためには、販売期限までの残り時間内に、残りの在庫数を全て売り切るための価格を計算する必要があります。マテマのDyna-pricingは数学を駆使してこの問題の最適解を計算することが可能です。

Dyna-Pricing

これまで説明した一時点売上最適化と期間総売上最適化では、需要曲線をもとに最適価格を計算します。逆に言えば、需要曲線の情報がなければ価格計算ができません。しかしECストアをオープンしたばかりでは、需要曲線を描くための価格・販売データが蓄積されておらず、ダイナミックプライシングを利用できません。これを「コールドスタート」問題と言います。

また、需要曲線が常に不変であるとは限りません。セーターの需要は季節によって変わります。また同じ商品であっても、例えばノートパソコンの需要曲線はビジネスマンと女子高生では違ったものになるでしょう。あらゆるケースの需要曲線をあらかじめ用意しておくことは不可能なので、データから自動的に推定する仕組みが必要です。

データから目的の情報を拾い上げる機械学習はAIの得意とするところです。マテマのDyna-pricingは機械学習機能を備えており、オープンしたばかりのストアであっても、日々の販売データを学習し、ダイナミックプライシングの精度を向上させることが可能です。また顧客の属性データがあれば、セグメントごとに需要曲線を学習することも可能です。

さらにDyna-pricingは推定した価格の信頼度情報を計算することで、コールドスタート問題にも対応しています。データがまだ少なく学習が不十分なときは、価格の信頼度が低いと提示されるため、価格設定を手動にしたり、信頼度に合わせて価格帯を狭くするなどして対応することができます。また価格の信頼度情報を顧客に提示することで、価格変動の幅を予想できるようになり、顧客の心理的負担を和らげることが可能です。

ダイナミックプライシングを導入することで、顧客の購買行動が変化し、問題になることがあります。例えば空席の多い飛行機の場合、フライト直前に飛行機のチケット価格が下がることを見越して、顧客がフライト直前まで買い控えることがありえます。その場合、フライト直前まで販売が進まず、在庫が減らないため、さらなる価格低下を引き起こしてしまいます。販売データが蓄積されないので、機械学習にも悪影響が出ることになるでしょう。

この買い控えの問題は、顕在需要と潜在需要を切り分けることで解決できます。顕在需要とは、実際に販売データに現れている需要のことを指します。一方、潜在需要とは、購入意欲はあるものの、販売には至っていない需要を指します。問題の買い控えはこの潜在需要に含まれます。もし潜在需要を知ることができれば、この買い控えの問題は解決できます。

マテマのDyna-pricingは顧客がECストアの商品ページを見る際に、その閲覧データを蓄積することで、潜在需要を学習します。これによって、買い控えに影響されないロバストな価格設定が可能になります。

これまで説明してきたダイナミックプライシングとは少し異なりますが、価格を決定する技術、という意味ではオークションも一種のプライシング手法です。ダイナミックプライシングは過去の販売・需要データをもとに価格を計算しますが、例えばこの世に一つしかない名画の販売データは存在しないため、ダイナミックプライシングを利用することができません。

オークションは過去の需要データがわからない場合でも、顧客に「買っても良いと思う価格」を入札してもらうことで、価格を決定することができます。しかし顧客に希望価格を直接聞くので、正直に答えてもらえるかわからない、というのがオークションの問題点です。これを正直申告の問題と言います。

オークション理論の分野では、正直申告を実現するためのさまざまな技術が研究されています。実際に活用されている例で最も有名なのはGoogleの広告オークションでしょう。マテマにはオークション理論に精通した研究者も在籍しており、ビジネス/商品に合わせたオークションを設計することも可能です。

この記事ではダイナミックプライシングの課題とそれに対する技術をいくつか解説しました。普段ダイナミックプライシングを使う分にはあまり意識する必要はないと思いますが、商品/ビジネスに合わせてカスタマイズする際には専門家に相談したほうが良いでしょう。私たちも相談を受け付けておりますので、お気軽にお問い合わせください。

お問い合わせ

Previous Post Next Post