
こんにちは。技術部検索グループの原島です。 上の画像は、スマートフォン(ブラウザ版)で見たクックパッドの検索結果ページです。レシピだけでなく、ニュースも表示されていますね。献立や掲示板のスレッドなどが表示されることもあります。 クックパッドでは、検索結果ページに表示するコンテンツをクエリなどに応じて最適化しています。最適化は、膨大なログデータと最新の機械学習を用いることで、実現しています。このエントリでは、クックパッドにおけるコンテンツ最適化の裏側を紹介します。 最適化の背景 スマートフォンの普及に伴って、ユーザが利用するプラットフォームは PC からモバイルにシフトしつつあります。クックパッドにおけるモバイル利用者の割合も、ここ 2 年で 10% 以上増加しました。最近では、60% 以上のユーザがモバイルからアクセスしています。 ユーザの利用形態が変化すれば、検索結果ページもその変化に対
前回は形態素解析を使う検索エンジンのしくみについて説明しました。今回は、FINDSPOTで使用しているN-gramという検索エンジンのしくみについて説明します。 N-gramによる見出し語の切り出し 前回は、形態素解析による検索エンジンでは、検索可能な最小単位が分かち書きの切り分け単位となる点を説明しました。 一方、N-gramを使った検索エンジンでは、単純に文字の並びを見出し語としてインデックスを作成します。1文字を元にインデックスを作成する方法をユニグラム、2文字の並びを元にインデックスを作成する方法をバイグラム、3文字の並びを元にインデックスを作成する方法をトリグラムと呼んでいます。 1文字:ユニグラム 2文字:バイグラム 3文字:トリグラム N-gramによる見出し語の切り出しは、形態素解析のための文法解析を伴わないため、特定の自然言語に依存しないという特徴があります。 FINDS
このブログを読んでいる人なら Google や AWS の 2 段階認証(マルチファクタ認証)を有効にしていると思います。もしパスワードが漏れてしまってもワンタイムパスワードを入力しないと認証されないので安心です。 有名どころのサービスでは使えるところが増えてきましたが、2 段階認証を有効にしていれば万全なのでしょうか。エンジニアである以上、その仕組みを理解したうえで自信を持って安全と言いたいところ。 というわけで、2 段階認証は本当に安全なのか仕様を紐解きながら調べてみました。 ワンタイムパスワードの仕様 ワンタイムパスワードを生成する仕様は HOTP と TOTP の 2 つがあり、RFC の仕様になっています(TOTP はドラフト段階)。 HOTP (HMAC-Based One-Time Password Algorithm) TOTP (Time-Based One-Time P
今回は、機械学習で使う「確率」のお話です。 確率は、統計的な機械学習のもっとも重要な基礎知識です。とはいえ、確率についてゼロから説明するというのは紙数的にも厳しいため、高校の確率を少し憶えているくらい(期待値や標準偏差など)を前提とし、「高校の確率」と「機械学習の確率」の本質的な相違点について、少し丁寧に見ていく、という形で進めていきます。 機械学習と確率 最初に、機械学習にとって確率はどういう役割なのかを確認しておきましょう。 実のところ、機械学習に確率が必須というわけではありません。ニューラルネットワークやサポートベクターマシンなどの有名な手法も「確率を用いない機械学習」ですし、その他にも数多くの手法があります。しかし、「確率を用いない機械学習」の多くは、「結果のランキングを作りづらい(評価値の大小に意味がない)」「条件が異なる場合の結果を比較できない」などの欠点がありま
第1回、第2回と画像認識の基礎とOpenCVについて紹介してきました。第3回目の今回は、いよいよ本連載の目玉であるOpenCVを使ったオブジェクト検出に挑戦してみます。 オブジェクト検出の仕組み 基本原理のおさらい オブジェクト検出のプログラムを書き始める前に、そもそもどんな仕組みでオブジェクト検出を行っているのかを理解しましょう。 第1回では画像認識の原理として、学習フェーズと認識フェーズがあることを説明しましたが、OpenCVに実装されているオブジェクト検出プログラムもこの流れに従います。つまり、画像から特徴量を抽出し、学習アルゴリズムによってオブジェクトを学習します(詳しくは第1回を参照してください)。 図1 画像認識の流れ OpenCVに実装されているオブジェクト検出プログラムは、Paul Violaらのオブジェクト検出の研究[1]をベースに、Rainer Lienhartらが
株式会社ミクシィの長野です。第2回、第3回と前坂がmemcachedの内部について紹介しました。今回は内部構造から離れて、memcachedの分散についての紹介をいたします。 memcachedの分散 連載の1回目に紹介しましたが、memcachedは「分散」キャッシュサーバと言われていますが、サーバ側には「分散」の機能は備わっていません。サーバ側には当連載の第2回、第3回で前坂が紹介したメモリストレージの機能のみが組み込まれており、非常にシンプルな実装となっています。では、memcachedの分散はどのように実現しているのかと言うと、すべてクライアントライブラリによって実現されます。この分散方法はmemcachedの大きな特徴です。 memcachedの分散とは ここまで数度「分散」という言葉を用いてきましたが、あまり詳しく触れてきませんでした。ここでは各クライアントの実装に共通する大ま
http://paiza.hatenablog.com/entry/20141014algorithm うーん,これはヒドイ.これ書いてる人は,おそらくプログラマーじゃない. 「アルゴリズムとデータ構造」の参考書/学習書ではなく読み物の比率が高い.ソフトウエアエンジニア/プログラマーでない人が,なんちゃってアルゴリズムを囓るのにはこれでもいいけど,プログラマの勉強用じゃねーな. 今出てるアルゴリズム本だと,だいたいこの辺だと思う. アルゴリズムイントロダクション 第3版 第1巻: 基礎・ソート・データ構造・数学 (世界標準MIT教科書) 作者: T.コルメン,R.リベスト,C.シュタイン,C.ライザーソン,浅野哲夫,岩野和生,梅尾博司,山下雅史,和田幸一出版社/メーカー: 近代科学社発売日: 2012/08/02メディア: 単行本購入: 1人 クリック: 16回この商品を含むブログ (21
Photo by VFS Digital Design 皆さんはアルゴリズムやデータ構造について知っているでしょうか。情報系の学部出身の人は学校の授業でやったかもしれません。一方で学校で情報系の勉強をせずにITエンジニアになったという方は、アルゴリズムやデータ構造について一度は「勉強したほうが良いんだろうな」と思いつつも、実際の業務であんまり必要なさそうだし、難しそうだし、DevOpsやオブジェクト指向やフレームワークについて学ぶので手一杯で未着手、という人も多いのではないでしょうか。 今回はそんな方に向けて、アルゴリズム、データ構造を学ぶ意義と、それらを学ぶときに役立つ本とサイトについてまとめました。 ■アルゴリズム、データ構造を学ぶ意味 アルゴリズムやデータ構造について語られるときに、非常に良く言われる事として「そんなものは実務に役立たたないので必要ない」という意見があります。本当にア
類似画像検索手法について簡単にまとめました。 はじめに 画像検索には主に2種類の手法がある。 TBIR (Text Based Image Retrieval) 画像にテキストデータが紐付けられていて、テキストを元に検索する CBIR (Content Based Image Retrieval) 画像の特徴量を基盤として検索する ライブラリ Feature Extraction Library - FELib http://appsrv.cse.cuhk.edu.hk/~jkzhu/felib.html 下記の5つの特徴を持つ画像から特徴量を抽出できるライブラリである。 Color histogram, color moments. カラーヒストグラム・色統計) Edge histogram. 輪郭のヒストグラム Gabor wavelets transform. Wavelet tra
キャラクターの学習から,自然なアニメーション作りまで。さまざまな分野で活躍するAIの魅力を伝える「スクウェア・エニックス AIアカデミー」レポート ライター:箭本進一 スクウェア・エニックスは,2014年9月24日,「スクウェア・エニックス AIアカデミー」の締めくくりとなる第5回講演を行った。スクウェア・エニックス AIアカデミーとは,同社のテクノロジー推進部が中心となり,事前の審査で選ばれた学生30名弱に向けて,ゲームAIに関する講義を行う学習会のようなものだ。誰でも参加できるというわけではなく,参加希望者は事前に小論文を提出しなければならないのだから本格的である。 2014年7月から9月にかけ,全5回,各回3時間のカリキュラムが組まれており,講義のあとにワークショップを行うという構成となっていた。第1回の様子はこちらの記事ですでにお伝えしているので興味のある方は参照されたい。 9月2
はじめに 今回から9回に渡り、Hadoopを使ったレコメンドシステムの実装について紹介させていただくことになりました。 レコメンドシステムを構築した方は少ないと思いますが、レコメンドのサービスに触れている方は多いと思います。今回の連載で、読者の皆様にレコメンドシステムの可能性とその実装の面白さをお伝えできればと思います。よろしくお願い申し上げます。 連載の予定は次の通りです。 レコメンドシステムと集合知(今回) レコメンドシステムの実装と課題 協調フィルタリング(前・後編) コンテンツベースレコメンド(前・後編) 今回の記事のポイントは以下の通りです。 レコメンドシステムの目的は気付きと驚きを与えること 理想のレコメンドはソムリエのお薦め レコメンドシステムに必要なのは嗜好と専門性 では、早速はじめましょう。 レコメンドシステムとは? レコメンドシステムは情報フィルタリングの一種で、大量の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く