「自動化」タグアーカイブ

Pythonによる自動化の結果、ニューヨーク中でタダメシが食えるようになったエンジニアの話

いかにして私はPython/自動化/AI/インスタグラムを使いニューヨーク市で無料の食事をできるようになったか(How I Eat For Free in NYC Using Python, Automation, Artificial Intelligence, and Instagram)という記事が面白かったのでご紹介。

ニューヨーク在住のデータサイエンティスト、クリス・ブエッティさん(Chris Buetti)が明かした、3万フォロワー超の人気アカウントを育てた秘密。

データサイエンス/ソフトウェア開発の知識、自由な時間とインスタグラムの知識があれば再現可能だといいます。

Instagramを育てる

Pythonスクリプトで、毎日、一日に数回、ニューヨークに関する写真をInstagram に自動投稿させます。ブログ主によると、Instagram の「発見」ページに掲載してもらうにはこれが大事だそう。一日も欠かさず、何週間も続けることで掲載されやすくなるそうで、ほとんどの人力Instagramer はこれで競争から脱落してしまうということ。

人気が出そうな写真を機械学習で選ばせる

投稿内容の画像ですが、当初は、他のInstagramユーザーの新着投稿から画像をスクレイプし、オリジナルへのリンクをつけて投稿していたそうです。

ニューヨークの写真を投稿している50人のInstagramユーザーのページをスクレイプし、写真だけでなくキャプションやイイネの数も保存します。

キャプションから宣伝目的と思われる文章、「購入」とか「限定」といったものがあれば外し、再生回数やイイネの数が多いものをフィルタすることで、質の高い評判を呼んでいる写真だけを選び取らせます。

また、コメントが投稿できなくなっている投稿については、写真を取り込まないようにしたそうです。コメント欄が閉じられている投稿は、リスクが高いと判断してとのこと。

当初はルールベースでやっていたこのフィルタを、さらに機械学習に置き換え、自分で目視で良い/悪いのデータセットを作ったりの手間も掛け、結果として「より人気を得る写真」のみを転載するボットが完成したということ。

他人の写真勝手に再利用するのは問題なのでは、と思いますが、スクレイプ元にリンクをして「問題があれば言ってくれれば消します」と書いておくと、ほぼ苦情は来なかったそう。

また、最新版のボットでは、他のInstagrammer の写真をコピーするのは止めて、ロイヤリティーフリーの素材サイトをスクレイプした画像を投稿するように変更したそうで、今後は著作権侵害だと言われるリスクも減らしているよう。こちらは十分な独自のフォロワーを確保した後だからこそ可能なのかもしれませんが。

コメントやタグを機械学習で作らせる

写真に添えるコメントは、当初、どんな写真につけても通用しそうな文章のパターンをリスト化し、それをランダムで出していたそうです。

例として「ここどこか知ってる?」「ニューヨークで好きなバーをコメントして!」「死ぬまでニューヨークを楽しめ」みたいなコメントが出ています。

次にクレジット。出典を示すことで画像を再利用したことへの苦情が減ると考えたのか、誰の写真かというのをコメントに書くことに気を配ったようです。まずは引用元のアカウントを書きますが、引用元のアカウントが撮影した写真とは限りません。そこで、引用元のコメントにあるクレジット情報を正規表現で抽出したり、写真にタグをつけたユーザー名を抽出したりすることで、可能性のあるユーザーを列挙しているようです。これも自動です。

写真をコピーされたことへの苦情どころか、「シェアしてくれてありがとう!」という反応すら来るようになったのだとか。

ハッシュタグは、一枚の写真に最大30個がつけられるそうです。知らなかった。そして、おそらく、良いタグをつけるほど広まるのにも有利なのでしょう。ということで、100個のタグ候補リストを作り、そこからランダムで30個を選びつけさせています。これも手動ユーザーにとっては面倒で徹底できないところでしょう。

また、公開後にはつけたタグとイイネの相関も調べて、人気がでそうなタグを探すということもしているとか。

成果を刈り取る

インスタグラムのダイレクトメッセージやメールで、「メインディッシュ無料にしてくれたらポジティブなレビューを投稿するよ」と提案すると、ほとんどのレストランが無料の食事やギフト券を確約してくれるそうです。多くのレストランではこういったプロモーションのための予算が取ってあり、あまりにうまくいったものだから友人や家族で手分けして食べに行ったりしたそうです。

現在は、レストランに売り込みして無料サービスを受け取るDMやメールを送るためのスクリプトも動かしているそうで、こちらも自動化達成されていますね。

さて、実際にどんな Instagram アカウントなのか気になると思いますが、@beautiful.newyorkcity がそれ。現在は3万人を越えたフォロワーがいるようですが、無料の食事にありつくにはこれぐらいで十分なのですね。

コメント欄はいつも同じような当たり障りのない事を、しかも何度も繰り返しているだけなのですが、多数のアカウントをフォローしている人は読んでないか、気にもしていないのかもしれません。「みんなが見てるよ。みんながイイネしてるよ」という状態が、さらに多くのイイネを呼び、それをプラットフォームが推薦することでさらに成長のスパイラルが加速していく、といったところでしょうか。

先週、『Instagramが「いいね!」数公開を中止を検討、群衆心理の抑制を狙う』という記事が出ていましたが、ソーシャルメディアのイイネ/Like の数は、今やこういった操作のターゲットになってしまっているのかもしれません。

via Eater

BugBug – 機械学習によるバグの自動トリアージ by Mozilla/Firefox

Mozilla Hacks で、2月から導入された BugBug というバグレポートの自動分類ツールの紹介が読めます。

Mozilla の様々な製品/コンポーネントに対して発行されたバグ報告を、とりあえずどの製品のどのコンポーネントに属するものかを分類して、そのコンポーネントの担当者に早く届くようにする、というのか今回のツール導入の目的だそうです。

大災害時などに負傷者の治療作業の順番をつける「トリアージ」と同様のことをバグに対して行う「バグトリアージ」というわけ。

“Teaching machines to triage Firefox bugs” より、概念図

これまではというと、ボランティアや開発者が人手でバグを分類し設定することで担当者に届けられていたのですが、ここの分類に日数が掛かっていて、バグが解消されるまでの期間が長くなっていた、と。

機械学習で分類させるには、どんなバグレポートがどのコンポーネントに対するものか、という過去の正しいデータが必要ですが、Mozilla でこれまで発行されたバグレポートは20年以上の期間での153万件を越えるそう。

これが人力でおおむね正しく分類されているので、これをXGBoostに食わせることで、新たに到着したバグレポートが属するコンポーネントの予測が自動的にできるのだそうです。

2月末に一部のプロダクトに対して導入運用を始め、350件のバグを自動分類し、そのチケットの解決までの日数の(外れ値を除いた)中央値は2日間と改善されたそう。ちなみに、今は60%の信頼度で分類して、80%以上の適合率を達成しているそうです。

今後の計画としては、重複チケットの検出、バグレポートに欠けている内容(たとえばバグの再現方法)を見つけて報告者に追加してもらう、リリース版での重要なバグを素早く発見する、などを検討しているということ。

大きな製品になるとバグレポートも膨大に届き、切り分けだけでたいへんな人的リソースを必要とするのでしょうけれど、その部分の自動化は開発側にも利用者側にも大きな恩恵を与えそうですね。

via VentureBeat

ファイナンシャル・タイムズ、「識者のコメント」の女性比率が低いと警告するボットを開発

イギリスの経済紙 Financial Times が、記事に登場するコメント者の男女比率を改善すべく、コメント者が男性ばかりだと警告する仕組みを導入したと、ハーバード大のジャーナリズム研究機関ニーマン・ラボ英ガーディアン紙が伝えています。

代名詞(she や he でしょう)やコメント者の氏名のファーストネームから性別を推定して、記事に出てくる登場人物が男性ばかりの場合に、編集者に警告を出すそう。

現状はというと、記事に登場する人物やコメントを求めた識者の21%だけが女性。現読者層は男性が優位な Financial Times ですが、読者投稿欄でも女性のコメントを積極的に求めるなど、女性読者を増やし男性の意見に偏らないことを目指しているらしいです。

こういったプログラムの助けなしでも気をつけていた編集者はいるのかもしれませんが、実際の結果として女性の話をあまり取り上げていなかったとすれば、その不均衡を警告してくれるはいいことかもしれませんね。

賞金付きクイズアプリの答えを求めるbot

HQ というオンラインクイズの iPhone アプリがあり、アメリカで流行しつつあるそうです。

一日2回開催される、12問のトリビアクイズに全問正解すると、その回の賞金を正解者で山分けできる、というサービスで、アプリに登場する司会者に特徴があり、家族・友人・同僚などを巻き込みやすい形になっているのが広まっている秘密のようです。

そんなクイズアプリに対して、前記事のようなプログラムによる解法をデモしたのが、トビー・メラーさんんのこちらのブログ記事

デモ動画はこちら。02:00 前後から、アプリの出題(画面右側)に対して、画面中央に開いたコンソールが、3択の回答を表示しています(小さくて見づらいので、キャプションで強調表示されていますが)。

回答が提案されるプロセスは以下の通り

  1. iPhone のアプリ画面を QuickTime で MacBook に映す
  2. Automator で問題と回答3択のスクリーンショットを撮る
  3. Google Vision API でテキスト化
  4. Googleカスタム検索API で、”問題文”や”問題文” AND 回答候補 を検索
  5. 検索結果の先頭9個の抜粋文に、回答語が出てくる回数をカウント
  6. 抜粋に回答が出ない場合は、URLを開いてページ全文から回答語をカウント

この単純な方法で、7秒以内に正答を得ることができているそうです。

なお、実際のゲームでこういったプログラムを使うのは、HQ アプリの利用規約に触れるということで、メラー氏は録画したゲーム画面を使って、こういったことが可能だ、という検証のみを行ったということです。

HQ アプリの方でも、不正な参加者を無くすべく、画像を保存するユーザーを弾いたりと対策を実施しているようですが、なんとなればiPhone の画面を別のカメラで撮影したっていいわけです。大なり小なり賞金が出る、という時点で、検証ではなく本気でこういう解法を使ってくるユーザーが出るのは避けられなさそうに思います。

HQ - Trivia & Words

カテゴリ: ゲーム, 教育, トリビア
言語: EN
価格: 無料
バージョン: 1.4.14

開発者: Intermedia Labs
公開日: 2017年8月26日
評価(全バージョン):
(32人のレビュー)
評価(現バージョン): 評価なし

スクリーンショット

screenshot 0screenshot 1screenshot 2screenshot 3screenshot 4screenshot 0screenshot 1screenshot 2screenshot 3

「機械に解雇された」人の体験談

The Machine Fired Meは、イブラヒム・ディアジョさん(Ibrahim Diallo)がブログに綴った、突然会社から解雇された時の体験談です。

3年契約で半年以上働いていた会社で、突然以下のようなことが起こったということです。

  • ある朝、現職を紹介してくれた転職業者から「大丈夫か?」とメッセージ
  • 社員証がオフィスの入り口でエラーになった(なじみの守衛に通してもらった)
  • 翌日、駐車場のゲートが社員証で開かない(係員のカードで入った。翌日からはUberで通勤に)
  • 上司に壊れた社員証の再発行を依頼。臨時の当日社員証を印刷してもらう
  • JIRA にログインできなくなる。同僚は入れて、自分のユーザー名に(inactive)と表示されてることに気づく。上司は驚き、アカウントの復旧をどこかへ依頼
  • 転職業者から「あなたが解雇されたというメールを受け取った」と連絡
  • 翌朝、臨時社員証が発行できなくなった、と守衛に言われる。上司下まで迎えに来る
  • 部長に「自分は解雇されたのか?」と訊く。部長は笑ってどこかへ電話、今日中にはすべて直ってるので仕事するように、と
  • 自席のWindowsが自動で再起動され、ログインできなくなった。仕事用のCentOSマシンで作業する
  • 部長は「明日も出社するように」と言ってくれたが、翌朝は自分のLinuxマシン以外のあらゆるアカウントにログインできなくなる
  • ランチ時に、顔なじみの守衛2人がやってきて、無理やり社外に追い出される
  • 上司も部長も、ディアジョ氏を建物外へ出せ、という脅しのようなメールを受け取る
  • 続く三週間、自宅から上司や部長よりもっと上の人たちがやりとりするメールの議論をCCで受け取り続けるが、誰もこの問題を解決できない

3週間経った後で、転職業者から「また出社できるようになった」と連絡を受けますが、3週間家にいた分の給料は無し。

会社の説明では、一度解雇プロセスに入ってしまうと、システムが次々と解雇のための手続きを自動的に進め、カードを無効にしたりアカウントを止めたりするようになっているということ。一つの処理が次の処理を呼び出し、途中で止めることはできなくなっていると。

止められたアカウントを復旧する方法もないので、ディアジョ氏は「新しい契約社員」として採用されなおすことに。最初の入社時に書かされたあらゆる書類を、もう一度書く羽目になったそう。

解雇のプロセスが決して止まらない自動作業だったことは置いておくにしても、なぜそれが誰も問題にしていないディアジョ氏に襲い掛かったか、という点については、採用直前にこの会社がより大きな会社に合併された際の、レイオフされた前任のマネージャーの作業放置の結果、ではないかということだそうです。

ディアジョ氏は結局、良く貢献もし周りから感謝もされていた職場で、捕まった泥棒のようにビルから追い出されるという体験をしました。その影響で、なぜそんなことになったかという経緯を周囲に説明したり、一部の人たちからは距離を置かれたりしたりして、最終的にはしばらくしてその会社を退職、今の会社に移ってしまいました。

昨年身の上に降りかかったこの一連の体験をやっと落ち着いて話せる気分になったそうで、今回ブログで公開した、ということです。

What I called job security was only an illusion. 安定した職業、だと思ってたものは幻影に過ぎなかった

と結ぶ彼の話、会社員にとっての一つの悪夢でしょうね。

via BBC and TheNextWeb

Salieo – レスポンシブ・いい感じに画像を切り出し表示してくれるサービス

Salieo は、Javascript で画像ファイルから写真の重要そうなところを切り出して表示してくれるというサービスです。サイトのキャッチは”instantly, intelligently, responsive”(即座に、賢く、レスポンシブに)となっています。

ユーザー登録してAPIキーをもらってみました。同じ一つの写真がこんな風に自動でクロップされて表示されます。

比較のため、スクリプトをオフにすると以下のようになります。横長でも縦長でも、元の画像がそのまま縮むので、車の形がゆがみますね。

# 物があるところをうまく切り出してくれる、ということなのですが、この写真はちょっと例には良くなかったかな。

ユーザー登録した上で、申請したドメインやURLパターンに合致した画像だけが変換の対象となります。変換できる画像の数や変換の回数によって料金が変わりますが、一番下の無料枠でも10画像、月25,000回までの呼び出しができるようです。

先行の類似サービスとして、imaggaImageKit.ioが見つかりましたが、どちらも無料枠は無いようです。Salieo の無料枠もお試し用という感じの枠ではありますが、実際に試せるのはやはりいいかと。

これらのサービスを使えば、切り出しについて特に考えずに元の画像一つをアップロードしておけば、サイトで表示した時にその時の縦横比にあわせて動的にクロップされるわけです。あとは写真から重要そうな場所を切り出す判定部分の精度が良ければ、画像が表示される際の縦横比を固定しにくいサービス運営者からは、有料でも嬉しいサービスとなるかもしれません。

via Hacker News