2016-08-17

[論文] Combating online fraud attacks in mobile-based advertising (2016) 読んだ

Combating online fraud attacks in mobile-based advertising

要旨: Abstract

広告バナーに対して機械的にクリックを生成するAndroidアプリ(不正クリックbot)を実装して、実際のAdNetwork8社に対してbotによるクリックが有効かどうかを検証した。
検証結果から、不正クリックbot対策の提案を3つする。

実装: Implementation of online fraud attacks

CPC収益モデルの広告に対して、悪意のあるPublisherはクリックイベントを生成する事により自身の利益としている。それらは実にシンプルに生成されているが、実際のAdNetwork各社がそうやって生成されたクリックに対して今だに脆弱であるかは疑問があった。
これを検証するため、次の実装とした。

  • 独立したAndroidアプリとし、表示された広告に対して自動でクリックイベントを生成する
  • Publisher自身の端末でこれを動かすシナリオを想定
  • Android Debug Bridge (ADB) を利用してクリックイベントを端末に送信
  • Device ID (or android_id) がサーバーに送信されるため、これをランダムに書き換える

実験結果: Experiments

6つのAdNetworkは機械的に生成したクリックを防げなかった。2つのAdNetworkは自動生成クリックに対抗し、アカウントがブロックされた。

対抗手段: Countermeasures

1. Androidのアーキテクチャを変更し、物理的なタッチイベントについてトレース可能にする。イベントの生成元がわかれば、プログラムによって生成されたクリックイベントをフィルタする事ができる。
2. 人間には見えないバナーでbotを釣る
3. 異常なふるまいを検知する
----

感想

攻める側の視点とは珍しいなと思って読んでみたが、全く難しい事をしておらず拍子抜け。しかも6つのAdNetworkにはこれが有効という結果。しかしbotの運用期間が書いてなかったので、不正検知に引っかかる前に実験を終えた可能性もある。

AdNetworkによってはAdvertising IDでは無くAndroid IDを端末の識別子として利用しているという点は、2016年にもなってそんな事するか?? と疑問ポイント。使える物は便利に使ってる、というだけかもしれないが。


このエントリーをはてなブックマークに追加

2016-03-06

GCP ja night でCloud DatalabとBigQueryについて発表をしました

「AppEngine ja night」がいつの間にか名前が変わって「GCP ja night」になってました。今回は仕事でどうGCPを使っているかをネタにしました。


他の発表陣が軒並GKEを使ったシステム構成の話をする中で、自分だけGoogle Cloud Datalabでデータ解析チーム内での実験ノート共有手法の話をするという、非常に苦しい場ではありましたが何かの参考にしていただければ幸いです。一つ失敗したのは、Cloud Datalabの話をするのに、Cloud DatalabのベースとなっているJupyterの解説を飛ばしてしまった事ですかね。



このエントリーをはてなブックマークに追加

2015-12-15

自転車ポエム

このエントリはpyspa Advent Calendar 2015の15日目の記事です。pyspa Advent Calendarは「自分が好きなものや興味があるものをなんでもいいので書く」という事で、数年に一度あるか無いかのポエムです。

ロードバイクを入手してからの1年

2014年冬にCannondale SYNAPSE CARBON 5を購入、弱虫ペダルで言うと手嶋先輩が乗ってる奴。そして2015年は輪行を修得した事で行動範囲が一気に拡大した。輪行とは専用の袋に自転車をバラして格納して鉄道などの交通機関に乗る技である。
出張先での練習が可能に

2015年で印象に残った道

荒川サイクリングロード

自宅から5分でアクセスできたのもあり、一番良く走ったのがここ。葛西臨海公園と河口から40km付近の秋ケ瀬公園の間が普段の練習コース。
実際にはサイクリングロードでは無く緊急用河川敷道路として整備されているため舗装が良く幅員も広い。都内最強の平坦道ではなかろうか。左岸を堀切橋あたりから河口まで行くと片道10kmだが、途中にゲートが無く、ランナーとサイクリストしかいないためペースキープの練習にもってこい。日没後は闇に紛れた全身黒ずくめのランナーが出没するため危険。

江戸川自転車道

首都圏外郭放水路で有名な龍Q館に行くにはこの道が便利。江戸川の始点となる利根川も含めて都心まで100km走って関東平野の広大さを実感した。難点としては単調な道が続き景色に変化が無いため、10分で飽きる。いたる所で拡張工事がされているため、今後の整備に期待できそう。

「海まで127.5kmです」の看板、500m毎に立っていて親切?

渡良瀬川

利根川から入り群馬の市街地を経由して遡上して足尾銅山まで行った。観光地なので登りの練習をしながらも道の駅に寄ったり、渋い店構えの蕎麦屋で補給できる。わたらせ渓谷も美しい。足尾に差しかかった辺りからSIRENの舞台を彷彿とさせる昭和な世界が広がっており、味わいがあった。

あらゆる鉄が錆びている

三浦海岸

三浦海岸から三崎口へ抜けて城ケ崎公園へ。砂浜、キャベツ畑、風力発電機、魚屋と変化に富んだ牧歌的なコースで和む。幸運にも風が穏かな日に走れた。オススメのおみやげは鮪のみりん干し。

都民の森

その柔らかな響きとは裏腹に、斜度10%越えのつづら折りに殺されかけた難所。ヒルクライムの苦しさと共に楽しさに目覚めた場所でもある。

白馬 - 木崎湖周辺

北アルプス山麓グランフォンドの120kmコースに出場。生憎の雨でDNF(Don’t Finish)だったが、来年こそはゴールしたい。

自宅

新居に引っ越すと共に固定ローラーを導入、冬期の練習不足を解消するのが狙い。ただ、1歳の息子がチェーンを鷲づかみにするので運用は難しい……。分譲マンションだが、自転車を各住戸まで持っていく前提でエレベーターや共用スペースが設計されている物件なので気に入っている。

自転車レースを観戦しながら練習可能な夢の環境が実現

自転車の良さ

ペダルを踏めばどこまでも行ける、というシンプルな楽しさはもちろんあるが。自分の限界と否応無しに向き会わなければならない点も良い。無茶した所で巡航速度は上がらないし、速く走るためには練習するための時間、良いパーツを買うための収入が必要である。人生のリソース配分最適化を考える良い契機になった。

まとめ

みなさん自転車やりましょう。こちらからは以上です。

このエントリーをはてなブックマークに追加

2015-10-13

PyConJPで「アドネットワークのデータ解析チームを支える技術」という発表をしました

PyConJP 2015に登壇してきました。PyConJPについてはライブラリの使い方についてのセッションが多く、じゃあそれを使ってどうやって金を稼いでるか、というプロダクトベースの話は少なめな印象がありました。なので自分は逆張りで仕事の話をしてきました。
といっても発表で例に出した手法は "Online Advertising" で論文を探せば出てくるメジャーな奴なので、うちだけ特殊な事をやっている訳では無いです。 IMG_7502

発表資料


補遺

発表の途中で「BigQueryは謎テクノロジ」と端折ってしまいましたが、O'reillyのBigQuery本に数テラバイトを数秒でスキャンする方法は書かれています。興味がある方はそちらを参照してもらえれば。

Google BigQueryGoogle BigQuery
Jordan Tigani,Siddartha Naidu,Sky株式会社 玉川 竜司
オライリージャパン
売り上げランキング : 260401
Amazonで詳しく見る by AZlink

反省

カンファレンス1日目と2日目も発表資料の仕上げに追われていて、他の人の発表をしっかりと聴講する余裕が無かったのが本当に悔やまれる所。夜のパーティや二日目のコーヒーブレイクでも他の参加者と話す事もできず、ポスターセッションも行けずじまい。次回はカンファレンスが始まるまでに仕上げておくと心に固く誓ったのでした。

 Link



このエントリーをはてなブックマークに追加

2015-07-05

Thompson Samplingの実験的な評価

Thompson Samplingの実戦投入の参考になりそうなので次の論文を精読した。
内容はアルゴリズムの紹介、パラメータチューニングとそれによる損失の変化の実験結果、オンライン広告とリコメンドエンジンへの適用例など。以降、Thompson SamplingはTSと表記。

UCBとの比較

実験ではどのパターンも、途中まではUCBと同じ損失だが試行回数がある程度増えた所でTSの損失がUCBを下回っている。腕の数が多い程、報酬の差が小さい程UCBとパフォーマンスが分かれる点は後ろにずれる。
理由は書いてないが、UCBは一旦報酬が低い事がわかった腕も定期的に引くのでこういう結果になるのだろう。TSは報酬の期待値が収束した後は良い物しか引かない。

事後確率の調節

ベータ分布のパラメータaとbについてそれぞれα∈(2, 1, 0.5, 0.25) で割った値にした実験。0.25にすると傾向として損失は下がるが、損失が増える駄目なケースも増える。腕の性能評価を早めるので、誤って評価してしまうのだろう。バリアンスが高くなるので玄人向けのチューニングに見える。

報酬のフィードバック遅延に対するロバスト性

腕を引いて即時に報酬が観測できない事はシステムの制約上良くあるよね、という前段に続いて報酬のフィードバックが遅れた場合の実験結果が載っている。1000ステップ遅れた場合にUCBの損失は10倍近くなるのに対して、TSは6倍程度。TSの方が性能良いという結果。

オンライン広告におけるCTR予測との組みあわせ

Contextual Banditな話。CTRの事後確率をベータ分布では無く、ロジスティック回帰で平均を求め、ラプラス近似でガウス分布にした物を利用する。PRMLでラプラス近似を見た時は何に使うのか理解できなかったが、なるほど納得。

この論文に書いてない事

腕の報酬が変化するパターンの実験はしていない。広告配信では腕の性能が変化する事は考慮しなければならないので気になる所。報酬の変化を捉えるにはUCBの様に一旦低く評価された腕を再度引くしかけが必要になるので、期待報酬の分散を増やすか利用する観測値は直近の物に限定する、といった工夫が必要だろう。

このエントリーをはてなブックマークに追加