基于社交的信息推薦系統的制作方法
【專利說明】基于社交的信息推薦系統
[0001] Μ?
[0002] 軟件開發者持續尋找用于開發軟件(又稱"代碼")的更加高效且有效的技術。 例如,軟件開發者通常使用開發者工具來促進對他們的軟件的開發。這樣的開發者工具 可執行關于正被開發的軟件的診斷操作(例如,標識問題源、調試、剖析、控制等)。開發 者工具的示例包括但不限于:web開發平臺(例如,Windows Azure Piatform?、Amazon Web Services?、Google App Engine:?、VMWare:?、Force.conv?等)以及集成開發環 境(例如,Microsoft Visual. Studio:?、丨 Developer^、NetBeans?、Eclipse Platform? 等)。
[0003] 隨著開源軟件和其他支架方案增加的可用性和使用,開發者已經開始尋找"拿上 就走"的方案,其中預先開發的代碼段可被組裝以減少開發者用來開發他們的軟件的時間 量。然而,傳統的"拿上就走"的方法通常在網站上或開發者工具中提供通知可用庫和控件 的靜態列表。在傳統的開源"拿上就走"的方案的情況下,儲存庫可經由Web可用,使得儲 存庫可經由Web界面瀏覽以展示供復制并粘貼的代碼和/或可用于下載的文件或者以經由 下載或經由分布式版本控制系統獲得存儲庫的本地副本。
[0004]
[0005] 在此描述了尤其用于使用社交數據圖來推薦與代碼在上下文上相關的 信息的各種方式。機器學習技術被用于確定與代碼在上下文上相關的信息。機 器學習技術的各示例包括但不限于,神經網絡、支持向量機等。社交數據圖是存 儲與社交聯網環境中的用戶相關聯的信息的圖數據庫。例如,這樣的信息可從用 戶的用戶簡檔、社交更新等中檢索和/或推斷。社交聯網環境是促進對共享興 趣、活動、背景、現實生活的聯系等的用戶之間的社交網絡(例如,社交關系)的 構建的在線服務、平臺或域(例如,網站)。社交聯網環境的示例包括但不限于, Badoo? , Beb?? , Faeebook?. Ymmetm, Google+? , Linkedin? , Myspace?、Orkut?、Renren?、Twitter⑧、Vkontakte?、Microsoft Team Foundation Server?^ 〇
[0006] 描述了一示例方法,其中作出開發者執行關于對指定代碼的開發的操作的確定。 使用機器學習技術來確定與指定代碼在上下文上相關的信息。該信息在社交數據圖中與社 交聯網環境中的用戶相關聯。基于該信息的至少一部分與社交數據圖中被包括在開發者的 社交網絡中的至少一個用戶相關聯來推薦該信息的該至少一部分以供關于指定代碼來使 用。
[0007] 描述了包括操作確定邏輯、信息確定邏輯和推薦邏輯的系統。操作確定邏輯被配 置成確定開發者是否執行關于對指定代碼的開發的操作。信息確定邏輯被配置成使用機器 學習技術來確定與指定代碼在上下文上相關的信息。該信息在社交數據圖中與社交聯網環 境中的用戶相關聯。推薦邏輯被配置成基于該信息的至少一部分與社交數據圖中被包括在 開發者的社交網絡中的至少一個用戶相關聯來推薦該信息的該至少一部分以供關于指定 代碼來使用。
[0008] 描述了包括計算機可讀介質的計算機程序產品,計算機可讀介質上記錄有用于使 得基于處理器的系統能夠使用社交數據圖來推薦與代碼在上下文上相關的信息的計算機 程序邏輯。計算機程序產品包括第一程序邏輯模塊、第二程序邏輯模塊和第三程序邏輯模 塊。第一程序邏輯模塊用于使得基于處理器的系統能夠確定開發者是否執行關于對指定代 碼的開發的操作第二程序邏輯模塊用于使得基于處理器的系統能夠使用機器學習技術來 確定與指定代碼在上下文上相關的信息。該信息在社交數據圖中與社交聯網環境中的用戶 相關聯。第三程序邏輯模塊用于使得基于處理器的系統能夠基于該信息的至少一部分與社 交數據圖中被包括在開發者的社交網絡中的至少一個用戶相關聯來推薦該信息的該至少 一部分以供關于指定代碼來使用。
[0009] 提供本概述以便以簡化形式介紹將在以下詳細描述中進一步描述的一些概念。本 概述并不旨在標識所要求保護主題的關鍵特征或必要特征,也不旨在用于限制所要求保護 主題的范圍。此外,注意到本發明不限于在詳細描述和/或本文的其它章節中所述的特定 實施例。本文呈現這些實施例僅用于說明性的用途。基于本文所包含的描述,其它實施例 對于相關領域的技術人員將是顯而易見的。
【附圖說明】
[0010] 本文結合的并且組成本說明書的一部分的附圖示出了本發明的各實施例,并且還 與本描述一起用于解釋所涉及的原理以及使相關領域的技術人員能夠實現和使用所公開 的技術。
[0011] 圖1是根據一實施例的示例基于社交的信息推薦系統的框圖。
[0012] 圖2是示出根據一實施例的基于社交的信息推薦技術的示例實現的圖。
[0013] 圖3和5描述根據各實施例的用于推薦信息的示例方法的流程圖。
[0014] 圖4是根據一實施例的圖1中示出的信息推薦模塊的示例實現的框圖。
[0015] 圖6是根據一實施例的圖1中所示的信息確定邏輯的示例實現的框圖。
[0016] 圖7描繪了其中可實現各實施例的示例計算機。
[0017] 通過下面的結合附圖對本發明進行的詳細說明,所公開的技術的特點和優點將變 得更加顯而易見,在附圖中,類似的附圖標記在整個說明書中標識對應的元素。在附圖中, 相同的參考標號一般指相同的、功能上相似的和/或結構上相似的元素。其中元素第一次 出現的附圖由對應的參考標號中最左側的數字指示。
【具體實施方式】
[0018] I.介紹
[0019] 以下詳細描述參考示出本發明的示例性實施例的附圖。但是,本發明的范圍不限 于這些實施例,而是由所附權利要求書定義。因此,諸如所示實施例的修改版本之類的在附 圖所示之外的實施例仍然由本發明所包含。
[0020] 本說明書中對" 一個實施例"、"實施例"、"示例實施例"等的引用指的是所述實施 例可包括特定的特征、結構或特點,但是每一實施例不一定包括該特定的特征、結構或特 點。此外,這些短語不一定指相同的實施例。此外,當結合實施例描述具體特征、結構或特性 時,應當理解在相關領域的技術人員的知識范圍內能夠結合其他實施例來實現具體特征、 結構或特性,無論是否被顯式地描述。
[0021] II.示例實施例
[0022] 在此描述的示例實施例能夠使用社交數據圖來推薦與代碼在上下文上相關的信 息。機器學習技術被用于確定與代碼在上下文上相關的信息。機器學習技術的各示例包括 但不限于,神經網絡、支持向量機等。社交數據圖是存儲與社交聯網環境中的用戶相關聯的 信息的圖數據庫。例如,這樣的信息可從用戶的用戶簡檔、社交更新等中檢索。社交聯網環 境是促進對共享興趣、活動、背景、現實生活的聯系等的用戶之間的社交網絡(例如,社交 關系)的構建的在線服務、平臺或域(例如,網站)。社交聯網環境的示例包括但不限于, Badoo?、Beb〇?、Facebook?、Google+?、Linkedin?、Myspace?、Orkut?、 Renren?、TwitterOfe、Vkontakte?等。
[0023] 與傳統的軟件開發技術相比,本文描述的示例技術具有各種益處。例如,示例技術 能夠使用開發者的社交關系來推薦與開發者在編寫的代碼在上下文上相關的信息。這樣的 信息可幫助開發者尋找合并到代碼中的現有的組件、確定使用哪個可重用軟件、確定雇傭 誰來工作、確定在代碼中使用的可用代碼段的質量、確定哪些人在處置代碼、向使用代碼的 消費者作出有針對性的營銷機會等。利用上下文關系可解決與傳統技術相關聯的可發現性 問題。
[0024] 示例技術能夠充分利用開發者到開發者的社交關系以及開發者到終端用戶的社 交關系。例如,在開發者到開發者的場景中,修復代碼的開發者可社交地連接到代碼的先前 所有者和/或簽入(check-in)。開發者可充分利用社交數據圖中的簡歷、實際貢獻以及技 能來確定雇傭誰來解決技術問題。開發者可充分利用如在社交數據圖中提供的用戶的信譽 以及用戶所編寫的代碼段來尋找人員以填充新的開發職位。開發者之間關于代碼的通信可 被包括在社交數據圖中所包括的代碼歷史中。這樣的歷史可被用于作出與開發者在解決的 問題的類型以及開發者可用來解決這些問題的資源有關的推斷。
[0025] 在開發者到終端用戶場景中,社交數據圖提供對與代碼的質量有關的信息以及與 代碼有關的消費者反饋的訪問。這樣的信息可被用于作出關于代碼重用以及對代碼的未來 增強的明智決定。例如,信息可指示代碼的性能、提出的隱錯的數量、剖析、熱點、多少其他 人員正主動地使用該代碼(以及他們關于代碼的反饋或觀點)。示例技術可被用于將新的 用戶吸引到應用。例如,社交數據圖可包括與用戶購買哪些類型的應用有關的信息。示例 技術可使用用戶偏好和/或用戶的人口統計、與用戶的社交網絡中的人員使用了哪些應用 有關的信息等來向用戶推薦附加的應用或開源。例如,可向用戶通知指定應用,因為該用戶 的社交網絡中的人員使用該指定的應用。
[0026] 示例技術能夠將涉及源代碼控制和簽入的數據連接到社交關系。社交數據圖可包 括除了典型源配置管理數據之外的信息。例如,社交數據圖可包括來自Skype?和/或消 息收發服務(例如,電子郵件、短消息服務(SMS)、即時消息(頂)等)中的會話的數據;來 自技術論壇、代碼樣本庫和/或專家網站(例如,www. stackoverflow. com)的發現模式和 /或使用模式;來自任何合適的本地