BLOGSpeee開発陣による技術情報発信ブログです。業務としては、ネイティブ広告配信アルゴリズムの調査、設計、プロトタイプ開発を行っています。先日開催された、SpeeeKaigi#4にて「数理最適化を用いた広告オークション入札金額の最適化」について発表しました。数学好きの方、アドテク界隈の方、ぜひ読んで頂ければ幸いです。制約つき非線形最適化問題を解くことで、広告主がメディアの配信枠に対して入札する金額を最適化するロジックを考え、シミュレーションしてみました。広告主はUZOUを通してメディアに配信されますが、広告主に継続して出稿してもらうためには、広告成果を合わせることが重要です。健康食品や化粧品など、ネット上に配信された広告を導線として商品の購入までを想定して配信されています。そのため、商品1単位の購入にかける広告予算が決まっています。目標CPAを越さない範囲で、配信金額を最大化する必要があります。そのためには、メディア毎に細かい入札金額の調整が必要になります。これを人力で随時調整するのは辛い、、、(数百メディアの配信結果を見ながら、適宜調整することになります。)ということで自動化を試みます。灰で配信金額つまり、目的関数は広告の配信金額を表現しています。制約条件は、目標CPAを越さないように配信しなければならないという条件を不等式で表現しています。実際に解いてみる目的関数は凸関数となるので、ラグランジュの未定乗数法で解きます。単調増加(減少)関数となります。近似解をニュートン法を用いて求めることが出来ます。しぶりにラグランジュの未定乗数法を用いて微分計算を行いました。大学院入試を思い出して懐かしい気分になりました。凸性と単調性は確認済みです。そこで、予め閾値を設定し、その値よりも大きくなった場合にはその値で置き換えることにしました。自動化する前と自動化した後で、広告成果が上昇していることがわかります。使っているライブラリは非常に基本的なものです。(今回でいうと、scipy.optimize.newtonのみ)ただ、裏側の数学的理解があるかないかで、問題の設定の仕方や、用いる解法が大きく異なってくると改めて感じました。実は、予測CVR、予測CTR、パラメータの精度次第でこの最適化の精度は大きく変わります。この精度を担保するかについては引き続き試行錯誤していこうと思います。Speeeエンジ...2018-07-30Speeeで広告システム作ってるエンジニアが日々やっていることSpeeeのバックエンドエンジニアの柳沼(@ygnmhdtt)です。参加してきました月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。