Airbnbのランキングモデルは様々な独自の改良を加えた結果、複雑で制御ができな いものになってしまった。最終的には単純なDeepモデルに落ち着いた。 ※ A Recipe for Training Neural Networks (Karpathy 2019) http://karpathy.github.io/2019/04/25/recipe/ I’ve seen a lot of people who are eager to get crazy and creative in stacking up the lego blocks of the neural net toolbox in various exotic architectures that make sense to them. Resist this temptation strongly in the early stages of your project.
listing}ペアに対して順番を学習(Rank学習) ◦ ペアを入れ替えることで、損失が大きくなるものは大きな勾配を与える ※2 ※1: From RankNet to LambdaRank to LambdaMART: An Overview https://www.microsoft.com/en-us/research/publication/from-ranknet-to-lambdarank-to-lambdamart-an-overview/ ※2: 例えば、9位と10位を間違えるよりも1位と2位を間違える方が問題なので勾配が大きくなる • 32ユニットの中間層を1つだけもつ単純なNN(w/ ReLU activation) • 宿に対して予約するかしないかの 2値予測を行っていた • 入力は前論文に使われていたものとほぼ同じ SImple NN LambdaRank NN
unit w/ ReLU)→第2中間層(83 unit w/ReLU) • 特徴は最小限のエンジニアリングで決めている ◦ 料金、アメニティ、過去の予約数、 … ◦ ダイナミックプライシングで使われているモデルの出力 ※ ◦ 前論文で紹介した(過去に閲覧した宿に関する) Embedding特徴 ※ Customized Regression Model for Airbnb Dynamic Pricing https://www.kdd.org/kdd2018/accepted-papers/view/customized-regression-model-for-airbnb-dynamic-pricing Deep NN
※1: Wide & Deep Learning for Recommender Systems https://dl.acm.org/doi/10.1145/2988450.2988454 ※2: Attention Is All You Need https://papers.nips.cc/paper/7181-attention-is-all-you-need Download paper → Implement → A/B test というループを辞め、 “User lead, model follows”の基本に立ち返ることにした
ではなぜそれでもなおユーザーの予約料金の分布は偏っていたのか? ⇒ 問題は表示している宿が高いことではなく、 検索条件(地域)に対して適切な料金の提案がで きていないことではないのか? ※ Individual Conditional Expectation (ICE) plots(以下論文も参照) Peeking Inside the Black Box: Visualizing Statistical Learning With Plots of Individual Conditional Expectation (Goldstein et al 2015) https://doi.org/10.1080/10618600.2014.907095
highlight of our journey is the realization that to push the boundaries of our DNNs, the inspiration was not going to come from some external source. For that we had to follow the lead of our users.