SmartNews Tech Night Vol.1 2014/11/04(火) 19:00 ~ 21:00 SmartNewsオフィス (東京都 渋谷区桜丘町 8-9 メイセイビルディング2F)
##19:00-19:05 ご挨拶 SmartNews 渡部
- SmartNewsのご紹介
- 総訪問時間No1、ユーザー支持No1、米国AppStoreニュースアプリNo1
- 実は五代全国紙が見られる唯一のメディア
- 日本政府チャンネル。今日開設。
- 「Technologyでユーザーに良質な情報を届ける」1000万件のニュース記事から分類。SmartEngine名づけ。
- Ads(2+6)人。ML/NLPが4人。
##19:05-19:30 SmartNewsにおけるデータサイエンスと広告配信の融合 SmartNews 中路紘平
- どうやってユーザーの属性、興味を推定するか?
- やりがちな間違い。ユーザーの行動すべてを使ってアルゴリズムを作る。
- そうではなくて重要な情報を使う。そのためには記事の深い解析が不可欠。
- Social Media(数百記事/s)→記事の自動解析(1000記事/day)→ユーザーへ!
- SocialMediaの解析
- 5W1H。Whyとか超難しいよね現状出来てません。
- When: 言及数の時間変化。記事の言及数の「速度」と「総数」で評価。
- Who: 言及している記事によって属性を推定する。
- 国籍の推定問題。発言内容から判定。SocialGraphで判定。
- 5W1H。Whyとか超難しいよね現状出来てません。
- SocialMediaの解析
- 記事の内容の解析
- 5W1H
- What:
- 記事のチャンネルを推定する問題。 各単語がどのチャンネルに出やすいかを学習し文書のスコアを計算。ロジスティック回帰使っているよー。
- どの地域に関して書かれた記事か。予め地域語(北海道-(帯広、小樽、札幌))のグラフを構築。記事から地域語を抽出してスコア計算。
- What:
- 5W1H
- 質問
- 広告も同じ文脈で解析しているか?
- 適用はできる。広告のスコアリングは別に広告の効果を評価するためのアルゴリズムが入る。広告が上に行きすぎないようになど。
##19:30-19:55 1兆bidへの挑戦 geniee 徐さん
- 自己紹介。早稲田理工学専攻。学生時代からHighPerformanceComputing系。社内のインフラやコア技術担当。
- Genieeのご紹介。RTB取引。海外DSPとの接続。今はCやC++で内製化。
- 変遷。apache&phph -> fastcgi+fpm -> rp c++ App
- RTBにおけるSSP側の技術周りの話。
- 「パフォーマンスの話。1億imp/dayならawsのsmallインスタンスひとつでいけるでしょ」(ここだけの話、いける)
- 内訳
- 広告の選定 <1ms
- DSPへのrequest <1ms
- DSPから応答を待つ 30ms-150ms(海外は遅い。Timeoutは150msちょっと)
- オークション処理 1ms
- TOTAL 30 - 160ms程度
- 内部のフィルタリング処理なんてC++とか使わなくてもphpでも1ms程度のもの
- 待つのが仕事。コンテキストスイッチに勤しむ。PHPの場合はAPCでCaching -> mutex lockに勤しむ
- C++にすると1processでn requestsが良い。あらゆるものがfile discripter。
- よくある話。
- Timeout問題。
- TCP確立60ms、requestとどくまで60ms。 HTTPのKeepaliveが大事。
- デフォルトだとhttp connectionは1 min張られぱなし。
- もうずっとbid大杉
- auctionだと複数のbidingしたい。multibid対応。
- 無用なゴミbid問題
- 半分近くはFloorPrice以下のbid。DSPには教えられない。JSONをparseしないなど。
- 質問:どの程度C以外の言語を検討した?
- 一般論Javaより2倍, PHPより100倍
- 質問:どこでPHPに限界を感じた?
- 「プロファイリングしてコンストラクタが50%????」とか
- Timeout問題。
##20:00-20:25 ScaleOutのプロダクト開発の進め方 ScaleOut 石橋さん
- 自己紹介。DSP/DMPのプロダクト責任者。SSPのPM。
- ScaleOutAdPlatformがAPIを提供してDSP、DMP、SSPとかSyn.ad(!)がのっている
- 何をどうやって作るか
- 「みんなが幸せになるものを作る」
- 多くの人に喜ばれる機能優先。会社が力を入れているもの。簡単なもの優先。営業の要望でも本当に必要だと判断できないものはやらない。
- メリット大きいがリスクがある機能は同時に複数やらない。安全第一。
- システム系のタスクも一定量割り当てる(ライブラリのVersion up、CIの高速化、バッチの高速化、リファクタリングとか)
- 仕事柄、割り込み作業が多いので、目標はざっくりとしか立てない。
- 個別の要望が非常に多い。さくっと作る。見方を変える。断る。
- プロデューサー採用のこだわり
- 広告と技術が両方分かる人。 git pullしてdeploy確認。hiveql投げて調査できる人。そうでないと効率悪い。
- 新しい機能をどう作るか考える。広告会社との連携。営業からの問い合わせ。
- どういう風に作っているか
- JIRAでチケットドリブン
- チケット内容はゆるふわ。詳細はエンジニアに任せる。メンバ間の信頼感。
- 画面で完結しないもの。担当者とホワイトボードで相談して詰めるパターン
- リリースについて
- スピード感。かつ。安定して稼働し続けること。
- hotfix
- 数回/day。画面に変更がない変更。CIが通らないとDeploy出来ない。
- hipchatでCI結果の通知。
- クローズドリリース
- 新しい配信ロジック。hotfixでリリースして、徐々に適応範囲を拡大させる。社内→特定の案件→特定の代理店→全体
- そのためのorganization role機能がある。機能毎に特定の代理店に機能を解放出来る。 * 定期リリース
- 二ヶ月に一回
- 画面の修正。事前にメール通知。2週間前にcodefixする。何かあると面倒なので日曜日に行う。
- サーバ限定リリース
- サーバーの台数を限定してリリースする。1台ずつとか10台ずつとか。今adサーバー200台くらいある。
- 他社のプロダクトの作りかたも気になるので、みなさん発表しましょう。
- 質問:どれだけ開発者いるか?
- 20数名程度。プロダクト責任者は2人。(SmartNewsも一人)
- 質問:今の組織が2倍あれば何がしたいですか?
- インフラの可視化とか裏側に力入れたい。
- 質問:人材拡張の仕方は?
- エンジニア上がりが一番だと思うけどみんな広告に興味が無い。なので外部からとってきた。
##20:25-20:50 (FreakOut TBAのセッションの予定だったが先方の都合で変更) 突然のパネルディスカッション!!!しかも会場の希望者を募って!!!