• SmartNews の iOS 7 対応

    こんにちは。スマートニュース株式会社の町野です。

    9月18日の iOS 7 の登場から 1ヶ月半ほど経ちました。既に多くのアプリが iOS 7 に対応し、ユーザーの方たちも段々と iOS 7 に慣れてきたのではないでしょうか。そこで今回は、SmartNews での iOS 7 にまつわる話をご紹介しようと思います。

  • 勉強会「第三回 物理と情報と幾何のインフォーマルかもな勉強会@スマートニュース株式会社」

    スマートニュース株式会社の西尾です。10月1日よりメンバーに加わった新入社員です。

    本記事のテーマは、先日弊社を会場として行われたセミナーです。弊社の新オフィスには40人程度収容可能なセミナー室があり、プロジェクターと壁一面のホワイトボードが備わっています。週末にはセミナー会場として提供し、交流の場として機能させたいと考えています。弊社が会場となった記念すべき第一回目のセミナーは、10月13日に行われた「第三回 物理と情報と幾何のインフォーマルかもな勉強会」でした。この勉強会は建築、物理、数学、情報の各分野の専門家の方々が各テーマを専門外の人にも分かりやすく紹介して下さるというものです。大学研究機関に職を持っておられる方々も参加されており、とても格式高い勉強会でした。また活発な議論があり雰囲気も良いものでした。私も会場スタッフとしてトークを興味深く拝聴させていただきました。

    以下にてこのセミナーの各トークについてご報告させて頂きます。私の能力不足が原因で、以下の報告は解説と呼べるほどのものにはほど遠く、間違いも含まれてしまっているかもしれません。不備などありましたらご指摘を頂きたいと思います。

    また主催者の深川さんのブログに資料がまとめられています。

  • Fluentd、Amazon RedshiftとTableauを用いたカジュアルなデータ可視化

    ゴクロ改め、スマートニュース株式会社の大平です。

    巷間では「bigdata」の活用が叫ばれて久しいですが、弊社はまだまだ小さい規模のスタートアップのため少なくともデータサイズとしてhugeなdataの活用が行える環境ではありません。 であればデータの活用に対する要求が低いか、というとそうでも無く、サービスサイドでも自然言語処理や機械学習を中心としたデータ解析処理がサービスの生命線となっていますし、サービスの裏側でも戦略を立てる上で効果測定や諸々のデータの分析は非常に重要な位置を占めています。

    本記事では主にサービスの裏側で求められるデータ解析において、いかにカジュアルにデータを解析するか、の一例として、掲題のような組み合わせによるデータ可視化の事例を簡単にですがご紹介したいと思います。

  • FluentdとRedisを使ったランキング機能の実装

    redis  fluentd

    ゴクロの大平です。ごくろうさまです。

    Redisは高速で、かつデータの永続化や、複数のデータ型によるストア(list,set,sorted set等)も対応しており、機能的が豊富ということから愛用者の多いKVS実装の一つだと思います。 特に私のようなアプリケーションエンジニアの人間にとってはデータ型のバリエーションの豊富さが便利さを感じる部分で、たとえばlistを用いてタイムライン的な情報や履歴情報の管理、sorted setを用いてランキング情報の管理、などのようにアプリケーションの需要の多くにRedisが対応することができます。

    これらの情報を登録する際のフローとしては自作のアプリケーションから直接、というケースが多いと思いますが、せっかくFluentdのような便利なlog collector実装があるので、FluentdとRedisを組み合わせる事でカジュアルに情報の蓄積を行いたい……というのが本記事執筆の背景です。

    なお、本記事のタイトルは、からあげ方面で大変著名なささたつさん(@sasata299)のスライドにインスパイアされております。 Redisを使ったランキング機能の実装

  • iOS な人が Android アプリを開発するときに気をつけたいこと

    Android KitKat

    Android の次期バージョン 4.4 の名称が《KitKat》だと発表されました。Android は歴代のバージョンに「アルファベット順のお菓子の名前」を付けていることで有名ですが、今回まさかの企業コラボ。「K」は「Key Lime Pie」になるだろうと言われていたのに、さすがの斜め上です。。

    Project-Klip-Headline

    着実に進化を続け、いまやスマートフォンの世界シェアの8割近くを占める[1]ようになった Android ですが、多くのサービスは依然として「iOS ファースト」で開発している[2]ように思います。かくいう SmartNews も、まず iOS版から始まり、Android版が出たのはその数ヶ月後でした。

    そういった場合、「iOS を出して、それがうまくいったら、Android にそのまま移植すればいい」というよう考え方をしてしまいがちなのですが、それでは多くの場合よいものになりません。どうしても「iOS 的な Android アプリ」になってしまいます。

    この記事では、SmartNews での経験もふまえて、iOS はよく知ってるけれど Android のことは正直よく知らない人が、Android アプリケーションを設計するときに気をつけるとよいと思われる点をいくつか紹介したいと思います。

  • S3とFluentdを用いた効率的なログ管理

    ゴクロの大平です。

    私にとって一番大事で替えの効かないミュージシャンはさだまさしさんですが、私にとってクラウドコンピューティングのサービスの中で一番大事で替えが効かないサービスはS3です。 多種多様なAPIを用いて柔軟にファイルの操作が出来る事や、”99.999999999%”と謳われている高い耐障害性、S3にあるデータをElastic MapReduceRedshiftなどを用いて手軽にデータ解析を行える基盤が提供されていることなど、あまりに便利すぎてS3の代替となるサービスを探しだすのが難しい状態です。

    もちろん多くのAWSユーザーが同じようにS3の便利さを享受していると思いますし、インターネット上でも多くのブログ等でその魅力が語られています。その中で本記事は既に存在する記事と似たような内容を書いてしまうかもしれませんが、弊社なりのS3の使い方についてご紹介したいと思います。

    なお、S3は、”Simple Storage Service”の略称で、”Sadamasashi さん”の略称ではありませんので、くれぐれもお間違えの無きようご注意下さい。

     

  • Latent Dirichlet Allocation(LDA)を用いたニュース記事の分類

    株式会社ゴクロの中路です。

    以前のベイズ分類をベースにしたSmartNewsのチャンネル判定で触れたように、SmartNewsで配信する記事を「スポーツ」「エンタメ」「コラム」のようなチャンネルに分類しているのは、人ではなく機械です。そのアルゴリズムとして前回ご紹介したのは「ナイーブベイズ分類器」ですが、記事の分類を行う手法は、他にも様々なものがあります。その中で今回はLatent Dirichlet Allocation(以下LDA)について、先日東京大学の博士課程の皆さんと、社内で合同勉強会を行った際に作成した資料をベースにご紹介します。

  • b-Bit MinHashによる高速かつ省スペースな類似度判定

    ゴクロの浜本です。ネットカフェでコードを書くのが好きです。

    前回のエントリーでも触れられていますが、SmartNewsはホットな話題をユーザにお届けするために、常時、膨大な数のツイートおよびURLをクロールしています。こうして収集した記事に対し、様々な分析が施されますが、その中でも重要な処理の1つに、記事の類似度判定があります。内容の似通った記事をインデックスから発見し、グループ化する処理です。

    毎秒、大量の新着記事が到着することから、この類似度判定は高速に実行する必要があります。また、インデックスを全てメモリに載せているので、類似度判定を実現する際の空間効率も要求されます。

    今回は、SmartNewsが高速かつ省スペースな類似度判定のために使用しているb-Bit MinHashと呼ばれる手法を紹介します。2年前に、PFIの岡野原さんが非常に分かりやすい解説記事を書かれており、本エントリーはこの記事を参考にさせていただきました。

  • アプリ開発者がおさえておきたい《アフォーダンス》の概念

    突然ですが、ちょっとしたクイズです。 下の文章の中にはリンクが1つあるのですが、それはどこにあるでしょうか?

    あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。

    どうでしょう。思ったところがリンクではなく、なかなか本当のリンクを見つけることができなかったかと思います。

    もちろん、普通はこんなおかしな表現はせずに、次のように表現するでしょう。

    あのイーハトーヴォのすきとおった風、夏でも底に冷たさをもつ青いそら、うつくしい森で飾られたモリーオ市、郊外のぎらぎらひかる草の波。

    これらのことは《アフォーダンス》という言葉を使って次のように表すことができます。

     最初の文章 : リンクのアフォーダンスを正しく認識できない例  次の文章  : リンクのアフォーダンスを正しく認識できる例

    この記事では、iOS / Android アプリ開発においても重要な考え方の1つとなっている、アフォーダンスという概念をお話ししたいと思います。